aboutsummaryrefslogtreecommitdiffstats
path: root/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapController.java
diff options
context:
space:
mode:
authorrsudev <rasch@munin-soft.de>2011-09-20 07:40:41 +0200
committerrsudev <rasch@munin-soft.de>2011-09-20 07:56:41 +0200
commita2f2c5db407dd27d9c24cccb42dd45450f8c20af (patch)
treee18186c3f2a48708b58abddc8894a63c9735bb6f /main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapController.java
parent617d43896cc074a8233e6fdb7f96568afd4f331a (diff)
downloadcgeo-a2f2c5db407dd27d9c24cccb42dd45450f8c20af.zip
cgeo-a2f2c5db407dd27d9c24cccb42dd45450f8c20af.tar.gz
cgeo-a2f2c5db407dd27d9c24cccb42dd45450f8c20af.tar.bz2
Renamed map classes to uppercase
Diffstat (limited to 'main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapController.java')
-rw-r--r--main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapController.java48
1 files changed, 48 insertions, 0 deletions
diff --git a/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapController.java b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapController.java
new file mode 100644
index 0000000..9cdb80f
--- /dev/null
+++ b/main/src/cgeo/geocaching/maps/mapsforge/MapsforgeMapController.java
@@ -0,0 +1,48 @@
+package cgeo.geocaching.maps.mapsforge;
+
+import cgeo.geocaching.maps.interfaces.GeoPointImpl;
+import cgeo.geocaching.maps.interfaces.MapControllerImpl;
+
+import org.mapsforge.android.maps.GeoPoint;
+import org.mapsforge.android.maps.MapController;
+
+public class MapsforgeMapController implements MapControllerImpl {
+
+ private MapController mapController;
+ private int maxZoomLevel;
+
+ public MapsforgeMapController(MapController mapControllerIn, int maxZoomLevelIn) {
+ mapController = mapControllerIn;
+ maxZoomLevel = maxZoomLevelIn;
+ }
+
+ @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) {
+ int mfzoom = mapzoom - 1;
+ if (mfzoom > maxZoomLevel) {
+ mfzoom = maxZoomLevel;
+ }
+ mapController.setZoom(mfzoom);
+ }
+
+ @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 + 1);
+ }
+ }
+}