From 2ac7cfc7b904f59f5ef4e8ebb24f2306317ce6d5 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Tue, 28 Jan 2014 17:45:35 +0100 Subject: [PATCH] add MapPosition.setByBoundingBox() --- vtm/src/org/oscim/core/MapPosition.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/vtm/src/org/oscim/core/MapPosition.java b/vtm/src/org/oscim/core/MapPosition.java index fca1cab7..28795ad9 100644 --- a/vtm/src/org/oscim/core/MapPosition.java +++ b/vtm/src/org/oscim/core/MapPosition.java @@ -102,6 +102,22 @@ public class MapPosition { return MercatorProjection.toLongitude(x); } + public void setByBoundingBox(BoundingBox bbox, int viewWidth, int viewHeight) { + double minx = MercatorProjection.longitudeToX(bbox.getMinLongitude()); + double miny = MercatorProjection.latitudeToY(bbox.getMaxLatitude()); + + double dx = Math.abs(MercatorProjection.longitudeToX(bbox.getMaxLongitude()) - minx); + double dy = Math.abs(MercatorProjection.latitudeToY(bbox.getMinLatitude()) - miny); + double zx = viewWidth / (dx * Tile.SIZE); + double zy = viewHeight / (dy * Tile.SIZE); + + scale = Math.min(zx, zy); + x = minx + dx / 2; + y = miny + dy / 2; + angle = 0; + tilt = 0; + } + @Override public String toString() { StringBuilder builder = new StringBuilder();