diff --git a/src/org/oscim/core/MapPosition.java b/src/org/oscim/core/MapPosition.java index 5e169135..32b70ede 100644 --- a/src/org/oscim/core/MapPosition.java +++ b/src/org/oscim/core/MapPosition.java @@ -15,7 +15,6 @@ */ package org.oscim.core; - /** A MapPosition Container. */ public class MapPosition { @@ -70,6 +69,16 @@ public class MapPosition { this.y = MercatorProjection.latitudeToPixelY(latitude, zoomLevel); } + public void copy(MapPosition other) { + this.zoomLevel = other.zoomLevel; + this.scale = other.scale; + this.lat = other.lat; + this.lon = other.lon; + this.angle = other.angle; + this.x = other.x; + this.y = other.y; + } + @Override public String toString() { StringBuilder builder = new StringBuilder(); diff --git a/src/org/oscim/overlay/PathOverlay.java b/src/org/oscim/overlay/PathOverlay.java index 9dd0f880..9d462257 100644 --- a/src/org/oscim/overlay/PathOverlay.java +++ b/src/org/oscim/overlay/PathOverlay.java @@ -109,7 +109,7 @@ public class PathOverlay extends Overlay { int size = mSize; // keep position to render relative to current state - updateMapPosition(); + mMapPosition.copy(curPos); // items are placed relative to scale == 1 mMapPosition.scale = 1; diff --git a/src/org/oscim/renderer/overlays/CustomOverlay.java b/src/org/oscim/renderer/overlays/CustomOverlay.java index 2b57c0a6..a3093064 100644 --- a/src/org/oscim/renderer/overlays/CustomOverlay.java +++ b/src/org/oscim/renderer/overlays/CustomOverlay.java @@ -65,7 +65,7 @@ public class CustomOverlay extends RenderOverlay { newData = true; // fix current MapPosition - updateMapPosition(); + mMapPosition.copy(curPos); } } diff --git a/src/org/oscim/renderer/overlays/GridOverlay.java b/src/org/oscim/renderer/overlays/GridOverlay.java index 217a7542..441568d8 100644 --- a/src/org/oscim/renderer/overlays/GridOverlay.java +++ b/src/org/oscim/renderer/overlays/GridOverlay.java @@ -108,7 +108,7 @@ public class GridOverlay extends BasicOverlay { public synchronized void update(MapPosition curPos, boolean positionChanged, boolean tilesChanged, Matrices matrices) { - updateMapPosition(); + mMapPosition.copy(curPos); // fix map position to tile coordinates float size = Tile.TILE_SIZE; diff --git a/src/org/oscim/renderer/overlays/RenderOverlay.java b/src/org/oscim/renderer/overlays/RenderOverlay.java index fffbcf55..f27a65b2 100644 --- a/src/org/oscim/renderer/overlays/RenderOverlay.java +++ b/src/org/oscim/renderer/overlays/RenderOverlay.java @@ -117,12 +117,12 @@ public abstract class RenderOverlay { setMatrix(curPos, m, true); } - /** - * Utility: update mMapPosition - * - * @return true if position has changed - */ - protected boolean updateMapPosition() { - return mMapView.getMapViewPosition().getMapPosition(mMapPosition); - } +// /** +// * Utility: update mMapPosition +// * +// * @return true if position has changed +// */ +// protected boolean updateMapPosition() { +// return mMapView.getMapViewPosition().getMapPosition(mMapPosition); +// } } diff --git a/src/org/oscim/renderer/overlays/TestOverlay.java b/src/org/oscim/renderer/overlays/TestOverlay.java index 94c5db8c..68f71478 100644 --- a/src/org/oscim/renderer/overlays/TestOverlay.java +++ b/src/org/oscim/renderer/overlays/TestOverlay.java @@ -125,11 +125,11 @@ public class TestOverlay extends BasicOverlay { public synchronized void update(MapPosition curPos, boolean positionChanged, boolean tilesChanged, Matrices matrices) { // keep position constant (or update layer relative to new position) - //mMapView.getMapViewPosition().getMapPosition(mMapPosition, null); + //mMapPosition.copy(curPos); if (first) { // fix at initial position - updateMapPosition(); + mMapPosition.copy(curPos); first = false; //((SymbolLayer) (layers.textureLayers)).prepare();