Vanetza
 
Loading...
Searching...
No Matches
path_point.cpp
1#include <vanetza/facilities/path_point.hpp>
2#include <boost/units/cmath.hpp>
3#include <boost/units/systems/si/prefixes.hpp>
4
5namespace vanetza
6{
7namespace facilities
8{
9
10const units::Length cREarthMeridian = units::Length(6378.137 * units::si::kilo * units::si::meters);
11
12PathPoint::PathPoint()
13{
14}
15
16units::Length chord_length(const PathPoint& a, const PathPoint& b)
17{
18 const units::Angle lat1(a.latitude);
19 const units::Angle lon1(a.longitude);
20 const units::Angle lat2(b.latitude);
21 const units::Angle lon2(b.longitude);
22
23 return cREarthMeridian *
24 acos(cos(lat1) * cos(lat2) * cos(lon1 - lon2) + sin(lat1) * sin(lat2))
25 / units::si::radian ;
26}
27
28} // namespace facilities
29} // namespace vanetza