mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 04:53:36 +00:00
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>
20 lines
728 B
C++
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
|