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]);
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)) {
continue;
}
}
e.simplify(1, true);
e.setLayer(layer);

View File

@ -1,7 +1,7 @@
/*
* Copyright 2013 mapsforge.org
* Copyright 2013 Hannes Janetzek
* Copyright 2016 devemux86
* Copyright 2016-2017 devemux86
*
* 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.
*/
private static final int INDEX_CACHE_SIZE = 64;
static final int MAX_ZOOM_LEVEL = 17;
private static final String READ_ONLY_MODE = "r";
MapFileHeader fileHeader;
@ -53,7 +54,7 @@ public class MapFileTileSource extends TileSource implements IMapFileTileSource
private Callback callback;
public MapFileTileSource() {
this(0, 17);
this(0, MAX_ZOOM_LEVEL);
}
public MapFileTileSource(int zoomMin, int zoomMax) {