Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Zolotarev <alex@maps.me>2016-03-04 11:06:24 +0300
committerSergey Yershov <yershov@corp.mail.ru>2016-03-23 16:51:28 +0300
commit4be5bc0fa919d2d5899e4df822c1012db1c77783 (patch)
tree8ff1689bfe7912b83a629deec419c3eb5aca37c5 /indexer/feature_meta.cpp
parent297cf71e4ad22b16d5a762cbb5b9171034869a4c (diff)
Metadata::TypeFromString to correctly match osm tags with our metadata types.
Diffstat (limited to 'indexer/feature_meta.cpp')
-rw-r--r--indexer/feature_meta.cpp52
1 files changed, 52 insertions, 0 deletions
diff --git a/indexer/feature_meta.cpp b/indexer/feature_meta.cpp
index d936c3310d..ec00c8c236 100644
--- a/indexer/feature_meta.cpp
+++ b/indexer/feature_meta.cpp
@@ -41,6 +41,58 @@ string Metadata::GetWikiURL() const
return "https://" + v.substr(0, colon) + kBaseWikiUrl + v.substr(colon + 1);
}
+// static
+bool Metadata::TypeFromString(string const & k, Metadata::EType & outType)
+{
+ if (k == "cuisine")
+ outType = Metadata::FMD_CUISINE;
+ else if (k == "opening_hours")
+ outType = Metadata::FMD_OPEN_HOURS;
+ else if (k == "phone" || k == "contact:phone")
+ outType = Metadata::FMD_PHONE_NUMBER;
+ else if (k == "fax" || k == "contact:fax")
+ outType = Metadata::EType::FMD_FAX_NUMBER;
+ else if (k == "stars")
+ outType = Metadata::FMD_STARS;
+ else if (k == "operator")
+ outType = Metadata::FMD_OPERATOR;
+ else if (k == "url") // TODO: Should we match url to website here?
+ outType = Metadata::FMD_URL;
+ else if (k == "website" || k == "contact:website")
+ outType = Metadata::FMD_WEBSITE;
+ else if (k == "internet_access")
+ outType = Metadata::FMD_INTERNET;
+ else if (k == "ele")
+ outType = Metadata::FMD_ELE;
+ else if (k == "turn:lanes")
+ outType = Metadata::FMD_TURN_LANES;
+ else if (k == "turn:lanes:forward")
+ outType = Metadata::FMD_TURN_LANES_FORWARD;
+ else if (k == "turn:lanes:backward")
+ outType = Metadata::FMD_TURN_LANES_BACKWARD;
+ else if (k == "email" || k == "contact:email")
+ outType = Metadata::FMD_EMAIL;
+ else if (k == "addr:postcode")
+ outType = Metadata::FMD_POSTCODE;
+ else if (k == "wikipedia")
+ outType = Metadata::FMD_WIKIPEDIA;
+ else if (k == "maxspeed")
+ outType = Metadata::FMD_MAXSPEED;
+ else if (k == "addr:flats")
+ outType = Metadata::FMD_FLATS;
+ else if (k == "height")
+ outType = Metadata::FMD_HEIGHT;
+ else if (k == "min_height")
+ outType = Metadata::FMD_MIN_HEIGHT;
+ else if (k == "building:levels")
+ outType = Metadata::FMD_BUILDING_LEVELS;
+ else if (k == "denomination")
+ outType = Metadata::FMD_DENOMINATION;
+ else
+ return false;
+
+ return true;
+}
} // namespace feature
// Warning: exact osm tag keys should be returned for valid enum values.