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

Method MakeGeometry

include/engine/api/route_api.hpp:162–186  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

160
161 template <typename ForwardIter>
162 std::variant<flatbuffers::Offset<flatbuffers::String>,
163 flatbuffers::Offset<flatbuffers::Vector<const fbresult::Position *>>>
164 MakeGeometry(flatbuffers::FlatBufferBuilder &builder, ForwardIter begin, ForwardIter end) const
165 {
166 if (parameters.geometries == RouteParameters::GeometriesType::Polyline)
167 {
168 return builder.CreateString(encodePolyline<100000>(begin, end));
169 }
170 else if (parameters.geometries == RouteParameters::GeometriesType::Polyline6)
171 {
172 return builder.CreateString(encodePolyline<1000000>(begin, end));
173 }
174 std::vector<fbresult::Position> coordinates;
175 coordinates.resize(std::distance(begin, end));
176 std::transform(begin,
177 end,
178 coordinates.begin(),
179 [](const Coordinate &c)
180 {
181 return fbresult::Position{
182 static_cast<float>(util::toFloating(c.lon).__value),
183 static_cast<float>(util::toFloating(c.lat).__value)};
184 });
185 return builder.CreateVectorOfStructs(coordinates);
186 }
187
188 std::optional<util::json::Value>
189 MakeGeometry(std::optional<std::vector<Coordinate>> &&geometry) const

Callers

nothing calls this directly

Calls 6

toFloatingFunction · 0.85
makeGeoJSONGeometryFunction · 0.85
resizeMethod · 0.45
beginMethod · 0.45
cbeginMethod · 0.45
cendMethod · 0.45

Tested by

no test coverage detected