/srv/osrm/osrm-backend/src/util
Edit: /srv/osrm/osrm-backend/src/util/geojson_debug_policies.cpp (2519B)
#include "util/geojson_debug_policies.hpp"
#include "util/coordinate.hpp"
#include "util/geojson_debug_policy_toolkit.hpp"
#include
namespace osrm::util
{
//----------------------------------------------------------------
NodeIdVectorToLineString::NodeIdVectorToLineString(
const std::vector &node_coordinates)
: node_coordinates(node_coordinates)
{
}
// converts a vector of node ids into a linestring geojson feature
util::json::Object
NodeIdVectorToLineString::operator()(const std::vector &node_ids,
const boost::optional &properties) const
{
util::json::Array coordinates;
std::transform(node_ids.begin(),
node_ids.end(),
std::back_inserter(coordinates.values),
NodeIdToCoordinate(node_coordinates));
return makeFeature("LineString", std::move(coordinates), properties);
}
//----------------------------------------------------------------
NodeIdVectorToMultiPoint::NodeIdVectorToMultiPoint(
const std::vector &node_coordinates)
: node_coordinates(node_coordinates)
{
}
util::json::Object
NodeIdVectorToMultiPoint::operator()(const std::vector &node_ids,
const boost::optional &properties) const
{
util::json::Array coordinates;
std::transform(node_ids.begin(),
node_ids.end(),
std::back_inserter(coordinates.values),
NodeIdToCoordinate(node_coordinates));
return makeFeature("MultiPoint", std::move(coordinates), properties);
}
//----------------------------------------------------------------
util::json::Object
CoordinateVectorToMultiPoint::operator()(const std::vector &input_coordinates,
const boost::optional &properties) const
{
auto coordinates = makeJsonArray(input_coordinates);
return makeFeature("MultiPoint", std::move(coordinates), properties);
}
//----------------------------------------------------------------
util::json::Object
CoordinateVectorToLineString::operator()(const std::vector &input_coordinates,
const boost::optional &properties) const
{
auto coordinates = makeJsonArray(input_coordinates);
return makeFeature("LineString", std::move(coordinates), properties);
}
} // namespace osrm::util