From 3c23e89952eb834fcb71fc6d869ecd3b7eb4d87c Mon Sep 17 00:00:00 2001 From: campbeb Date: Tue, 22 May 2012 14:14:08 -1000 Subject: Fix offline zoom issue and document zoom level differences Google Maps and OSM Maps use different zoom levels for the same view ranges. This is better documented. Additionally, this change fixes zooming out causing zoom in (Issue #1485). --- .../geocaching/maps/mapsforge/MapsforgeMapController.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapController.java') diff --git a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapController.java b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapController.java index db81609..5aaecc8 100644 --- a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapController.java +++ b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapController.java @@ -26,13 +26,15 @@ public class MapsforgeMapController implements MapControllerImpl { mapController.setCenter((GeoPoint) geoPoint); } + /** + * Set the map zoom level to mapzoom-1 or maxZoomLevel, whichever is least + * mapzoom-1 is used to be compatible with Google Maps zoom levels + */ @Override public void setZoom(int mapzoom) { - int mfzoom = mapzoom - 1; - if (mfzoom > maxZoomLevel) { - mfzoom = maxZoomLevel; - } - mapController.setZoom(mfzoom); + // Google Maps and OSM Maps use different zoom levels for the same view. + // All OSM Maps zoom levels are offset by 1 so they match Google Maps. + mapController.setZoom(Math.min(mapzoom - 1, maxZoomLevel)); } @Override -- cgit v1.1