From 0627c3443d553e420357357656215a59ff710ec5 Mon Sep 17 00:00:00 2001 From: "Daniel J. Hofmann" Date: Fri, 8 Jan 2016 13:15:09 +0100 Subject: [PATCH] Make PolylineFormatter's encodedAsJSON and unencodedAsJSON free standing functions --- include/engine/api_response_generator.hpp | 4 ++-- include/engine/polyline_formatter.hpp | 13 ++++++------- src/engine/polyline_formatter.cpp | 11 ++--------- 3 files changed, 10 insertions(+), 18 deletions(-) diff --git a/include/engine/api_response_generator.hpp b/include/engine/api_response_generator.hpp index 747a3639b..5cde1f30c 100644 --- a/include/engine/api_response_generator.hpp +++ b/include/engine/api_response_generator.hpp @@ -243,9 +243,9 @@ util::json::Value ApiResponseGenerator::GetGeometry(const bool retu const Segments &segments) const { if (return_encoded) - return PolylineFormatter().printEncodedString(segments.Get()); + return polylineEncodeAsJSON(segments.Get()); else - return PolylineFormatter().printUnencodedString(segments.Get()); + return polylineUnencodedAsJSON(segments.Get()); } template diff --git a/include/engine/polyline_formatter.hpp b/include/engine/polyline_formatter.hpp index b2c5afe24..434d792fe 100644 --- a/include/engine/polyline_formatter.hpp +++ b/include/engine/polyline_formatter.hpp @@ -1,6 +1,7 @@ #ifndef POLYLINE_FORMATTER_HPP #define POLYLINE_FORMATTER_HPP +#include "engine/segment_information.hpp" #include "osrm/json_container.hpp" #include @@ -11,14 +12,12 @@ namespace osrm namespace engine { -struct SegmentInformation; +// Encodes geometry into polyline format, returning an encoded JSON object +// See: https://developers.google.com/maps/documentation/utilities/polylinealgorithm +util::json::String polylineEncodeAsJSON(const std::vector &geometry); -struct PolylineFormatter -{ - util::json::String printEncodedString(const std::vector &polyline) const; - - util::json::Array printUnencodedString(const std::vector &polyline) const; -}; +// Does not encode the geometry in polyline format, instead returning an unencoded JSON object +util::json::Array polylineUnencodedAsJSON(const std::vector &geometry); } } diff --git a/src/engine/polyline_formatter.cpp b/src/engine/polyline_formatter.cpp index 617ef7977..5039e2375 100644 --- a/src/engine/polyline_formatter.cpp +++ b/src/engine/polyline_formatter.cpp @@ -1,25 +1,18 @@ #include "engine/polyline_formatter.hpp" - #include "engine/polyline_compressor.hpp" -#include "engine/segment_information.hpp" - #include "osrm/coordinate.hpp" -#include - namespace osrm { namespace engine { -util::json::String -PolylineFormatter::printEncodedString(const std::vector &polyline) const +util::json::String polylineEncodeAsJSON(const std::vector &polyline) { return util::json::String(polylineEncode(polyline)); } -util::json::Array -PolylineFormatter::printUnencodedString(const std::vector &polyline) const +util::json::Array polylineUnencodedAsJSON(const std::vector &polyline) { util::json::Array json_geometry_array; for (const auto &segment : polyline)