Collapse computeAngle into coordinate calculation

This commit is contained in:
Daniel J. Hofmann
2016-01-21 12:58:24 +01:00
committed by Patrick Niklaus
parent 0fcca04150
commit 46fc6f8da4
5 changed files with 33 additions and 44 deletions
+4 -4
View File
@@ -10,7 +10,7 @@
#include "engine/guidance/segment_list.hpp"
#include "engine/api_response_generator.hpp"
#include "engine/routing_algorithms/map_matching.hpp"
#include "util/compute_angle.hpp"
#include "util/coordinate_calculation.hpp"
#include "util/integer_range.hpp"
#include "util/json_logger.hpp"
#include "util/json_util.hpp"
@@ -108,9 +108,9 @@ template <class DataFacadeT> class MapMatchingPlugin : public BasePlugin
if (input_coords.size() - 1 > current_coordinate && 0 < current_coordinate)
{
double turn_angle = util::ComputeAngle(input_coords[current_coordinate - 1],
input_coords[current_coordinate],
input_coords[current_coordinate + 1]);
double turn_angle = util::coordinate_calculation::computeAngle(
input_coords[current_coordinate - 1], input_coords[current_coordinate],
input_coords[current_coordinate + 1]);
// sharp turns indicate a possible uturn
if (turn_angle <= 90.0 || turn_angle >= 270.0)
-37
View File
@@ -1,37 +0,0 @@
#ifndef COMPUTE_ANGLE_HPP
#define COMPUTE_ANGLE_HPP
#include "osrm/coordinate.hpp"
#include "util/trigonometry_table.hpp"
#include "util/mercator.hpp"
namespace osrm
{
namespace util
{
// Get angle of line segment (A,C)->(C,B)
inline double ComputeAngle(const FixedPointCoordinate first,
const FixedPointCoordinate second,
const FixedPointCoordinate third) noexcept
{
const double v1x = (first.lon - second.lon) / COORDINATE_PRECISION;
const double v1y = mercator::latToY(first.lat / COORDINATE_PRECISION) -
mercator::latToY(second.lat / COORDINATE_PRECISION);
const double v2x = (third.lon - second.lon) / COORDINATE_PRECISION;
const double v2y = mercator::latToY(third.lat / COORDINATE_PRECISION) -
mercator::latToY(second.lat / COORDINATE_PRECISION);
double angle = (atan2_lookup(v2y, v2x) - atan2_lookup(v1y, v1x)) * 180. / M_PI;
while (angle < 0.)
{
angle += 360.;
}
return angle;
}
}
}
#endif // COMPUTE_ANGLE_HPP
+5
View File
@@ -57,6 +57,11 @@ double radToDeg(const double radian);
double bearing(const FixedPointCoordinate &first_coordinate,
const FixedPointCoordinate &second_coordinate);
// Get angle of line segment (A,C)->(C,B)
double computeAngle(const FixedPointCoordinate &first,
const FixedPointCoordinate &second,
const FixedPointCoordinate &third);
}
}
}