osrm-backend/include/util/coordinate_calculation.hpp

60 lines
2.3 KiB
C++
Raw Normal View History

#ifndef COORDINATE_CALCULATION
#define COORDINATE_CALCULATION
#include <string>
#include <utility>
2016-01-05 10:51:13 -05:00
namespace osrm
{
namespace util
{
struct FixedPointCoordinate;
namespace coordinate_calculation
{
2016-01-04 07:30:03 -05:00
double haversineDistance(const int lat1, const int lon1, const int lat2, const int lon2);
double haversineDistance(const FixedPointCoordinate &first_coordinate,
const FixedPointCoordinate &second_coordinate);
double greatCircleDistance(const FixedPointCoordinate &first_coordinate,
const FixedPointCoordinate &second_coordinate);
double greatCircleDistance(const int lat1, const int lon1, const int lat2, const int lon2);
double perpendicularDistance(const FixedPointCoordinate &segment_source,
const FixedPointCoordinate &segment_target,
const FixedPointCoordinate &query_location);
double perpendicularDistance(const FixedPointCoordinate &segment_source,
const FixedPointCoordinate &segment_target,
const FixedPointCoordinate &query_location,
FixedPointCoordinate &nearest_location,
double &ratio);
double
perpendicularDistanceFromProjectedCoordinate(const FixedPointCoordinate &segment_source,
const FixedPointCoordinate &segment_target,
const FixedPointCoordinate &query_location,
const std::pair<double, double> &projected_coordinate);
double
perpendicularDistanceFromProjectedCoordinate(const FixedPointCoordinate &segment_source,
const FixedPointCoordinate &segment_target,
const FixedPointCoordinate &query_location,
const std::pair<double, double> &projected_coordinate,
FixedPointCoordinate &nearest_location,
double &ratio);
double degToRad(const double degree);
double radToDeg(const double radian);
2016-01-05 06:04:04 -05:00
double bearing(const FixedPointCoordinate &first_coordinate,
const FixedPointCoordinate &second_coordinate);
}
2016-01-05 10:51:13 -05:00
}
}
2015-01-22 10:33:27 -05:00
#endif // COORDINATE_CALCULATION