# [Boost-bugs] [Boost C++ Libraries] #7030: distance of point to linestring with cs::spherical_equatorial gives wrong result

Subject: [Boost-bugs] [Boost C++ Libraries] #7030: distance of point to linestring with cs::spherical_equatorial gives wrong result
Date: 2012-06-26 18:40:46

#7030: distance of point to linestring with cs::spherical_equatorial gives wrong
result
-------------------------------------+--------------------------------------
Reporter: anonymous | Owner: barendgehrels
Type: Bugs | Status: new
Milestone: To Be Determined | Component: geometry
Version: Boost Development Trunk | Severity: Problem
Keywords: |
-------------------------------------+--------------------------------------
The following code produces some strange results:

typedef cs::spherical_equatorial< boost::geometry::degree > cs_type;
typedef model::point< double , 2, cs_type > point_type;
typedef model::linestring< point_type > linestring_type;

point_type p( 1.0 , 1.0 );
linestring_type l;
l.push_back( point_type( 0.0 , 2.0 ) );
l.push_back( point_type( 2.0 , 2.0 ) );
l.push_back( point_type( 4.0 , 2.0 ) );

cout << "Distance : " << boost::geometry::distance( p , l ) << endl;

for( size_t i=1 ; i<l.size() ; ++i )
{
linestring_type l_tmp;
l_tmp.push_back( l[i-1] );
l_tmp.push_back( l[i] );
cout << "Point distance : " << boost::geometry::distance( p , l_tmp
) << endl;
}

The output is

Distance : 0.0174373

Point distance : 0.0174586
Point distance : 0.0174373

The distance to the second segment can not be smaller than that to the
first one. If the the coordinate system is changed to cartesian
coordinates everything works as expected.

```--
Ticket URL: <https://svn.boost.org/trac/boost/ticket/7030>
Boost C++ Libraries <http://www.boost.org/>
Boost provides free peer-reviewed portable C++ source libraries.
```

This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:09 UTC