Distance calculation for spherical coordinates on a perfect sphere using haversine.
More...
template<typename RadiusType, typename CalculationType = void>
class boost::geometry::strategy::distance::haversine< RadiusType, CalculationType >
Distance calculation for spherical coordinates on a perfect sphere using haversine.
- Template Parameters
-
RadiusType | numeric type for radius (of sphere, earth) |
CalculationType | 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 |
- Author
- Adapted from: http://williams.best.vwh.net/avform.htm
- See Also
- http://en.wikipedia.org/wiki/Great-circle_distance
- Note
- (from Wiki:) The great circle distance d between two points with coordinates {lat1,lon1} and {lat2,lon2} is given by: d=acos(sin(lat1)*sin(lat2)+cos(lat1)*cos(lat2)*cos(lon1-lon2)) A mathematically equivalent formula, which is less subject to rounding error for short distances is: d=2*asin(sqrt((sin((lat1-lat2) / 2))^2
- cos(lat1)*cos(lat2)*(sin((lon1-lon2) / 2))^2))
- Examples:
- 07_a_graph_route_example.cpp, and 07_b_graph_route_example.cpp.