From f63c30329321b6baac328f8dc30160561616b9e8 Mon Sep 17 00:00:00 2001 From: Emux Date: Wed, 6 Sep 2017 11:16:23 +0300 Subject: [PATCH] Mapsforge: at large query zoom levels enlarge clip buffer, fixes #231 --- docs/Changelog.md | 1 + vtm/src/org/oscim/tiling/source/mapfile/MapDatabase.java | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/Changelog.md b/docs/Changelog.md index e2308ce7..58ab32e1 100644 --- a/docs/Changelog.md +++ b/docs/Changelog.md @@ -5,6 +5,7 @@ - Mapsforge themes compatibility [#100](https://github.com/mapsforge/vtm/issues/100) - Render themes: line symbol [#124](https://github.com/mapsforge/vtm/issues/124) - Render themes: stroke dash array [#131](https://github.com/mapsforge/vtm/issues/131) +- Mapsforge fix artifacts for zoom > 17 [#231](https://github.com/mapsforge/vtm/issues/231) - vtm-theme-comparator module [#387](https://github.com/mapsforge/vtm/issues/387) - Many other minor improvements and bug fixes - [Solved issues](https://github.com/mapsforge/vtm/issues?q=is%3Aclosed+milestone%3A0.9.0) diff --git a/vtm/src/org/oscim/tiling/source/mapfile/MapDatabase.java b/vtm/src/org/oscim/tiling/source/mapfile/MapDatabase.java index bf8b45d0..e97b923a 100644 --- a/vtm/src/org/oscim/tiling/source/mapfile/MapDatabase.java +++ b/vtm/src/org/oscim/tiling/source/mapfile/MapDatabase.java @@ -372,8 +372,12 @@ public class MapDatabase implements ITileDataSource { //log.debug(numCols + "/" + numRows + " " + mCurrentCol + " " + mCurrentRow); - // Buffer based on dpi - int buffer = (int) (16 * CanvasAdapter.dpi / CanvasAdapter.DEFAULT_DPI + 0.5f); + // At large query zoom levels use enlarged buffer + int buffer; + if (queryParameters.queryZoomLevel > MapFileTileSource.MAX_ZOOM_LEVEL) + buffer = Tile.SIZE / 2; + else + buffer = (int) (16 * CanvasAdapter.dpi / CanvasAdapter.DEFAULT_DPI + 0.5f); xmin = -buffer; ymin = -buffer;