skip rendering TileSet when zoom-level is not renderable
This commit is contained in:
parent
cb2aee6d60
commit
5ad631f1ea
@ -196,6 +196,15 @@ public class TileManager {
|
||||
* jobs come in. */
|
||||
jobQueue.clear();
|
||||
|
||||
if (pos.zoomLevel < mMinZoom) {
|
||||
if (mCurrentTiles.cnt > 0 && pos.zoomLevel < mMinZoom - 4) {
|
||||
synchronized (mTilelock) {
|
||||
mCurrentTiles.releaseTiles();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
int tileZoom = FastMath.clamp(pos.zoomLevel, mMinZoom, mMaxZoom);
|
||||
|
||||
if (mZoomTable != null) {
|
||||
@ -349,7 +358,7 @@ public class TileManager {
|
||||
mJobs.add(tile);
|
||||
}
|
||||
|
||||
if ((zoomLevel > 2) && (mZoomTable == null)) {
|
||||
if ((zoomLevel > mMinZoom) && (mZoomTable == null)) {
|
||||
/* prefetch parent */
|
||||
MapTile p = tile.node.parent.item;
|
||||
if (p == null) {
|
||||
|
@ -226,6 +226,10 @@ public abstract class TileRenderer extends LayerRenderer {
|
||||
for (int i = 0; i < mDrawTiles.cnt; i++)
|
||||
tiles[i].isVisible = false;
|
||||
|
||||
if (tileZoom > pos.zoomLevel + 2 || tileZoom < pos.zoomLevel - 4) {
|
||||
//log.debug("skip: zoomlevel diff " + (tileZoom - pos.zoomLevel));
|
||||
return;
|
||||
}
|
||||
/* count placeholder tiles */
|
||||
mProxyTileCnt = 0;
|
||||
|
||||
@ -287,6 +291,7 @@ public abstract class TileRenderer extends LayerRenderer {
|
||||
private final ScanBox mScanBox = new ScanBox() {
|
||||
@Override
|
||||
protected void setVisible(int y, int x1, int x2) {
|
||||
|
||||
MapTile[] tiles = mDrawTiles.tiles;
|
||||
int cnt = mDrawTiles.cnt;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user