From 0acab60d91e30bbc3796d00d618b3d92fbd1595c Mon Sep 17 00:00:00 2001 From: tatiana-kondakova Date: Fri, 27 Apr 2018 21:47:22 +0300 Subject: [PATCH] [geocoder] Fix borders delta coding --- generator/feature_builder.cpp | 7 ++++--- indexer/borders.cpp | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/generator/feature_builder.cpp b/generator/feature_builder.cpp index 55e6a52b40..17180cc304 100644 --- a/generator/feature_builder.cpp +++ b/generator/feature_builder.cpp @@ -424,11 +424,12 @@ void FeatureBuilder1::SerializeBorder(serial::GeometryCodingParams const & param for (auto const & polygon : m_polygons) { WriteToSink(sink, polygon.size()); - auto last = params.GetBasePoint(); + m2::PointU last = params.GetBasePoint(); for (auto const & p : polygon) { - coding::EncodePointDelta(sink, toU(last), toU(p)); - last = p; + auto const curr = toU(p); + coding::EncodePointDelta(sink, last, curr); + last = curr; } } } diff --git a/indexer/borders.cpp b/indexer/borders.cpp index dceb2eee8c..71066b136c 100644 --- a/indexer/borders.cpp +++ b/indexer/borders.cpp @@ -27,7 +27,7 @@ public: serial::GeometryCodingParams cp = {}; auto readPoly = [&cp, &src](vector & poly) { - m2::PointU base = PointDToPointU(cp.GetBasePoint(), cp.GetCoordBits()); + m2::PointU base = cp.GetBasePoint(); for (auto & point : poly) { base = coding::DecodePointDelta(src, base);