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
path: root/kml
diff options
context:
space:
mode:
authorAnatoliy Tomilov <tomilovanatoliy@gmail.com>2020-10-01 18:39:46 +0300
committermpimenov <mpimenov@users.noreply.github.com>2020-10-17 02:12:48 +0300
commitcce38d001bc795c0ad29268b3cdf6c8eee833b7a (patch)
treea56695f376006d9a1740ff77241917b5de3cb441 /kml
parent10450c31832886b8fa710372b524ea369d5b7f05 (diff)
[kml] Add BookmarkData::m_minZoom support to text kml serdes. MAPSME-14916
Diffstat (limited to 'kml')
-rw-r--r--kml/kml_tests/serdes_tests.cpp3
-rw-r--r--kml/serdes.cpp14
-rw-r--r--kml/serdes.hpp1
3 files changed, 17 insertions, 1 deletions
diff --git a/kml/kml_tests/serdes_tests.cpp b/kml/kml_tests/serdes_tests.cpp
index 3d9417f51e..d17d76351b 100644
--- a/kml/kml_tests/serdes_tests.cpp
+++ b/kml/kml_tests/serdes_tests.cpp
@@ -84,6 +84,7 @@ kml::FileData GenerateKmlFileData()
bookmarkData.m_boundTracks = {0};
bookmarkData.m_visible = false;
bookmarkData.m_nearestToponym = "12345";
+ bookmarkData.m_minZoom = 10;
bookmarkData.m_properties = {{"bm_property1", "value1"},
{"bm_property2", "value2"},
{"score", "5"}};
@@ -419,6 +420,7 @@ R"(<?xml version="1.0" encoding="UTF-8"?>
</mwm:boundTracks>
<mwm:visibility>0</mwm:visibility>
<mwm:nearestToponym>12345</mwm:nearestToponym>
+ <mwm:minZoom>10</mwm:minZoom>
<mwm:properties>
<mwm:value key="bm_property1">value1</mwm:value>
<mwm:value key="bm_property2">value2</mwm:value>
@@ -462,7 +464,6 @@ R"(<?xml version="1.0" encoding="UTF-8"?>
<mwm:value key="tr_property1">value1</mwm:value>
<mwm:value key="tr_property2">value2</mwm:value>
</mwm:properties>
- <mwm:compilations>5,6,7,8,9</mwm:compilations>
</ExtendedData>
</Placemark>
</Document>
diff --git a/kml/serdes.cpp b/kml/serdes.cpp
index d82ac2b2ab..651b41befd 100644
--- a/kml/serdes.cpp
+++ b/kml/serdes.cpp
@@ -450,6 +450,12 @@ void SaveBookmarkExtendedData(KmlWriter::WriterWrapper & writer, BookmarkData co
writer << "</mwm:nearestToponym>\n";
}
+ if (bookmarkData.m_minZoom > 1)
+ {
+ writer << kIndent6 << "<mwm:minZoom>" << strings::to_string(bookmarkData.m_minZoom)
+ << "</mwm:minZoom>\n";
+ }
+
SaveStringsMap(writer, bookmarkData.m_properties, "properties", kIndent6);
if (!bookmarkData.m_compilations.empty())
@@ -867,6 +873,7 @@ void KmlParser::Pop(std::string const & tag)
data.m_boundTracks = std::move(m_boundTracks);
data.m_visible = m_visible;
data.m_nearestToponym = std::move(m_nearestToponym);
+ data.m_minZoom = m_minZoom;
data.m_properties = std::move(m_properties);
data.m_compilations = std::move(m_compilations);
@@ -1160,6 +1167,13 @@ void KmlParser::CharData(std::string value)
{
m_nearestToponym = value;
}
+ else if (currTag == "mwm:minZoom")
+ {
+ if (!strings::to_int(value, m_minZoom) || m_minZoom < 1)
+ m_minZoom = 1;
+ else if (m_minZoom > 19)
+ m_minZoom = 19;
+ }
else if (currTag == "mwm:compilations")
{
m_compilations.clear();
diff --git a/kml/serdes.hpp b/kml/serdes.hpp
index 0446e666e5..78b0a7ca97 100644
--- a/kml/serdes.hpp
+++ b/kml/serdes.hpp
@@ -129,6 +129,7 @@ private:
bool m_visible;
std::string m_nearestToponym;
std::vector<std::string> m_nearestToponyms;
+ int m_minZoom = 1;
kml::Properties m_properties;
std::vector<CompilationId> m_compilations;
double m_trackWidth;