MCPcopy Create free account
hub / github.com/Project-OSRM/osrm-backend / greatCircleDistance

Function greatCircleDistance

src/util/coordinate_calculation.cpp:69–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

67}
68
69double greatCircleDistance(const Coordinate coordinate_1, const Coordinate coordinate_2)
70{
71 // Should be within 0.1% or so of Vincenty method (assuming 19 buckets are enough)
72 // Should be more faster and more precise than Haversine
73 const auto lon1 = static_cast<double>(util::toFloating(coordinate_1.lon));
74 const auto lat1 = static_cast<double>(util::toFloating(coordinate_1.lat));
75 const auto lon2 = static_cast<double>(util::toFloating(coordinate_2.lon));
76 const auto lat2 = static_cast<double>(util::toFloating(coordinate_2.lat));
77 return cheap_ruler_container.getRuler(coordinate_1.lat, coordinate_2.lat)
78 .distance({lon1, lat1}, {lon2, lat2});
79}
80
81double perpendicularDistance(const Coordinate segment_source,
82 const Coordinate segment_target,

Callers 15

mainFunction · 0.85
operator()Method · 0.85
isValidSliproadAreaMethod · 0.85
findSegregatedNodesFunction · 0.85
getRoundaboutTypeMethod · 0.85
getDepartBearingsFunction · 0.85
getArriveBearingsFunction · 0.85
trimShortSegmentsFunction · 0.85
assignRelativeLocationsFunction · 0.85
parametersFromRequestFunction · 0.85
mapMatchingFunction · 0.85

Calls 2

toFloatingFunction · 0.85
distanceMethod · 0.45

Tested by

no test coverage detected