Move Centroid to coordinate_calculation
This commit is contained in:
parent
f4cfde719d
commit
5829bbe22d
@ -53,15 +53,6 @@ struct EdgeBasedNode
|
||||
(reverse_edge_based_node_id != SPECIAL_NODEID));
|
||||
}
|
||||
|
||||
static inline util::Coordinate Centroid(const util::Coordinate a, const util::Coordinate b)
|
||||
{
|
||||
util::Coordinate centroid;
|
||||
// The coordinates of the midpoint are given by:
|
||||
centroid.lon = (a.lon + b.lon) / util::FixedLongitude(2);
|
||||
centroid.lat = (a.lat + b.lat) / util::FixedLatitude(2);
|
||||
return centroid;
|
||||
}
|
||||
|
||||
NodeID forward_edge_based_node_id; // needed for edge-expanded graph
|
||||
NodeID reverse_edge_based_node_id; // needed for edge-expanded graph
|
||||
NodeID u; // indices into the coordinates array
|
||||
|
@ -64,6 +64,8 @@ double perpendicularDistanceFromProjectedCoordinate(
|
||||
Coordinate &nearest_location,
|
||||
double &ratio);
|
||||
|
||||
Coordinate centroid(const Coordinate lhs, const Coordinate rhs);
|
||||
|
||||
double bearing(const Coordinate first_coordinate, const Coordinate second_coordinate);
|
||||
|
||||
// Get angle of line segment (A,C)->(C,B)
|
||||
|
@ -137,11 +137,8 @@ class StaticRTree
|
||||
BOOST_ASSERT(current_element.u < coordinate_list.size());
|
||||
BOOST_ASSERT(current_element.v < coordinate_list.size());
|
||||
|
||||
Coordinate current_centroid =
|
||||
EdgeDataT::Centroid(Coordinate(coordinate_list[current_element.u].lon,
|
||||
coordinate_list[current_element.u].lat),
|
||||
Coordinate(coordinate_list[current_element.v].lon,
|
||||
coordinate_list[current_element.v].lat));
|
||||
Coordinate current_centroid = coordinate_calculation::centroid(
|
||||
coordinate_list[current_element.u], coordinate_list[current_element.v]);
|
||||
current_centroid.lat = FixedLatitude(
|
||||
COORDINATE_PRECISION *
|
||||
coordinate_calculation::mercator::latToY(toFloating(current_centroid.lat)));
|
||||
|
@ -200,6 +200,16 @@ double perpendicularDistanceFromProjectedCoordinate(
|
||||
return approximate_distance;
|
||||
}
|
||||
|
||||
Coordinate centroid(const Coordinate lhs, const Coordinate rhs)
|
||||
{
|
||||
Coordinate centroid;
|
||||
// The coordinates of the midpoints are given by:
|
||||
// x = (x1 + x2) /2 and y = (y1 + y2) /2.
|
||||
centroid.lon = (lhs.lon + rhs.lon) / FixedLongitude(2);
|
||||
centroid.lat = (lhs.lat + rhs.lat) / FixedLatitude(2);
|
||||
return centroid;
|
||||
}
|
||||
|
||||
double degToRad(const double degree)
|
||||
{
|
||||
using namespace boost::math::constants;
|
||||
|
Loading…
Reference in New Issue
Block a user