59 lines
1.8 KiB
C++
59 lines
1.8 KiB
C++
#ifndef OSRM_GEOJSON_DEBUG_POLICIES
|
|
#define OSRM_GEOJSON_DEBUG_POLICIES
|
|
|
|
#include <vector>
|
|
|
|
#include "extractor/query_node.hpp"
|
|
#include "util/coordinate.hpp"
|
|
#include "util/json_container.hpp"
|
|
#include "util/node_based_graph.hpp"
|
|
#include "util/typedefs.hpp"
|
|
|
|
#include <boost/optional.hpp>
|
|
|
|
namespace osrm
|
|
{
|
|
namespace util
|
|
{
|
|
|
|
struct NodeIdVectorToLineString
|
|
{
|
|
NodeIdVectorToLineString(const std::vector<util::Coordinate> &node_coordinates);
|
|
|
|
// converts a vector of node ids into a linestring geojson feature
|
|
util::json::Object operator()(const std::vector<NodeID> &node_ids,
|
|
const boost::optional<json::Object> &properties = {}) const;
|
|
|
|
const std::vector<util::Coordinate> &node_coordinates;
|
|
};
|
|
|
|
struct CoordinateVectorToLineString
|
|
{
|
|
// converts a vector of node ids into a linestring geojson feature
|
|
util::json::Object operator()(const std::vector<util::Coordinate> &coordinates,
|
|
const boost::optional<json::Object> &properties = {}) const;
|
|
};
|
|
|
|
struct NodeIdVectorToMultiPoint
|
|
{
|
|
NodeIdVectorToMultiPoint(const std::vector<util::Coordinate> &node_coordinates);
|
|
|
|
// converts a vector of node ids into a linestring geojson feature
|
|
util::json::Object operator()(const std::vector<NodeID> &node_ids,
|
|
const boost::optional<json::Object> &properties = {}) const;
|
|
|
|
const std::vector<util::Coordinate> &node_coordinates;
|
|
};
|
|
|
|
struct CoordinateVectorToMultiPoint
|
|
{
|
|
// converts a vector of node ids into a linestring geojson feature
|
|
util::json::Object operator()(const std::vector<util::Coordinate> &coordinates,
|
|
const boost::optional<json::Object> &properties = {}) const;
|
|
};
|
|
|
|
} /* namespace util */
|
|
} /* namespace osrm */
|
|
|
|
#endif /* OSRM_GEOJSON_DEBUG_POLICIES */
|