From 429af6a4f62b110e073622b94fae9bfb2c2d45af Mon Sep 17 00:00:00 2001 From: Siarhei Fedartsou Date: Sat, 25 May 2024 21:10:38 +0200 Subject: [PATCH] wip --- include/util/geojson_debug_policies.hpp | 54 --------- include/util/geojson_debug_policy_toolkit.hpp | 113 ------------------ src/partitioner/partitioner.cpp | 1 - src/util/geojson_debug_policies.cpp | 69 ----------- 4 files changed, 237 deletions(-) delete mode 100644 include/util/geojson_debug_policies.hpp delete mode 100644 include/util/geojson_debug_policy_toolkit.hpp delete mode 100644 src/util/geojson_debug_policies.cpp diff --git a/include/util/geojson_debug_policies.hpp b/include/util/geojson_debug_policies.hpp deleted file mode 100644 index 0f25badd0f4..00000000000 --- a/include/util/geojson_debug_policies.hpp +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef OSRM_GEOJSON_DEBUG_POLICIES -#define OSRM_GEOJSON_DEBUG_POLICIES - -#include -#include - -#include "extractor/query_node.hpp" -#include "util/coordinate.hpp" -#include "util/json_container.hpp" -#include "util/node_based_graph.hpp" -#include "util/typedefs.hpp" - -namespace osrm::util -{ - -struct NodeIdVectorToLineString -{ - NodeIdVectorToLineString(const std::vector &node_coordinates); - - // converts a vector of node ids into a linestring geojson feature - util::json::Object operator()(const std::vector &node_ids, - const std::optional &properties = {}) const; - - const std::vector &node_coordinates; -}; - -struct CoordinateVectorToLineString -{ - // converts a vector of node ids into a linestring geojson feature - util::json::Object operator()(const std::vector &coordinates, - const std::optional &properties = {}) const; -}; - -struct NodeIdVectorToMultiPoint -{ - NodeIdVectorToMultiPoint(const std::vector &node_coordinates); - - // converts a vector of node ids into a linestring geojson feature - util::json::Object operator()(const std::vector &node_ids, - const std::optional &properties = {}) const; - - const std::vector &node_coordinates; -}; - -struct CoordinateVectorToMultiPoint -{ - // converts a vector of node ids into a linestring geojson feature - util::json::Object operator()(const std::vector &coordinates, - const std::optional &properties = {}) const; -}; - -} // namespace osrm::util - -#endif /* OSRM_GEOJSON_DEBUG_POLICIES */ diff --git a/include/util/geojson_debug_policy_toolkit.hpp b/include/util/geojson_debug_policy_toolkit.hpp deleted file mode 100644 index bcc36a3aa03..00000000000 --- a/include/util/geojson_debug_policy_toolkit.hpp +++ /dev/null @@ -1,113 +0,0 @@ -#ifndef OSRM_GEOJSON_DEBUG_POLICY_TOOLKIT_HPP -#define OSRM_GEOJSON_DEBUG_POLICY_TOOLKIT_HPP - -#include "extractor/query_node.hpp" -#include "util/coordinate.hpp" -#include "util/json_container.hpp" - -#include -#include -#include - -namespace osrm::util -{ - -enum GeojsonStyleSize -{ - tiny, - small, - medium, - large, - extra_large, - num_styles -}; - -enum GeojsonStyleColors -{ - red, - purple, - blue, - green, - yellow, - cyan, - brown, - pink, - num_colors -}; - -const constexpr char *geojson_debug_predifined_colors[GeojsonStyleColors::num_colors] = { - "#FF4848", "#800080", "#5757FF", "#1FCB4A", "#FFE920", "#29AFD6", "#B05F3C", "#FE67EB"}; - -const constexpr double geojson_predefined_sizes[GeojsonStyleSize::num_styles] = { - 2.0, 3.5, 5.0, 6.5, 8}; - -inline util::json::Object makeStyle(const GeojsonStyleSize size_type, - const GeojsonStyleColors predefined_color) -{ - util::json::Object style; - // style everything, since we don't know the feature type - style.values["stroke"] = geojson_debug_predifined_colors[predefined_color]; - style.values["circle-color"] = geojson_debug_predifined_colors[predefined_color]; - style.values["line-width"] = geojson_predefined_sizes[size_type]; - style.values["circle-radius"] = geojson_predefined_sizes[size_type]; - return style; -} - -struct CoordinateToJsonArray -{ - util::json::Array operator()(const util::Coordinate coordinate) - { - util::json::Array json_coordinate; - json_coordinate.values.emplace_back( - util::json::Number{static_cast(toFloating(coordinate.lon))}); - json_coordinate.values.emplace_back( - util::json::Number{static_cast(toFloating(coordinate.lat))}); - return json_coordinate; - } -}; - -struct NodeIdToCoordinate -{ - NodeIdToCoordinate(const std::vector &node_coordinates) - : node_coordinates(node_coordinates) - { - } - - const std::vector &node_coordinates; - - util::json::Array operator()(const NodeID nid) - { - auto coordinate = node_coordinates[nid]; - CoordinateToJsonArray converter; - return converter(coordinate); - } -}; - -inline util::json::Object makeFeature(std::string type, - util::json::Array coordinates, - const std::optional &properties = {}) -{ - util::json::Object result; - result.values["type"] = "Feature"; - result.values["properties"] = properties ? *properties : util::json::Object(); - util::json::Object geometry; - geometry.values["type"] = std::move(type); - geometry.values["properties"] = util::json::Object(); - geometry.values["coordinates"] = std::move(coordinates); - result.values["geometry"] = geometry; - - return result; -} - -inline util::json::Array makeJsonArray(const std::vector &input_coordinates) -{ - util::json::Array coordinates; - std::transform(input_coordinates.begin(), - input_coordinates.end(), - std::back_inserter(coordinates.values), - CoordinateToJsonArray()); - return coordinates; -} -} // namespace osrm::util - -#endif /* OSRM_GEOJSON_DEBUG_POLICY_TOOLKIT_HPP */ diff --git a/src/partitioner/partitioner.cpp b/src/partitioner/partitioner.cpp index e8544bf64de..dbed86bb19e 100644 --- a/src/partitioner/partitioner.cpp +++ b/src/partitioner/partitioner.cpp @@ -15,7 +15,6 @@ #include "util/coordinate.hpp" #include "util/geojson_debug_logger.hpp" -#include "util/geojson_debug_policies.hpp" #include "util/integer_range.hpp" #include "util/json_container.hpp" #include "util/log.hpp" diff --git a/src/util/geojson_debug_policies.cpp b/src/util/geojson_debug_policies.cpp deleted file mode 100644 index 9fd2ad60dba..00000000000 --- a/src/util/geojson_debug_policies.cpp +++ /dev/null @@ -1,69 +0,0 @@ -#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 std::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 std::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 std::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 std::optional &properties) const -{ - auto coordinates = makeJsonArray(input_coordinates); - return makeFeature("LineString", std::move(coordinates), properties); -} - -} // namespace osrm::util