Mapsforge: at large query zoom levels clip everything #231, fixes #391

This commit is contained in:
Emux 2017-09-05 20:37:57 +03:00
parent b59f20ef49
commit f1634e4976
2 changed files with 7 additions and 3 deletions

View File

@ -874,10 +874,13 @@ public class MapDatabase implements ITileDataSource {
e.setLabelPosition(e.points[0] + labelPosition[0], e.points[1] + labelPosition[1]); e.setLabelPosition(e.points[0] + labelPosition[0], e.points[1] + labelPosition[1]);
mTileProjection.project(e); mTileProjection.project(e);
if (!e.tags.containsKey("building")) // At large query zoom levels clip everything
if (!e.tags.containsKey("building")
|| queryParameters.queryZoomLevel > MapFileTileSource.MAX_ZOOM_LEVEL) {
if (!mTileClipper.clip(e)) { if (!mTileClipper.clip(e)) {
continue; continue;
} }
}
e.simplify(1, true); e.simplify(1, true);
e.setLayer(layer); e.setLayer(layer);

View File

@ -1,7 +1,7 @@
/* /*
* Copyright 2013 mapsforge.org * Copyright 2013 mapsforge.org
* Copyright 2013 Hannes Janetzek * Copyright 2013 Hannes Janetzek
* Copyright 2016 devemux86 * Copyright 2016-2017 devemux86
* *
* This file is part of the OpenScienceMap project (http://www.opensciencemap.org). * This file is part of the OpenScienceMap project (http://www.opensciencemap.org).
* *
@ -37,6 +37,7 @@ public class MapFileTileSource extends TileSource implements IMapFileTileSource
* Amount of cache blocks that the index cache should store. * Amount of cache blocks that the index cache should store.
*/ */
private static final int INDEX_CACHE_SIZE = 64; private static final int INDEX_CACHE_SIZE = 64;
static final int MAX_ZOOM_LEVEL = 17;
private static final String READ_ONLY_MODE = "r"; private static final String READ_ONLY_MODE = "r";
MapFileHeader fileHeader; MapFileHeader fileHeader;
@ -53,7 +54,7 @@ public class MapFileTileSource extends TileSource implements IMapFileTileSource
private Callback callback; private Callback callback;
public MapFileTileSource() { public MapFileTileSource() {
this(0, 17); this(0, MAX_ZOOM_LEVEL);
} }
public MapFileTileSource(int zoomMin, int zoomMax) { public MapFileTileSource(int zoomMin, int zoomMax) {