Boost logo

Geometry :

Subject: Re: [geometry] Distance between point_ll and polygon in 1.56
From: Menelaos Karavelas (menelaos.karavelas_at_[hidden])
Date: 2014-08-11 09:49:33


Hi Braminir.

On 10/08/2014 08:52 ??, Branimir Betov wrote:
> I did some more experimentation and seems like distance between point
> and a polygon only works for Cartesian coordinates. I tried spherical,
> sperical_equatorial, and geographic - none work, but Cartesian
> compiles fine and returns a distance.
>
> I guess some specialization is missing, but I am not sure how to solve it.
>
>

I tried your example program with both 1.55 and 1.54 and I could not get
it to compile. Maybe it is my setup, and will try again.

It is true, however, that for spherical_equatorial your program should
work, but it doesn't (it was indeed working with 1.55).
I have spotted the problem, and I am working towards a solution.

I suggest that you create a ticket on trac about this, so that we can
take it from there.
Here is the link for the trac system: https://svn.boost.org/trac/boost/
Follow the link for submitting patches, bug reports and feature requests
at the top of the page. This will let you create a new ticket.

Best,

- m.

>
>
>
> On Sat, Aug 9, 2014 at 9:07 AM, Branimir Betov <bbetov_at_[hidden]
> <mailto:bbetov_at_[hidden]>> wrote:
>
> Here is the full example I came up with. I am using visual studio
> (tried 2010, 2012, and 2013). For completeness I am attaching a
> file with the polygon definition (test.txt).
>
> #include "stdafx.h"
> #include <string>
> #include <fstream>
> #include <streambuf>
> #include <boost/geometry.hpp>
> #include "boost/geometry/geometry.hpp"
> #include <boost/geometry/extensions/gis/latlong/point_ll.hpp>
> #include <boost/geometry/io/io.hpp>
>
> namespace bg = boost::geometry;
> using namespace std;
>
>
> typedef bg::model::ll::point<> point;
> typedef bg::model::polygon<point> polygon;
>
> int _tmain(int argc, _TCHAR* argv[])
> {
> polygon poly;
> std::string str;
>
> std::ifstream t("c:\\temp\\test.txt");
>
> t.seekg(0, std::ios::end);
> str.reserve(t.tellg());
> t.seekg(0, std::ios::beg);
>
> str.assign((std::istreambuf_iterator<char>(t)),
> std::istreambuf_iterator<char>());
>
>
> bg::read_wkt(str, poly);
>
> const bg::latitude<double> lat_out(37.69311);
> const bg::longitude<double> lon_out(-122.13865);
> point p_out(lat_out, lon_out);
>
> bg::distance(poly, p_out); // This fails to compile for some
> reason.
>
> return 0;
> }
>
>
>
>
> On Sat, Aug 9, 2014 at 12:12 AM, Menelaos Karavelas
> <menelaos.karavelas_at_[hidden]
> <mailto:menelaos.karavelas_at_[hidden]>> wrote:
>
> Hi Branimir.
>
>
> On 09/08/2014 05:26 ??, Branimir Betov wrote:
>> Hi,
>>
>> I am trying to figure out what is wrong with my code and am
>> stuck, so I thought someone might help. The code used to work
>> in 1.55 and in 1.56 no longer compiles; I am at a loss what
>> might be wrong. I am using the GIS extension from the
>> develop-1.56 branch.
>>
>> Here is the relevant snippet:
>>
>> typedef bg::model::ll::point<> point;
>> typedef bg::model::polygon<point> polygon;
>>
>> polygon poly;
>>
>> bg::read_wkt(str, poly);
>>
>> const bg::latitude<double> lat_out(37.69311);
>> const bg::longitude<double> lon_out(-122.13865);
>> point p_out(lat_out, lon_out);
>>
>> bg::distance(p_out, poly); // It fails to compile right
>> here.
>>
>>
>> Does anyone have any suggestions?
>>
>
> Would it be possible to provide a minimal complete example
> that fails?
>
> Thanks a lot.
>
> - m.
>
>
>> Thank you,
>> Branimir
>>
>>
>>
>> _______________________________________________
>> Geometry mailing list
>> Geometry_at_[hidden] <mailto:Geometry_at_[hidden]>
>> http://lists.boost.org/mailman/listinfo.cgi/geometry
>
>
> _______________________________________________
> Geometry mailing list
> Geometry_at_[hidden] <mailto:Geometry_at_[hidden]>
> http://lists.boost.org/mailman/listinfo.cgi/geometry
>
>
>
>
>
> _______________________________________________
> Geometry mailing list
> Geometry_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/geometry



Geometry list run by mateusz at loskot.net