From 8c2a1cb00f385094474117aa564fdbfeba84880f Mon Sep 17 00:00:00 2001 From: Daria Volvenkova Date: Tue, 25 Jul 2017 18:39:03 +0300 Subject: [PATCH] Spline segment length corrected in user line indexing. --- drape_frontend/user_mark_generator.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drape_frontend/user_mark_generator.cpp b/drape_frontend/user_mark_generator.cpp index da04edc0fc..d36ba8de1a 100644 --- a/drape_frontend/user_mark_generator.cpp +++ b/drape_frontend/user_mark_generator.cpp @@ -1,9 +1,9 @@ #include "drape_frontend/user_mark_generator.hpp" #include "drape_frontend/tile_utils.hpp" -#include "drape_frontend/visual_params.hpp" #include "drape/batcher.hpp" +#include "geometry/mercator.hpp" #include "geometry/rect_intersect.hpp" #include "indexer/scales.hpp" @@ -106,8 +106,9 @@ void UserMarkGenerator::UpdateIndex(GroupID groupId) double length = 0; while (length < splineFullLength) { - m2::RectD const tileRect = GetRectForDrawScale(zoomLevel, params.m_spline->GetPoint(length).m_pos); - double const maxLength = std::min(tileRect.SizeX(), tileRect.SizeY()); + // Process spline by segments that no longer than tile size. + double const range = MercatorBounds::maxX - MercatorBounds::minX; + double const maxLength = range / (1 << (zoomLevel - 1)); m2::RectD splineRect;