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);