From 63c86c78d1cc43de7b45dd9abfbd6853a04a4c07 Mon Sep 17 00:00:00 2001 From: Kirill Zhdanovich Date: Fri, 19 Apr 2013 13:42:53 +0300 Subject: [PATCH] Fix scales::GetRectForLevel according to possible mercator bounds. --- indexer/mercator.hpp | 2 +- indexer/scales.cpp | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/indexer/mercator.hpp b/indexer/mercator.hpp index b3bd4f42a6..15f1d089f1 100644 --- a/indexer/mercator.hpp +++ b/indexer/mercator.hpp @@ -50,7 +50,7 @@ struct MercatorBounds { lat = my::clamp(lat, -86.0, 86.0); double const res = my::RadToDeg(log(tan(my::DegToRad(45.0 + lat * 0.5)))); - return my::clamp(res, -180.0, 180.0); + return ClampY(res); } inline static double XToLon(double x) diff --git a/indexer/scales.cpp b/indexer/scales.cpp index bfcbfb3a12..f8d1c4e77a 100644 --- a/indexer/scales.cpp +++ b/indexer/scales.cpp @@ -68,7 +68,10 @@ namespace scales ASSERT_GREATER ( xL, 0.0, () ); ASSERT_GREATER ( yL, 0.0, () ); - return m2::RectD(center.x - xL, center.y - yL, center.x + xL, center.y + yL); + return m2::RectD(MercatorBounds::ClampX(center.x - xL), + MercatorBounds::ClampY(center.y - yL), + MercatorBounds::ClampX(center.x + xL), + MercatorBounds::ClampY(center.y + yL)); } namespace