/srv/osrm/osrm-backend/src/engine/guidance
NameSizeModeActions
assemble_overview.cpp30600644editdlrm
assemble_route.cpp7960644editdlrm
assemble_steps.cpp18280644editdlrm
collapse_scenario_detection.cpp200540644editdlrm
collapse_turns.cpp272510644editdlrm
lane_processing.cpp103270644editdlrm
post_processing.cpp340970644editdlrm
verbosity_reduction.cpp34410644editdlrm
Edit: /srv/osrm/osrm-backend/src/engine/guidance/assemble_steps.cpp (1828B)
#include "engine/guidance/assemble_steps.hpp" #include #include "util/bearing.hpp" #include "util/log.hpp" #include #include namespace osrm::engine::guidance::detail { std::pair getDepartBearings(const LegGeometry &leg_geometry, const PhantomNode &source_node, const bool traversed_in_reverse) { BOOST_ASSERT(leg_geometry.locations.size() >= 2); const auto turn_coordinate = leg_geometry.locations.front(); const auto post_turn_coordinate = *(leg_geometry.locations.begin() + 1); if (util::coordinate_calculation::greatCircleDistance(turn_coordinate, post_turn_coordinate) <= 1) { return std::make_pair(0, source_node.GetBearing(traversed_in_reverse)); } return std::make_pair( 0, std::round(util::coordinate_calculation::bearing(turn_coordinate, post_turn_coordinate))); } std::pair getArriveBearings(const LegGeometry &leg_geometry, const PhantomNode &target_node, const bool traversed_in_reverse) { BOOST_ASSERT(leg_geometry.locations.size() >= 2); const auto turn_coordinate = leg_geometry.locations.back(); const auto pre_turn_coordinate = *(leg_geometry.locations.end() - 2); if (util::coordinate_calculation::greatCircleDistance(turn_coordinate, pre_turn_coordinate) <= 1) { return std::make_pair(target_node.GetBearing(traversed_in_reverse), 0); } return std::make_pair( std::round(util::coordinate_calculation::bearing(pre_turn_coordinate, turn_coordinate)), 0); } } // namespace osrm::engine::guidance::detail