Skip to content

Commit

Permalink
Adapt to feedback in #519
Browse files Browse the repository at this point in the history
TheMarex committed Feb 22, 2016
1 parent ff7623e commit bd6df4d
Showing 6 changed files with 28 additions and 23 deletions.
15 changes: 14 additions & 1 deletion include/engine/api/base_parameters.hpp
Original file line number Diff line number Diff line change
@@ -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;
});
}
};

2 changes: 1 addition & 1 deletion include/engine/api/json_factory.hpp
Original file line number Diff line number Diff line change
@@ -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);

6 changes: 3 additions & 3 deletions include/engine/guidance/assemble_steps.hpp
Original file line number Diff line number Diff line change
@@ -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};
}
}

2 changes: 1 addition & 1 deletion include/engine/guidance/route_step.hpp
Original file line number Diff line number Diff line change
@@ -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;
4 changes: 2 additions & 2 deletions include/engine/guidance/step_maneuver.hpp
Original file line number Diff line number Diff line change
@@ -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;
};

22 changes: 7 additions & 15 deletions src/engine/api/josn_factory.cpp
Original file line number Diff line number Diff line change
@@ -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;
}

0 comments on commit bd6df4d

Please sign in to comment.