MCPcopy Create free account
hub / github.com/Project-OSRM/osrm-backend / makeRouteStep

Function makeRouteStep

src/engine/api/json_factory.cpp:172–215  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

170}
171
172util::json::Object makeRouteStep(guidance::RouteStep step, util::json::Value geometry)
173{
174 util::json::Object route_step;
175 route_step.values.reserve(15);
176
177 route_step.values.emplace("distance", std::round(step.distance * 10) / 10.);
178 route_step.values.emplace("duration", step.duration);
179 route_step.values.emplace("weight", step.weight);
180 route_step.values.emplace("name", step.name);
181
182 if (!step.ref.empty())
183 route_step.values.emplace("ref", step.ref);
184 if (!step.pronunciation.empty())
185 route_step.values.emplace("pronunciation", step.pronunciation);
186 if (!step.destinations.empty())
187 route_step.values.emplace("destinations", step.destinations);
188 if (!step.exits.empty())
189 route_step.values.emplace("exits", step.exits);
190 if (!step.rotary_name.empty())
191 {
192 route_step.values.emplace("rotary_name", step.rotary_name);
193 if (!step.rotary_pronunciation.empty())
194 {
195 route_step.values.emplace("rotary_pronunciation", step.rotary_pronunciation);
196 }
197 }
198
199 route_step.values.emplace("mode", extractor::travelModeToString(step.mode));
200 route_step.values.emplace("maneuver", makeStepManeuver(step.maneuver));
201 route_step.values.emplace("geometry", std::move(geometry));
202 route_step.values.emplace("driving_side", step.is_left_hand_driving ? "left" : "right");
203
204 util::json::Array intersections;
205 intersections.values.reserve(step.intersections.size());
206
207 std::transform(step.intersections.begin(),
208 step.intersections.end(),
209 std::back_inserter(intersections.values),
210 makeIntersection);
211
212 route_step.values.emplace("intersections", std::move(intersections));
213
214 return route_step;
215}
216
217util::json::Object makeRoute(const guidance::Route &route,
218 util::json::Array legs,

Callers 1

makeRouteLegsFunction · 0.85

Calls 8

travelModeToStringFunction · 0.85
makeStepManeuverFunction · 0.85
reserveMethod · 0.45
emplaceMethod · 0.45
emptyMethod · 0.45
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected