From 0a73e3de9419b6a598f9dad1cac82a663d7de539 Mon Sep 17 00:00:00 2001 From: David Martinez <47610359+dvdmrtnz@users.noreply.github.com> Date: Sat, 30 Dec 2023 16:49:18 +0100 Subject: [PATCH] [generator] Add capacity tag to metadata Signed-off-by: David Martinez <47610359+dvdmrtnz@users.noreply.github.com> --- generator/osm2meta.cpp | 6 ++++++ generator/osm2meta.hpp | 1 + indexer/feature_meta.cpp | 3 +++ indexer/feature_meta.hpp | 1 + 4 files changed, 11 insertions(+) diff --git a/generator/osm2meta.cpp b/generator/osm2meta.cpp index 3e930bbc73..2eeba72189 100644 --- a/generator/osm2meta.cpp +++ b/generator/osm2meta.cpp @@ -326,6 +326,11 @@ std::string MetadataTagProcessorImpl::ValidateAndFormat_brand(std::string const return v; } +std::string MetadataTagProcessorImpl::ValidateAndFormat_capacity(std::string const & v) +{ + return v; +} + std::string MetadataTagProcessorImpl::ValidateAndFormat_duration(std::string const & v) const { if (!ftypes::IsWayWithDurationChecker::Instance()(m_params.m_types)) @@ -519,6 +524,7 @@ void MetadataTagProcessor::operator()(std::string const & k, std::string const & valid = ValidateAndFormat_brand(v); break; case Metadata::FMD_DURATION: valid = ValidateAndFormat_duration(v); break; + case Metadata::FMD_CAPACITY: valid = ValidateAndFormat_capacity(v); break; // Metadata types we do not get from OSM. case Metadata::FMD_CUISINE: case Metadata::FMD_DESCRIPTION: // processed separately diff --git a/generator/osm2meta.hpp b/generator/osm2meta.hpp index 231c25763b..bddc828385 100644 --- a/generator/osm2meta.hpp +++ b/generator/osm2meta.hpp @@ -35,6 +35,7 @@ struct MetadataTagProcessorImpl std::string ValidateAndFormat_airport_iata(std::string const & v) const; static std::string ValidateAndFormat_brand(std::string const & v); std::string ValidateAndFormat_duration(std::string const & v) const; + static std::string ValidateAndFormat_capacity(std::string const & v); protected: FeatureBuilderParams & m_params; diff --git a/indexer/feature_meta.cpp b/indexer/feature_meta.cpp index c5202e2e71..a89c464235 100644 --- a/indexer/feature_meta.cpp +++ b/indexer/feature_meta.cpp @@ -122,6 +122,8 @@ bool Metadata::TypeFromString(string_view k, Metadata::EType & outType) outType = Metadata::FMD_BRAND; else if (k == "duration") outType = Metadata::FMD_DURATION; + else if (k == "capacity") + outType = Metadata::FMD_CAPACITY; else return false; @@ -237,6 +239,7 @@ string ToString(Metadata::EType type) case Metadata::FMD_JUNCTION_REF: return "junction:ref"; case Metadata::FMD_BUILDING_MIN_LEVEL: return "building:min_level"; case Metadata::FMD_WIKIMEDIA_COMMONS: return "wikimedia_commons"; + case Metadata::FMD_CAPACITY: return "capacity"; case Metadata::FMD_COUNT: CHECK(false, ("FMD_COUNT can not be used as a type.")); }; diff --git a/indexer/feature_meta.hpp b/indexer/feature_meta.hpp index 13356cb3fa..9b9c640b67 100644 --- a/indexer/feature_meta.hpp +++ b/indexer/feature_meta.hpp @@ -147,6 +147,7 @@ public: FMD_JUNCTION_REF = 39, FMD_BUILDING_MIN_LEVEL = 40, FMD_WIKIMEDIA_COMMONS = 41, + FMD_CAPACITY = 42, FMD_COUNT };