Adapt to feedback in #519
This commit is contained in:
		
							parent
							
								
									1b1211092b
								
							
						
					
					
						commit
						b1d70b8a8c
					
				| @ -7,6 +7,7 @@ | ||||
| #include <boost/optional.hpp> | ||||
| 
 | ||||
| #include <vector> | ||||
| #include <algorithm> | ||||
| 
 | ||||
| namespace osrm | ||||
| { | ||||
| @ -32,7 +33,19 @@ struct BaseParameters | ||||
|     { | ||||
|         return (hints.empty() || hints.size() == coordinates.size()) && | ||||
|                (bearings.empty() || bearings.size() == coordinates.size()) && | ||||
|                (radiuses.empty() || radiuses.size() == coordinates.size()); | ||||
|                (radiuses.empty() || radiuses.size() == coordinates.size()) && | ||||
|                std::all_of(bearings.begin(), bearings.end(), | ||||
|                            [](const boost::optional<Bearing> bearing_and_range) | ||||
|                            { | ||||
|                                if (bearing_and_range) | ||||
|                                { | ||||
|                                    return bearing_and_range->bearing >= 0 && | ||||
|                                           bearing_and_range->bearing <= 360 && | ||||
|                                           bearing_and_range->range >= 0 && | ||||
|                                           bearing_and_range->range <= 180; | ||||
|                                } | ||||
|                                return true; | ||||
|                            }); | ||||
|     } | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -76,7 +76,7 @@ util::json::Object makeRoute(const guidance::Route &route, | ||||
|                              boost::optional<util::json::Value> geometry); | ||||
| 
 | ||||
| util::json::Object | ||||
| makeWaypoint(const FixedPointCoordinate location, std::string &&way_name, const Hint &hint); | ||||
| makeWaypoint(const FixedPointCoordinate location, std::string &&name, const Hint &hint); | ||||
| 
 | ||||
| util::json::Object makeRouteLeg(guidance::RouteLeg &&leg, util::json::Array &&steps); | ||||
| 
 | ||||
|  | ||||
| @ -35,12 +35,12 @@ inline StepManeuver stepManeuverFromGeometry(const extractor::TurnInstruction in | ||||
|     const auto turn_coordinate = leg_geometry.locations[turn_index]; | ||||
|     const auto post_turn_coordinate = leg_geometry.locations[turn_index + 1]; | ||||
| 
 | ||||
|     const double pre_turn_heading = | ||||
|     const double pre_turn_bearing = | ||||
|         util::coordinate_calculation::bearing(pre_turn_coordinate, turn_coordinate); | ||||
|     const double post_turn_heading = | ||||
|     const double post_turn_bearing = | ||||
|         util::coordinate_calculation::bearing(turn_coordinate, post_turn_coordinate); | ||||
| 
 | ||||
|     return StepManeuver{turn_coordinate, pre_turn_heading, post_turn_heading, instruction}; | ||||
|     return StepManeuver{turn_coordinate, pre_turn_bearing, post_turn_bearing, instruction}; | ||||
| } | ||||
| } | ||||
| 
 | ||||
|  | ||||
| @ -22,7 +22,7 @@ namespace guidance | ||||
| struct RouteStep | ||||
| { | ||||
|     unsigned name_id; | ||||
|     std::string way_name; | ||||
|     std::string name; | ||||
|     double duration; | ||||
|     double distance; | ||||
|     extractor::TravelMode mode; | ||||
|  | ||||
| @ -14,8 +14,8 @@ namespace guidance | ||||
| struct StepManeuver | ||||
| { | ||||
|     util::FixedPointCoordinate location; | ||||
|     double heading_before; | ||||
|     double heading_after; | ||||
|     double bearing_before; | ||||
|     double bearing_after; | ||||
|     extractor::TurnInstruction instruction; | ||||
| }; | ||||
| 
 | ||||
|  | ||||
| @ -101,14 +101,6 @@ util::json::Array coordinateToLonLat(const FixedPointCoordinate &coordinate) | ||||
|     return array; | ||||
| } | ||||
| 
 | ||||
| util::json::Array coordinateToLatLon(const FixedPointCoordinate &coordinate) | ||||
| { | ||||
|     util::json::Array array; | ||||
|     array.values.push_back(coordinate.lat / COORDINATE_PRECISION); | ||||
|     array.values.push_back(coordinate.lon / COORDINATE_PRECISION); | ||||
|     return array; | ||||
| } | ||||
| 
 | ||||
| // FIXME this actually needs to be configurable from the profiles
 | ||||
| std::string modeToString(const extractor::TravelMode mode) | ||||
| { | ||||
| @ -134,9 +126,9 @@ util::json::Object makeStepManeuver(const guidance::StepManeuver &maneuver) | ||||
| { | ||||
|     util::json::Object step_maneuver; | ||||
|     step_maneuver.values["type"] = detail::instructionToString(maneuver.instruction); | ||||
|     step_maneuver.values["location"] = detail::coordinateToLatLon(maneuver.location); | ||||
|     step_maneuver.values["heading_before"] = maneuver.heading_before; | ||||
|     step_maneuver.values["heading_after"] = maneuver.heading_after; | ||||
|     step_maneuver.values["location"] = detail::coordinateToLonLat(maneuver.location); | ||||
|     step_maneuver.values["bearing_before"] = maneuver.bearing_before; | ||||
|     step_maneuver.values["bearing_after"] = maneuver.bearing_after; | ||||
|     return step_maneuver; | ||||
| } | ||||
| 
 | ||||
| @ -146,7 +138,7 @@ util::json::Object makeRouteStep(guidance::RouteStep &&step, | ||||
|     util::json::Object route_step; | ||||
|     route_step.values["distance"] = step.distance; | ||||
|     route_step.values["duration"] = step.duration; | ||||
|     route_step.values["way_name"] = std::move(step.way_name); | ||||
|     route_step.values["name"] = std::move(step.name); | ||||
|     route_step.values["mode"] = detail::modeToString(step.mode); | ||||
|     route_step.values["maneuver"] = makeStepManeuver(step.maneuver); | ||||
|     if (geometry) | ||||
| @ -172,11 +164,11 @@ util::json::Object makeRoute(const guidance::Route &route, | ||||
| } | ||||
| 
 | ||||
| util::json::Object | ||||
| makeWaypoint(const FixedPointCoordinate location, std::string &&way_name, const Hint &hint) | ||||
| makeWaypoint(const FixedPointCoordinate location, std::string &&name, const Hint &hint) | ||||
| { | ||||
|     util::json::Object waypoint; | ||||
|     waypoint.values["location"] = detail::coordinateToLatLon(location); | ||||
|     waypoint.values["way_name"] = std::move(way_name); | ||||
|     waypoint.values["location"] = detail::coordinateToLonLat(location); | ||||
|     waypoint.values["name"] = std::move(name); | ||||
|     waypoint.values["hint"] = hint.ToBase64(); | ||||
|     return waypoint; | ||||
| } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user