diff --git a/src/org/oscim/renderer/BaseMap.java b/src/org/oscim/renderer/BaseMap.java
index 98bfd458..54199d3f 100644
--- a/src/org/oscim/renderer/BaseMap.java
+++ b/src/org/oscim/renderer/BaseMap.java
@@ -25,19 +25,23 @@ import org.oscim.utils.GlUtils;
import android.opengl.GLES20;
import android.opengl.Matrix;
+import android.util.Log;
/**
* @author Hannes Janetzek
*/
public class BaseMap {
- //private final static String TAG = BaseMap.class.getName();
+ private final static String TAG = BaseMap.class.getName();
+
+ private static float[] mMVPMatrix = new float[16];
+ private static float[] mVPMatrix = new float[16];
+ private static float[] mfProjMatrix = new float[16];
+
+ // used to increase polygon-offset for each tile drawn.
+ private static int mDrawCnt;
// used to not draw a tile twice per frame.
private static int mDrawSerial = 0;
- private static float[] mMVPMatrix = new float[16];
-
- private static float[] mVPMatrix = new float[16];
- private static float[] mfProjMatrix = new float[16];
static void setProjection(float[] projMatrix) {
System.arraycopy(projMatrix, 0, mfProjMatrix, 0, 16);
@@ -46,43 +50,45 @@ public class BaseMap {
mfProjMatrix[14] = 0;
}
- private static int mDrawCnt;
-
static void draw(MapTile[] tiles, int tileCnt, MapPosition pos) {
- //long start = SystemClock.uptimeMillis();
- Matrix.multiplyMM(mVPMatrix, 0, mfProjMatrix, 0, pos.viewMatrix, 0);
mDrawCnt = 0;
+ Matrix.multiplyMM(mVPMatrix, 0, mfProjMatrix, 0, pos.viewMatrix, 0);
+
GLES20.glDepthFunc(GLES20.GL_LESS);
+
+ // load texture for line caps
LineRenderer.beginLines();
+ // Draw visible tiles
for (int i = 0; i < tileCnt; i++) {
MapTile t = tiles[i];
if (t.isVisible && t.state == STATE_READY)
drawTile(t, pos);
}
- // proxies are clipped to the region where nothing was drawn to depth buffer.
- // draw child or parent proxies.
- // TODO draw proxies for placeholder...
+ // Draw parent or children as proxy for visibile tiles that dont
+ // have data yet. Proxies are clipped to the region where nothing
+ // was drawn to depth buffer.
+ // TODO draw proxies for placeholder
for (int i = 0; i < tileCnt; i++) {
MapTile t = tiles[i];
if (t.isVisible && (t.state != STATE_READY) && (t.holder == null))
drawProxyTile(t, pos, true);
}
- // draw grandparents
+ // Draw grandparents
for (int i = 0; i < tileCnt; i++) {
MapTile t = tiles[i];
if (t.isVisible && (t.state != STATE_READY) && (t.holder == null))
drawProxyTile(t, pos, false);
}
- LineRenderer.endLines();
- glStencilMask(0x0);
+ // make sure stencil buffer write is disabled
+ glStencilMask(0x00);
+
+ LineRenderer.endLines();
- //long end = SystemClock.uptimeMillis();
- //Log.d(TAG, "base took " + (end - start));
mDrawSerial++;
}
@@ -93,23 +99,24 @@ public class BaseMap {
tile.lastDraw = mDrawSerial;
- float[] mvp = mMVPMatrix;
-
- //setMatrix(mvp, tile, div, pos);
-
MapTile t = tile;
if (t.holder != null)
t = t.holder;
if (t.layers == null || t.vbo == null) {
- //Log.d(TAG, "missing data " + (t.layers == null) + " " + (t.vbo == null));
+ Log.d(TAG, "missing data " + (t.layers == null) + " " + (t.vbo == null));
return;
}
- // set Model matrix for tile
+
+ GLES20.glBindBuffer(GL_ARRAY_BUFFER, t.vbo.id);
+
+ // place tile relative to map position
float div = FastMath.pow(tile.zoomLevel - pos.zoomLevel);
float x = (float) (tile.pixelX - pos.x * div);
float y = (float) (tile.pixelY - pos.y * div);
float scale = pos.scale / div;
+
+ float[] mvp = mMVPMatrix;
GlUtils.setTileMatrix(mvp, x, y, scale);
// add view-projection matrix
@@ -120,12 +127,11 @@ public class BaseMap {
if (mDrawCnt > 20)
mDrawCnt = 0;
- GLES20.glBindBuffer(GL_ARRAY_BUFFER, t.vbo.id);
-
- boolean clipped = false;
// simple line shader does not take forward shortening into account
int simpleShader = (pos.tilt < 1 ? 1 : 0);
+ boolean clipped = false;
+
for (Layer l = t.layers.layers; l != null;) {
switch (l.type) {
case Layer.POLYGON:
diff --git a/src/org/oscim/renderer/BufferObject.java b/src/org/oscim/renderer/BufferObject.java
index 91d5ef77..1729478b 100644
--- a/src/org/oscim/renderer/BufferObject.java
+++ b/src/org/oscim/renderer/BufferObject.java
@@ -48,7 +48,6 @@ public final class BufferObject {
prev.next = bo.next;
bo.next = null;
- //Log.d(TAG, "requested: " + size + " got " + bo.size);
return bo;
}
prev = bo;
diff --git a/src/org/oscim/renderer/LineRenderer.java b/src/org/oscim/renderer/LineRenderer.java
index 484effd0..365d987b 100644
--- a/src/org/oscim/renderer/LineRenderer.java
+++ b/src/org/oscim/renderer/LineRenderer.java
@@ -42,12 +42,10 @@ public final class LineRenderer {
private final static String TAG = "LineRenderer";
private static final int LINE_VERTICES_DATA_POS_OFFSET = 0;
- //private static final int LINE_VERTICES_DATA_TEX_OFFSET = 4;
// shader handles
private static int[] lineProgram = new int[2];
private static int[] hLineVertexPosition = new int[2];
- //private static int[] hLineTexturePosition = new int[2];
private static int[] hLineColor = new int[2];
private static int[] hLineMatrix = new int[2];
private static int[] hLineScale = new int[2];
@@ -77,7 +75,6 @@ public final class LineRenderer {
hLineColor[i] = glGetUniformLocation(lineProgram[i], "u_color");
hLineMode[i] = glGetUniformLocation(lineProgram[i], "u_mode");
hLineVertexPosition[i] = glGetAttribLocation(lineProgram[i], "a_pos");
- //hLineTexturePosition[i] = glGetAttribLocation(lineProgram[i], "a_st");
}
// create lookup table as texture for 'length(0..1,0..1)'
diff --git a/src/org/oscim/renderer/MapTile.java b/src/org/oscim/renderer/MapTile.java
index 97894b36..37632f50 100644
--- a/src/org/oscim/renderer/MapTile.java
+++ b/src/org/oscim/renderer/MapTile.java
@@ -21,36 +21,27 @@ import org.oscim.renderer.layer.TextItem;
public final class MapTile extends JobTile {
/**
- * VBO layout: - 16 bytes fill coordinates, n bytes polygon vertices, m
- * bytes lines vertices
+ * VBO holds all vertex data to draw lines and polygons
+ * layout:
+ * 16 bytes fill coordinates,
+ * n bytes polygon vertices,
+ * m bytes lines vertices
*/
BufferObject vbo;
- // TextTexture texture;
-
/**
- * Tile data set by TileGenerator:
+ * Tile data set by TileGenerator.
*/
public TextItem labels;
public Layers layers;
/**
- * tile has new data to upload to gl
- */
- //boolean newData;
-
- /**
- * tile is loaded and ready for drawing.
- */
- //boolean isReady;
-
- /**
- * tile is in view region.
+ * Tile is in view region. Set by GLRenderer.
*/
public boolean isVisible;
/**
- * pointer to access relatives in QuadTree
+ * Pointer to access relatives in QuadTree
*/
public QuadTree rel;
@@ -68,18 +59,20 @@ public final class MapTile extends JobTile {
public byte proxies;
// check which labels were joined
- public final static int JOIN_T = 1 << 0;
- public final static int JOIN_B = 1 << 1;
- public final static int JOIN_L = 1 << 2;
- public final static int JOIN_R = 1 << 3;
- public final static int JOINED = 15;
- public byte joined;
+ // public final static int JOIN_T = 1 << 0;
+ // public final static int JOIN_B = 1 << 1;
+ // public final static int JOIN_L = 1 << 2;
+ // public final static int JOIN_R = 1 << 3;
+ // public final static int JOINED = 15;
+ // public byte joined;
// counting the tiles that use this tile as proxy
byte refs;
+
+ // up to 255 Threads may lock a tile
byte locked;
- // used when this tile sits in fo another tile.
+ // only used GLRenderer when this tile sits in for another tile.
// e.g. x:-1,y:0,z:1 for x:1,y:0
MapTile holder;
diff --git a/src/org/oscim/renderer/PolygonRenderer.java b/src/org/oscim/renderer/PolygonRenderer.java
index 8552f612..c26d1f02 100644
--- a/src/org/oscim/renderer/PolygonRenderer.java
+++ b/src/org/oscim/renderer/PolygonRenderer.java
@@ -45,7 +45,7 @@ import org.oscim.utils.GlUtils;
import android.opengl.GLES20;
public final class PolygonRenderer {
- private static final String TAG = PolygonRenderer.class.getName();
+ //private static final String TAG = PolygonRenderer.class.getName();
private static final int POLYGON_VERTICES_DATA_POS_OFFSET = 0;
private static final int STENCIL_BITS = 8;
@@ -374,31 +374,6 @@ public final class PolygonRenderer {
+ " gl_FragColor = u_color;"
+ "}";
- private final static String polygonTexVertexShader = ""
- + "precision mediump float;"
- + "uniform mat4 u_mvp;"
- + "attribute vec4 a_pos;"
- + "varying vec2 v_st;"
- + "void main() {"
- + " if(gl_VertexID == 0)"
- + " v_st = vec2(0.0,0.0);"
- + " else if(gl_VertexID == 1)"
- + " v_st = vec2(1.0,0.0);"
- + " else if(gl_VertexID == 2)"
- + " v_st = vec2(1.0,1.0);"
- + " else if(gl_VertexID == 3)"
- + " v_st = vec2(0.0,1.0);"
- + " gl_Position = u_mvp * a_pos;"
- + "}";
- private final static String polygonTexFragmentShader = ""
- + "precision mediump float;"
- + "uniform vec4 u_color;"
- + "uniform sampler2D tex;"
- + "varying vec2 v_st;"
- + "void main() {"
- + " gl_FragColor = u_color * texture2D(tex, v_st);"
- + "}";
-
private final static String polygonVertexShaderZ = ""
+ "precision highp float;"
+ "uniform mat4 u_mvp;"
@@ -422,4 +397,29 @@ public final class PolygonRenderer {
+ "else"
+ " gl_FragColor = vec4(0.0, z - 1.0, 0.0, 1.0)*0.8;"
+ "}";
+
+ // private final static String polygonTexVertexShader = ""
+ // + "precision mediump float;"
+ // + "uniform mat4 u_mvp;"
+ // + "attribute vec4 a_pos;"
+ // + "varying vec2 v_st;"
+ // + "void main() {"
+ // + " if(gl_VertexID == 0)"
+ // + " v_st = vec2(0.0,0.0);"
+ // + " else if(gl_VertexID == 1)"
+ // + " v_st = vec2(1.0,0.0);"
+ // + " else if(gl_VertexID == 2)"
+ // + " v_st = vec2(1.0,1.0);"
+ // + " else if(gl_VertexID == 3)"
+ // + " v_st = vec2(0.0,1.0);"
+ // + " gl_Position = u_mvp * a_pos;"
+ // + "}";
+ // private final static String polygonTexFragmentShader = ""
+ // + "precision mediump float;"
+ // + "uniform vec4 u_color;"
+ // + "uniform sampler2D tex;"
+ // + "varying vec2 v_st;"
+ // + "void main() {"
+ // + " gl_FragColor = u_color * texture2D(tex, v_st);"
+ // + "}";
}
diff --git a/src/org/oscim/renderer/QuadTree.java b/src/org/oscim/renderer/QuadTree.java
index 7f9ee4e8..a3cf0ca3 100644
--- a/src/org/oscim/renderer/QuadTree.java
+++ b/src/org/oscim/renderer/QuadTree.java
@@ -17,7 +17,7 @@ package org.oscim.renderer;
import android.util.Log;
public class QuadTree {
- private static String TAG = "QuadTree";
+ private static String TAG = QuadTree.class.getName();
// pointer to tile 0/0/0
private static QuadTree root;
@@ -45,7 +45,7 @@ public class QuadTree {
static boolean remove(MapTile t) {
if (t.rel == null) {
// Bad Things(tm) happened
- Log.d(TAG, "already removed " + t);
+ Log.d(TAG, "BUG already removed " + t);
return true;
}
diff --git a/src/org/oscim/renderer/Shaders.java b/src/org/oscim/renderer/Shaders.java
deleted file mode 100644
index bb40cdb0..00000000
--- a/src/org/oscim/renderer/Shaders.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Copyright 2012 Hannes Janetzek
- *
- * This program is free software: you can redistribute it and/or modify it under the
- * terms of the GNU Lesser General License as published by the Free Software
- * Foundation, either version 3 of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General License for more details.
- *
- * You should have received a copy of the GNU Lesser General License along with
- * this program. If not, see .
- */
-
-package org.oscim.renderer;
-
-public final class Shaders {
-
- // final static String lineVertexZigZagShader = ""
- // + "precision mediump float;"
- // + "uniform mat4 mvp;"
- // + "attribute vec4 a_pos1;"
- // + "attribute vec2 a_st1;"
- // + "attribute vec4 a_pos2;"
- // + "attribute vec2 a_st2;"
- // + "varying vec2 v_st;"
- // + "uniform vec2 u_mode;"
- // + "const float dscale = 1.0/1000.0;"
- // + "void main() {"
- // + "if (gl_VertexID & 1 == 0) {"
- // + " vec2 dir = dscale * u_mode[1] * a_pos1.zw;"
- // + " gl_Position = mvp * vec4(a_pos1.xy + dir, 0.0,1.0);"
- // + " v_st = u_mode[1] * a_st1;"
- // + "} else {"
- // + " vec2 dir = dscale * u_mode[1] * a_pos2.zw;"
- // + " gl_Position = mvp * vec4( a_pos1.xy, dir, 0.0,1.0);"
- // + " v_st = u_mode[1] * vec2(-a_st2.s , a_st2.t);"
- // + "}";
-
- // final static String lineVertexShader = ""
- // + "precision mediump float;"
- // + "uniform mat4 mvp;"
- // + "attribute vec4 a_position;"
- // + "attribute vec2 a_st;"
- // + "varying vec2 v_st;"
- // + "uniform float u_width;"
- // + "const float dscale = 8.0/1000.0;"
- // + "void main() {"
- // + " vec2 dir = dscale * u_width * a_position.zw;"
- // + " gl_Position = mvp * vec4(a_position.xy + dir, 0.0,1.0);"
- // + " v_st = u_width * a_st;"
- // + "}";
- // final static String lineFragmentShader = ""
- // + "#extension GL_OES_standard_derivatives : enable\n"
- // + "precision mediump float;"
- // + "uniform float u_wscale;"
- // + "uniform float u_width;"
- // + "uniform int u_mode;"
- // + "uniform vec4 u_color;"
- // + "varying vec2 v_st;"
- // + "void main() {"
- // + " gl_FragColor = u_color * 0.5;"
- // + "}";
-
- // final static String buildingVertexShader = ""
- // + "precision mediump float;"
- // + "uniform mat4 u_mvp;"
- // + "uniform vec4 u_color;"
- // + "uniform int u_mode;"
- // + "uniform float u_scale;"
- // + "attribute vec4 a_position;"
- // + "attribute float a_light;"
- // + "varying vec4 color;"
- // + "const float ff = 256.0;"
- // + "const float ffff = 65536.0;"
- // + "void main() {"
- // + " gl_Position = u_mvp * vec4(a_position.xy, a_position.z/u_scale, 1.0);"
- // + " if (u_mode == 0)"
- // // roof / depth pass
- // + " color = u_color;"
- // + " else if (u_mode == 1)"
- // // sides 1 - use 0xff00
- // + " color = vec4(u_color.rgb * (a_light / ffff), 0.9);"
- // + " else"
- // // sides 2 - use 0x00ff
- // + " color = vec4(u_color.rgb * fract(a_light/ff), 0.9);"
- // + "}";
-
-}
diff --git a/src/org/oscim/renderer/TextureObject.java b/src/org/oscim/renderer/TextureObject.java
index fd5c1919..928ebcd2 100644
--- a/src/org/oscim/renderer/TextureObject.java
+++ b/src/org/oscim/renderer/TextureObject.java
@@ -23,25 +23,32 @@ import android.opengl.GLUtils;
import android.util.Log;
public class TextureObject {
+ private final static String TAG = TextureObject.class.getName();
+
private static TextureObject pool;
+ private static int poolCount;
private static ArrayList mBitmaps;
- // shared bitmap and canvas for default texture size
public final static int TEXTURE_WIDTH = 256;
public final static int TEXTURE_HEIGHT = 256;
private static int mBitmapFormat;
private static int mBitmapType;
- private static int objectCount = 10;
+ /**
+ * Get a TextureObject with Bitmap to draw to.
+ * 'uploadTexture()' uploads the Bitmap as texture.
+ *
+ * @return obtained TextureObject
+ */
public static synchronized TextureObject get() {
TextureObject to;
if (pool == null) {
- objectCount += 1;
+ poolCount += 1;
if (TextureRenderer.debug)
- Log.d("...", "textures: " + objectCount);
+ Log.d(TAG, "textures: " + poolCount);
pool = new TextureObject(-1);
}
@@ -54,7 +61,7 @@ public class TextureObject {
to.bitmap.eraseColor(Color.TRANSPARENT);
if (TextureRenderer.debug)
- Log.d("...", "get texture " + to.id + " " + to.bitmap);
+ Log.d(TAG, "get texture " + to.id + " " + to.bitmap);
return to;
}
@@ -62,7 +69,7 @@ public class TextureObject {
public static synchronized void release(TextureObject to) {
while (to != null) {
if (TextureRenderer.debug)
- Log.d("...", "release texture " + to.id);
+ Log.d(TAG, "release texture " + to.id);
TextureObject next = to.next;
@@ -78,9 +85,14 @@ public class TextureObject {
}
}
+ /**
+ * This function may only be used in GLRenderer Thread.
+ *
+ * @param to the TextureObjet to compile and upload
+ */
public static synchronized void uploadTexture(TextureObject to) {
if (TextureRenderer.debug)
- Log.d("...", "upload texture " + to.id);
+ Log.d(TAG, "upload texture " + to.id);
if (to.id < 0) {
int[] textureIds = new int[1];
@@ -88,7 +100,7 @@ public class TextureObject {
to.id = textureIds[0];
initTexture(to.id);
if (TextureRenderer.debug)
- Log.d("...", "new texture " + to.id);
+ Log.d(TAG, "new texture " + to.id);
}
uploadTexture(to, to.bitmap, mBitmapFormat, mBitmapType,
@@ -102,7 +114,7 @@ public class TextureObject {
int format, int type, int w, int h) {
if (to == null) {
- Log.d("...", "no texture!");
+ Log.d(TAG, "no texture!");
return;
}
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D, to.id);
@@ -130,15 +142,14 @@ public class TextureObject {
static void init(int num) {
pool = null;
-
- TextureObject to;
+ poolCount = num;
int[] textureIds = new int[num];
GLES20.glGenTextures(num, textureIds, 0);
for (int i = 1; i < num; i++) {
initTexture(textureIds[i]);
- to = new TextureObject(textureIds[i]);
+ TextureObject to = new TextureObject(textureIds[i]);
to.next = pool;
pool = to;
@@ -147,7 +158,8 @@ public class TextureObject {
mBitmaps = new ArrayList(10);
for (int i = 0; i < 4; i++) {
- Bitmap bitmap = Bitmap.createBitmap(TEXTURE_WIDTH, TEXTURE_HEIGHT,
+ Bitmap bitmap = Bitmap.createBitmap(
+ TEXTURE_WIDTH, TEXTURE_HEIGHT,
Bitmap.Config.ARGB_8888);
mBitmaps.add(bitmap);
@@ -160,30 +172,31 @@ public class TextureObject {
private static Bitmap getBitmap() {
int size = mBitmaps.size();
if (size == 0) {
- for (int i = 0; i < 4; i++) {
- Bitmap bitmap = Bitmap.createBitmap(TEXTURE_WIDTH, TEXTURE_HEIGHT,
- Bitmap.Config.ARGB_8888);
+ Bitmap bitmap = Bitmap.createBitmap(
+ TEXTURE_WIDTH, TEXTURE_HEIGHT,
+ Bitmap.Config.ARGB_8888);
- mBitmaps.add(bitmap);
- }
- size = 4;
+ return bitmap;
}
return mBitmaps.remove(size - 1);
}
+ // -----------------------
public TextureObject next;
- public Bitmap bitmap;
-
+ // texture ID
int id;
+
int width;
int height;
// vertex offset from which this texture is referenced
- // or store texture id with vertex?
public short offset;
public short vertices;
+ // temporary Bitmap
+ public Bitmap bitmap;
+
TextureObject(int id) {
this.id = id;
}
diff --git a/src/org/oscim/renderer/layer/VertexPool.java b/src/org/oscim/renderer/layer/VertexPool.java
index c66cfd68..4258f9ca 100644
--- a/src/org/oscim/renderer/layer/VertexPool.java
+++ b/src/org/oscim/renderer/layer/VertexPool.java
@@ -17,7 +17,7 @@ package org.oscim.renderer.layer;
import android.util.Log;
public class VertexPool {
- private static final int POOL_LIMIT = 6000;
+ private static final int POOL_LIMIT = 5000;
static private VertexPoolItem pool = null;
static private int count = 0;
@@ -41,7 +41,7 @@ public class VertexPool {
public static synchronized VertexPoolItem get() {
if (pool == null && count > 0) {
- Log.d("VertexPool", "XXX wrong count: " + count);
+ Log.d("VertexPool", "BUG wrong count: " + count);
}
if (pool == null) {
countAll++;
@@ -56,7 +56,7 @@ public class VertexPool {
for (VertexPoolItem tmp = pool; tmp != null; tmp = tmp.next)
c++;
- Log.d("VertexPool", "XXX wrong count: " + count + " left" + c);
+ Log.d("VertexPool", "BUG wrong count: " + count + " left" + c);
return new VertexPoolItem();
}
@@ -67,16 +67,10 @@ public class VertexPool {
return it;
}
- // private static float load = 1.0f;
- // private static int loadCount = 0;
-
public static synchronized void release(VertexPoolItem items) {
if (items == null)
return;
- // int pall = countAll;
- // int pcnt = count;
-
// limit pool items
if (countAll < POOL_LIMIT) {
@@ -84,8 +78,6 @@ public class VertexPool {
while (true) {
count++;
- // load += (float) last.used / VertexPoolItem.SIZE;
- // loadCount++;
if (last.next == null)
break;
@@ -95,27 +87,17 @@ public class VertexPool {
last.next = pool;
pool = items;
- // Log.d("Pool", "added: " + (count - pcnt) + " " + count + " " +
- // countAll
- // + " load: " + (load / loadCount));
} else {
- // int cleared = 0;
VertexPoolItem prev, tmp = items;
while (tmp != null) {
prev = tmp;
tmp = tmp.next;
countAll--;
-
- // load += (float) prev.used / VertexPoolItem.SIZE;
- // loadCount++;
-
prev.next = null;
}
- // Log.d("Pool", "dropped: " + (pall - countAll) + " " + count + " "
- // + countAll + " load: " + (load / loadCount));
}
}
}
diff --git a/src/org/oscim/utils/Point.java b/src/org/oscim/utils/Point.java
index 228e1ce3..5ee846bb 100644
--- a/src/org/oscim/utils/Point.java
+++ b/src/org/oscim/utils/Point.java
@@ -21,11 +21,18 @@ public class Point {
public float x;
public float y;
+ public Point() {
+ }
+
Point(float x, float y) {
this.x = x;
this.y = y;
}
- Point() {
+ public void set(float x, float y) {
+ this.x = x;
+ this.y = y;
+
}
+
}
diff --git a/src/org/oscim/view/MapViewPosition.java b/src/org/oscim/view/MapViewPosition.java
index b48557d2..c75ef901 100644
--- a/src/org/oscim/view/MapViewPosition.java
+++ b/src/org/oscim/view/MapViewPosition.java
@@ -43,7 +43,7 @@ import android.util.Log;
public class MapViewPosition {
- private static final String TAG = MapViewPosition.class.getSimpleName();
+ private static final String TAG = MapViewPosition.class.getName();
public final static int MAX_ZOOMLEVEL = 17;
public final static int MIN_ZOOMLEVEL = 2;
@@ -315,7 +315,7 @@ public class MapViewPosition {
out.x = (int) (mPosX + mu[0] / mScale);
out.y = (int) (mPosY + mu[1] / mScale);
- Log.d(">>>", "getScreenPointOnMap " + reuse);
+ //Log.d(TAG, "getScreenPointOnMap " + reuse);
return out;
}
@@ -340,7 +340,7 @@ public class MapViewPosition {
MercatorProjection.pixelYToLatitude(dy, mZoomLevel),
MercatorProjection.pixelXToLongitude(dx, mZoomLevel));
- Log.d(">>>", "fromScreenPixels " + p);
+ //Log.d(TAG, "fromScreenPixels " + p);
return p;
}
@@ -550,6 +550,7 @@ public class MapViewPosition {
*/
public synchronized void rotateMap(float angle, float cx, float cy) {
moveMap(cx, cy);
+
mRotation += angle;
updateMatrix();