Files
comaps/libs/geometry/distance_on_sphere.hpp
Henry Sternberg c59b63d784 [routing] OSM tag based time and turn penalties
Signed-off-by: Henry Sternberg <dev@bluelightmaps.com>
Co-Authored-By: eisa01 <eisa01@gmail.com>
Co-Authored-By: x7z4w <x7z4w@noreply.codeberg.org>
Co-Authored-By: Yannik Bloscheck <git@yannikbloscheck.com>
2025-08-17 19:40:00 +02:00

20 lines
728 B
C++

#pragma once
#include "geometry/latlon.hpp"
#include "geometry/point3d.hpp"
// namespace ms - "math on sphere", similar to namespace m2.
namespace ms
{
double constexpr kEarthRadiusMeters = 6378000.0;
// Distance on unit sphere between (lat1, lon1) and (lat2, lon2).
// lat1, lat2, lon1, lon2 - in degrees.
double DistanceOnSphere(double lat1Deg, double lon1Deg, double lat2Deg, double lon2Deg);
// Distance in meteres on Earth between (lat1, lon1) and (lat2, lon2).
// lat1, lat2, lon1, lon2 - in degrees.
double DistanceOnEarth(double lat1Deg, double lon1Deg, double lat2Deg, double lon2Deg);
double DistanceOnEarth(LatLon const & ll1, LatLon const & ll2);
m3::Point<double> ToVector(LatLon const & ll);
} // namespace ms