zoom started
This commit is contained in:
parent
b708f8e6ff
commit
e070f5be94
1 changed files with 9 additions and 1 deletions
|
@ -8,6 +8,7 @@ import net.osmand.data.RotatedTileBox;
|
||||||
import net.osmand.plus.activities.MapActivity;
|
import net.osmand.plus.activities.MapActivity;
|
||||||
import net.osmand.plus.resources.AsyncLoadingThread;
|
import net.osmand.plus.resources.AsyncLoadingThread;
|
||||||
import net.osmand.plus.server.OsmAndHttpServer;
|
import net.osmand.plus.server.OsmAndHttpServer;
|
||||||
|
import net.osmand.util.MapUtils;
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
|
@ -20,7 +21,6 @@ public class TileEndpoint implements OsmAndHttpServer.ApiEndpoint {
|
||||||
private static final int TIMEOUT = 15000;
|
private static final int TIMEOUT = 15000;
|
||||||
private static final Log LOG = PlatformUtil.getLog(TileEndpoint.class);
|
private static final Log LOG = PlatformUtil.getLog(TileEndpoint.class);
|
||||||
@GuardedBy("this")
|
@GuardedBy("this")
|
||||||
//todo cancel on zoom
|
|
||||||
private static int lastZoom = -999;
|
private static int lastZoom = -999;
|
||||||
//TODO restore mapState on Exit
|
//TODO restore mapState on Exit
|
||||||
private final RotatedTileBox mapTileBoxCopy;
|
private final RotatedTileBox mapTileBoxCopy;
|
||||||
|
@ -53,6 +53,11 @@ public class TileEndpoint implements OsmAndHttpServer.ApiEndpoint {
|
||||||
int zoom = Integer.parseInt(prms[1]);
|
int zoom = Integer.parseInt(prms[1]);
|
||||||
int x = Integer.parseInt(prms[2]);
|
int x = Integer.parseInt(prms[2]);
|
||||||
int y = Integer.parseInt(prms[3]);
|
int y = Integer.parseInt(prms[3]);
|
||||||
|
synchronized (this){
|
||||||
|
if (zoom > lastZoom+1 || zoom < lastZoom-1){
|
||||||
|
lastZoom = zoom;
|
||||||
|
}
|
||||||
|
}
|
||||||
MetaTileFileSystemCache.MetaTileCache res = cache.get(zoom, x, y);
|
MetaTileFileSystemCache.MetaTileCache res = cache.get(zoom, x, y);
|
||||||
if (res == null) {
|
if (res == null) {
|
||||||
res = requestMetatile(x, y, zoom);
|
res = requestMetatile(x, y, zoom);
|
||||||
|
@ -82,6 +87,9 @@ public class TileEndpoint implements OsmAndHttpServer.ApiEndpoint {
|
||||||
if (cacheTile != null) {
|
if (cacheTile != null) {
|
||||||
return cacheTile;
|
return cacheTile;
|
||||||
}
|
}
|
||||||
|
if (zoom != lastZoom){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
MetaTileFileSystemCache.MetaTileCache res = cache.createMetaTile(zoom, x, y);
|
MetaTileFileSystemCache.MetaTileCache res = cache.createMetaTile(zoom, x, y);
|
||||||
mapActivity.getMapView().setCurrentViewport(res.bbox);
|
mapActivity.getMapView().setCurrentViewport(res.bbox);
|
||||||
int timeout = 0;
|
int timeout = 0;
|
||||||
|
|
Loading…
Reference in a new issue