use internal zoomLevel limits for now

This commit is contained in:
Hannes Janetzek 2012-11-26 12:44:05 +01:00
parent 7f598f5ccf
commit 74b5de13b8
2 changed files with 19 additions and 9 deletions

View File

@ -552,13 +552,13 @@ public class MapView extends RelativeLayout {
return true; return true;
} }
byte limitZoomLevel(byte zoom) { // byte limitZoomLevel(byte zoom) {
if (mMapZoomControls == null) // if (mMapZoomControls == null)
return zoom; // return zoom;
//
return (byte) Math.max(Math.min(zoom, getMaximumPossibleZoomLevel()), // return (byte) Math.max(Math.min(zoom, getMaximumPossibleZoomLevel()),
mMapZoomControls.getZoomLevelMin()); // mMapZoomControls.getZoomLevelMin());
} // }
/** /**
* Sets the center and zoom level of this MapView and triggers a redraw. * Sets the center and zoom level of this MapView and triggers a redraw.

View File

@ -537,17 +537,27 @@ public class MapViewPosition {
} }
synchronized void setMapCenter(MapPosition mapPosition) { synchronized void setMapCenter(MapPosition mapPosition) {
mZoomLevel = mMapView.limitZoomLevel(mapPosition.zoomLevel); //mZoomLevel = mMapView.limitZoomLevel(mapPosition.zoomLevel);
setZoomLevelLimit(mapPosition.zoomLevel);
mMapScale = 1 << mZoomLevel; mMapScale = 1 << mZoomLevel;
setMapCenter(mapPosition.lat, mapPosition.lon); setMapCenter(mapPosition.lat, mapPosition.lon);
} }
synchronized void setZoomLevel(byte zoomLevel) { synchronized void setZoomLevel(byte zoomLevel) {
mZoomLevel = mMapView.limitZoomLevel(zoomLevel); //mZoomLevel = mMapView.limitZoomLevel(zoomLevel);
setZoomLevelLimit(zoomLevel);
mMapScale = 1 << mZoomLevel; mMapScale = 1 << mZoomLevel;
updatePosition(); updatePosition();
} }
private void setZoomLevelLimit(byte zoomLevel) {
mZoomLevel = zoomLevel;
if (mZoomLevel > MAX_ZOOMLEVEL)
mZoomLevel = MAX_ZOOMLEVEL;
else if (mZoomLevel < MIN_ZOOMLEVEL)
mZoomLevel = MIN_ZOOMLEVEL;
}
synchronized void setScale(float scale) { synchronized void setScale(float scale) {
mScale = scale; mScale = scale;
} }