...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Strategy functor for distance point to segment calculation.
Class which calculates the distance of a point to a segment, for points on a sphere or globe
template<typename CalculationType, typename Strategy> class strategy::distance::cross_track { // ... };
Parameter 
Default 
Description 

typename CalculationType 
void 
numeric type for calculation (e.g. high precision); if void then it is extracted automatically from the coordinate type and (if necessary) promoted to floating point 
typename Strategy 
haversine<double, CalculationType> 
underlying pointpoint distance strategy, defaults to haversine 
Function 
Description 
Parameters 

cross_track()


cross_track(typename Strategy::radius_type const & r)

typename Strategy::radius_type const &: r: 

cross_track(Strategy const & s)

Strategy const &: s: 
Function 
Description 
Parameters 
Returns 

template<typename Point, typename PointOfSegment> auto apply(Point const & p, PointOfSegment const & sp1, PointOfSegment const & sp2)

Point const &: p: PointOfSegment const &: sp1: PointOfSegment const &: sp2: 

template<typename T1, typename T2> radius_type vertical_or_meridian(T1 lat1, T2 lat2)

T1: lat1: T2: lat2: 

Strategy::radius_type radius()

#include <boost/geometry/strategies/spherical/distance_cross_track.hpp>