]> gitweb.fperrin.net Git - GpsPrune.git/blobdiff - tim/prune/gui/map/MapTileCacher.java
Version 8, September 2009
[GpsPrune.git] / tim / prune / gui / map / MapTileCacher.java
index ea5b6fb769813d7e3c0b4700fc55698454dec2db..366e1ad3b055731efd5487746aac66ea5b978f3d 100644 (file)
@@ -30,7 +30,7 @@ public class MapTileCacher implements ImageObserver
        private MapTileConfig _tileConfig = null;
 
        /** Grid size */
-       private static final int GRID_SIZE = 11;
+       private static final int GRID_SIZE = 15;
        /** max zoom level of map tiles */
        private static final int MAX_TILE_ZOOM = 18;
 
@@ -52,7 +52,10 @@ public class MapTileCacher implements ImageObserver
         */
        public void centreMap(int inZoom, int inTileX, int inTileY)
        {
-               if (inZoom != _zoom)
+               int shift = Math.max(Math.abs(inTileX-_tileX), Math.abs(inTileY - _tileY));
+               if (shift == 0) {return;}
+               // Clear cache if either zoom has changed or map has jumped too far
+               if (inZoom != _zoom || shift > GRID_SIZE/2)
                {
                        _zoom = inZoom;
                        clearAll();