aboutsummaryrefslogtreecommitdiffstats
path: root/src/cgeo/geocaching/mapsforge/mfMapController.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/cgeo/geocaching/mapsforge/mfMapController.java')
-rw-r--r--src/cgeo/geocaching/mapsforge/mfMapController.java43
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);
+ }
+ }
+}
+