| 170 | } |
| 171 | |
| 172 | util::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 | |
| 217 | util::json::Object makeRoute(const guidance::Route &route, |
| 218 | util::json::Array legs, |
no test coverage detected