diff options
Diffstat (limited to 'src/cgeo/geocaching/mapsforge/mfMapController.java')
| -rw-r--r-- | src/cgeo/geocaching/mapsforge/mfMapController.java | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/cgeo/geocaching/mapsforge/mfMapController.java b/src/cgeo/geocaching/mapsforge/mfMapController.java new file mode 100644 index 0000000..30f1c29 --- /dev/null +++ b/src/cgeo/geocaching/mapsforge/mfMapController.java @@ -0,0 +1,43 @@ +package cgeo.geocaching.mapsforge; + +import org.mapsforge.android.maps.GeoPoint; +import org.mapsforge.android.maps.MapController; + +import cgeo.geocaching.mapinterfaces.GeoPointImpl; +import cgeo.geocaching.mapinterfaces.MapControllerImpl; + +public class mfMapController implements MapControllerImpl { + + private MapController mapController; + + public mfMapController(MapController mapControllerIn) { + mapController = mapControllerIn; + } + + @Override + public void animateTo(GeoPointImpl geoPoint) { + mapController.setCenter((GeoPoint)geoPoint); + } + + @Override + public void setCenter(GeoPointImpl geoPoint) { + mapController.setCenter((GeoPoint)geoPoint); + } + + @Override + public void setZoom(int mapzoom) { + mapController.setZoom(mapzoom); + } + + @Override + public void zoomToSpan(int latSpanE6, int lonSpanE6) { + + if (latSpanE6 != 0 && lonSpanE6 != 0) { + // calculate zoomlevel + int distDegree = Math.max(latSpanE6, lonSpanE6); + int zoomLevel = (int) Math.floor(Math.log(360.0*1e6/distDegree)/Math.log(2)); + mapController.setZoom(zoomLevel); + } + } +} + |
