Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::geometry::strategy::distance::haversine< RadiusType, CalculationType > Class Template Reference

Distance calculation for spherical coordinates on a perfect sphere using haversine. More...

#include <distance_haversine.hpp>

Inheritance diagram for boost::geometry::strategy::distance::haversine< RadiusType, CalculationType >:

Classes

struct  calculation_type
 

Public Types

typedef RadiusType radius_type
 

Public Member Functions

 haversine (RadiusType const &radius=1.0)
 Constructor. More...
 
template<typename Point1 , typename Point2 >
calculation_type< Point1,
Point2 >::type 
apply (Point1 const &p1, Point2 const &p2) const
 applies the distance calculation More...
 
RadiusType radius () const
 access to radius value More...
 

Detailed Description

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
CalculationType
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))

{ [heading See also] [link geometry.reference.algorithms.distance.distance_3_with_strategy distance (with strategy)] }

Member Typedef Documentation

template<typename RadiusType, typename CalculationType = void>
typedef RadiusType boost::geometry::strategy::distance::haversine< RadiusType, CalculationType >::radius_type

Constructor & Destructor Documentation

template<typename RadiusType, typename CalculationType = void>
boost::geometry::strategy::distance::haversine< RadiusType, CalculationType >::haversine ( RadiusType const &  radius = 1.0)
inline

Constructor.

Parameters
radiusradius of the sphere, defaults to 1.0 for the unit sphere

Member Function Documentation

template<typename RadiusType, typename CalculationType = void>
template<typename Point1 , typename Point2 >
calculation_type<Point1, Point2>::type boost::geometry::strategy::distance::haversine< RadiusType, CalculationType >::apply ( Point1 const &  p1,
Point2 const &  p2 
) const
inline

applies the distance calculation

Returns
the calculated distance (including multiplying with radius)
Parameters
p1first point
p2second point
template<typename RadiusType, typename CalculationType = void>
RadiusType boost::geometry::strategy::distance::haversine< RadiusType, CalculationType >::radius ( ) const
inline

The documentation for this class was generated from the following file: