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

Function makeIntersection

src/engine/api/json_factory.cpp:122–170  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

120}
121
122util::json::Object makeIntersection(const guidance::IntermediateIntersection &intersection)
123{
124 util::json::Object result;
125 util::json::Array bearings;
126 util::json::Array entry;
127
128 bearings.values.reserve(intersection.bearings.size());
129 std::transform(intersection.bearings.begin(),
130 intersection.bearings.end(),
131 std::back_inserter(bearings.values),
132 detail::roundAndClampBearing);
133
134 entry.values.reserve(intersection.entry.size());
135 std::transform(intersection.entry.begin(),
136 intersection.entry.end(),
137 std::back_inserter(entry.values),
138 [](const bool has_entry) -> util::json::Value
139 {
140 if (has_entry)
141 return util::json::True();
142 else
143 return util::json::False();
144 });
145
146 result.values.emplace("location", detail::coordinateToLonLat(intersection.location));
147 result.values.emplace("bearings", bearings);
148 result.values.emplace("entry", entry);
149 if (intersection.in != guidance::IntermediateIntersection::NO_INDEX)
150 result.values.emplace("in", intersection.in);
151 if (intersection.out != guidance::IntermediateIntersection::NO_INDEX)
152 result.values.emplace("out", intersection.out);
153
154 if (detail::hasValidLanes(intersection))
155 result.values.emplace("lanes", detail::lanesFromIntersection(intersection));
156
157 if (!intersection.classes.empty())
158 {
159 util::json::Array classes;
160 classes.values.reserve(intersection.classes.size());
161 std::transform(intersection.classes.begin(),
162 intersection.classes.end(),
163 std::back_inserter(classes.values),
164 [](const std::string &class_name)
165 { return util::json::String{class_name}; });
166 result.values.emplace("classes", std::move(classes));
167 }
168
169 return result;
170}
171
172util::json::Object makeRouteStep(guidance::RouteStep step, util::json::Value geometry)
173{

Callers

nothing calls this directly

Calls 11

TrueClass · 0.85
FalseClass · 0.85
coordinateToLonLatFunction · 0.85
hasValidLanesFunction · 0.85
lanesFromIntersectionFunction · 0.85
reserveMethod · 0.45
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
emplaceMethod · 0.45
emptyMethod · 0.45

Tested by

no test coverage detected