From 2ccf3e4c6474f88a893a4b466f6015cd02f6d9f3 Mon Sep 17 00:00:00 2001
From: Emux <devemux86@gmail.com>
Date: Tue, 27 Dec 2016 12:39:31 +0200
Subject: [PATCH] Map limit via bounding box, closes #277

---
 vtm/src/org/oscim/map/Viewport.java | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/vtm/src/org/oscim/map/Viewport.java b/vtm/src/org/oscim/map/Viewport.java
index 37436d94..f84236d0 100644
--- a/vtm/src/org/oscim/map/Viewport.java
+++ b/vtm/src/org/oscim/map/Viewport.java
@@ -18,6 +18,7 @@
  */
 package org.oscim.map;
 
+import org.oscim.core.BoundingBox;
 import org.oscim.core.Box;
 import org.oscim.core.GeoPoint;
 import org.oscim.core.MapPosition;
@@ -500,4 +501,25 @@ public class Viewport {
     public void setMinY(double minY) {
         this.mMinY = minY;
     }
+
+    public void setMapLimit(double minX, double minY, double maxX, double maxY) {
+        this.mMinX = minX;
+        this.mMinY = minY;
+        this.mMaxX = maxX;
+        this.mMaxY = maxY;
+    }
+
+    public BoundingBox getMapLimit() {
+        return new BoundingBox(
+                MercatorProjection.toLatitude(mMaxY), MercatorProjection.toLongitude(mMinX),
+                MercatorProjection.toLatitude(mMinY), MercatorProjection.toLongitude(mMaxX)
+        );
+    }
+
+    public void setMapLimit(BoundingBox mapLimit) {
+        this.mMinX = MercatorProjection.longitudeToX(mapLimit.getMinLongitude());
+        this.mMinY = MercatorProjection.latitudeToY(mapLimit.getMaxLatitude());
+        this.mMaxX = MercatorProjection.longitudeToX(mapLimit.getMaxLongitude());
+        this.mMaxY = MercatorProjection.latitudeToY(mapLimit.getMinLatitude());
+    }
 }