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:
authorDaria Volvenkova <d.volvenkova@corp.mail.ru>2020-03-12 17:14:28 +0300
committerjbenua <harumm.scarumm@gmail.com>2020-03-12 18:09:13 +0300
commit58b8af888afd9f904716dd3057ca80bb6f3aef00 (patch)
tree331f0707eff6f608cfe739a1ea1252057dffe0ad /kml
parent51e795968836e936e86c74355e08020cdec3c69b (diff)
[bookmarks][pykmlib] Support invalid altitude in tracks.
Diffstat (limited to 'kml')
-rw-r--r--kml/pykmlib/bindings.cpp1
-rw-r--r--kml/pykmlib/bindings_test.py2
-rw-r--r--kml/serdes.cpp6
3 files changed, 6 insertions, 3 deletions
diff --git a/kml/pykmlib/bindings.cpp b/kml/pykmlib/bindings.cpp
index 8678ebdfc6..602cefb08e 100644
--- a/kml/pykmlib/bindings.cpp
+++ b/kml/pykmlib/bindings.cpp
@@ -679,6 +679,7 @@ std::string IndexToClassificatorType(uint32_t index)
BOOST_PYTHON_MODULE(pykmlib)
{
scope().attr("__version__") = PYBINDINGS_VERSION;
+ scope().attr("invalid_altitude") = geometry::kInvalidAltitude;
register_exception_translator<std::runtime_error>(&TranslateRuntimeError);
TimestampConverter();
LatLonConverter();
diff --git a/kml/pykmlib/bindings_test.py b/kml/pykmlib/bindings_test.py
index c1bd1d67a5..8f4c2aa568 100644
--- a/kml/pykmlib/bindings_test.py
+++ b/kml/pykmlib/bindings_test.py
@@ -79,7 +79,7 @@ class PyKmlibAdsTest(unittest.TestCase):
pt2.set_altitude(110)
pt3 = pykmlib.PointWithAltitude()
pt3.set_point(pykmlib.LatLon(45.1964, 56.9832))
- pt3.set_altitude(120)
+ pt3.set_altitude(pykmlib.invalid_altitude)
track.points_with_altitudes.set_list([pt1, pt2, pt3])
track.visible = True
track.nearest_toponyms.set_list(['12345', '54321', '98765'])
diff --git a/kml/serdes.cpp b/kml/serdes.cpp
index e1025db868..8fbab5efa6 100644
--- a/kml/serdes.cpp
+++ b/kml/serdes.cpp
@@ -78,7 +78,9 @@ std::string PointToString(m2::PointD const & org)
std::string PointToString(geometry::PointWithAltitude const & pt)
{
- return PointToString(pt.GetPoint()) + "," + strings::to_string(pt.GetAltitude());
+ if (pt.GetAltitude() != geometry::kInvalidAltitude)
+ return PointToString(pt.GetPoint()) + "," + strings::to_string(pt.GetAltitude());
+ return PointToString(pt.GetPoint());
}
std::string GetLocalizableString(LocalizableString const & s, int8_t lang)
@@ -549,7 +551,7 @@ bool ParsePoint(std::string const & s, char const * delim, m2::PointD & pt)
bool ParsePointWithAltitude(std::string const & s, char const * delim,
geometry::PointWithAltitude & point)
{
- geometry::Altitude altitude = geometry::kDefaultAltitudeMeters;
+ geometry::Altitude altitude = geometry::kInvalidAltitude;
m2::PointD pt;
auto result = ParsePoint(s, delim, pt, altitude);
point.SetPoint(std::move(pt));