diff --git a/src/org/oscim/renderer/overlays/TextOverlay.java b/src/org/oscim/renderer/overlays/TextOverlay.java
index 8ef05039..ee134889 100644
--- a/src/org/oscim/renderer/overlays/TextOverlay.java
+++ b/src/org/oscim/renderer/overlays/TextOverlay.java
@@ -60,7 +60,7 @@ import android.opengl.GLES20;
import android.os.SystemClock;
public class TextOverlay extends BasicOverlay {
-private final static String TAG = TextOverlay.class.getName();
+ private final static String TAG = TextOverlay.class.getName();
private final static float MIN_CAPTION_DIST = 5;
private final static float MIN_WAY_DIST = 3;
@@ -158,7 +158,6 @@ private final static String TAG = TextOverlay.class.getName();
}
}
-
// class ActiveTile {
// MapTile tile;
// int activeLabels;
@@ -217,7 +216,7 @@ private final static String TAG = TextOverlay.class.getName();
// remove Label l from mLabels and return l.next
private Label removeLabel(Label l) {
Label ret = (Label) l.next;
- mLabels = (Label)mPool.release(mLabels, l);
+ mLabels = (Label) mPool.release(mLabels, l);
return ret;
}
@@ -386,7 +385,6 @@ private final static String TAG = TextOverlay.class.getName();
int maxx = Tile.SIZE << (zoom - 1);
-
if (dbg != null)
addDebugLayers(dbg);
@@ -557,12 +555,18 @@ private final static String TAG = TextOverlay.class.getName();
l.text.fontHeight + MIN_CAPTION_DIST);
boolean overlaps = false;
- for (Label lp = mLabels; lp != null; lp = (Label) lp.next) {
+ for (Label lp = mLabels; lp != null;) {
if (l.bbox.overlaps(lp.bbox)) {
+ if (l.text.priority < lp.text.priority) {
+ lp = removeLabel(lp);
+ continue;
+ }
+
overlaps = true;
break;
}
+ lp = (Label) lp.next;
}
if (!overlaps) {
addLabel(l);
@@ -630,15 +634,15 @@ private final static String TAG = TextOverlay.class.getName();
} else {
if (ti.width > ti.length * scale) {
- ll = dbg.getLineLayer(1);
+ ll = dbg.getLineLayer(1);
overlaps = 3;
}
else if (overlaps == 1)
- ll = dbg.getLineLayer(0);
+ ll = dbg.getLineLayer(0);
else if (overlaps == 2)
- ll = dbg.getLineLayer(3);
+ ll = dbg.getLineLayer(3);
else
- ll = dbg.getLineLayer(2);
+ ll = dbg.getLineLayer(2);
}
float[] points = mDebugPoints;
float width = (ti.x2 - ti.x1) / 2f;
@@ -656,29 +660,29 @@ private final static String TAG = TextOverlay.class.getName();
private static void addDebugLayers(Layers dbg) {
dbg.clear();
- LineLayer ll = dbg.getLineLayer(0);
+ LineLayer ll = dbg.getLineLayer(0);
ll.line = new Line((Color.BLUE & 0xaaffffff), 1, Cap.BUTT);
ll.width = 2;
- ll = dbg.getLineLayer(3);
+ ll = dbg.getLineLayer(3);
ll.line = new Line((Color.YELLOW & 0xaaffffff), 1, Cap.BUTT);
ll.width = 2;
- ll = dbg.getLineLayer(1);
+ ll = dbg.getLineLayer(1);
ll.line = new Line((Color.RED & 0xaaffffff), 1, Cap.BUTT);
ll.width = 2;
- ll = dbg.getLineLayer(2);
+ ll = dbg.getLineLayer(2);
ll.line = new Line((Color.GREEN & 0xaaffffff), 1, Cap.BUTT);
ll.width = 2;
- ll = dbg.getLineLayer(4);
+ ll = dbg.getLineLayer(4);
ll.line = new Line((Color.CYAN & 0xaaffffff), 1, Cap.BUTT);
ll.width = 2;
- ll = dbg.getLineLayer(5);
+ ll = dbg.getLineLayer(5);
ll.line = new Line((Color.MAGENTA & 0xaaffffff), 1, Cap.BUTT);
ll.width = 2;
}
@Override
public synchronized void update(MapPosition curPos, boolean positionChanged,
- Matrices matrices) {
+ Matrices matrices) {
if (mNextLayer != null) {
// keep text layer, not recrating its canvas each time
diff --git a/src/org/oscim/theme/styles/default.xml b/src/org/oscim/theme/styles/default.xml
index 8cb47373..e75118b4 100644
--- a/src/org/oscim/theme/styles/default.xml
+++ b/src/org/oscim/theme/styles/default.xml
@@ -1060,27 +1060,27 @@
+ stroke="#ffffff" stroke-width="2.0" priority="4"/>
+ stroke="#ffffff" stroke-width="2.0" priority="3"/>
+ stroke="#ffffff" stroke-width="2.0" priority="1"/>
+ stroke="#ffffff" stroke-width="2.0" priority="2"/>
+ stroke="#ffffff" stroke-width="2.0" priority="1"/>
+ stroke="#ffffff" stroke-width="2.0" priority="0"/>
diff --git a/src/org/oscim/theme/styles/tronrender.xml b/src/org/oscim/theme/styles/tronrender.xml
index dc40fc7c..4e2e7ce1 100644
--- a/src/org/oscim/theme/styles/tronrender.xml
+++ b/src/org/oscim/theme/styles/tronrender.xml
@@ -6,112 +6,112 @@
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
-
-
+
+
@@ -120,116 +120,116 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
-
-
-
+
-
+
-
+
-
-
-
+
+
+
@@ -274,44 +274,44 @@
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
@@ -321,19 +321,19 @@
-
-
+
+
-
-
+
@@ -371,7 +371,7 @@
-
+
@@ -383,18 +383,18 @@
-
+
-
+
-
-
-
+
+
+
@@ -404,47 +404,47 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
@@ -469,28 +469,28 @@
-
+
-
-
+
-
-
+
@@ -499,13 +499,13 @@
-
+
-
-
+
+
@@ -550,28 +550,28 @@
-
+
-
+
-
+
-
+
-
+
-
+
@@ -586,21 +586,21 @@
-
+
-
+
-
+
-
+
@@ -612,71 +612,71 @@
-->
-
+
-
+
-
+
-
-
+
+
-
-
-
+
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
@@ -685,95 +685,95 @@
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
@@ -781,7 +781,7 @@
-
+
@@ -808,7 +808,7 @@
-
@@ -817,17 +817,17 @@
-
-
@@ -837,7 +837,7 @@
-
+
@@ -867,15 +867,15 @@
-
+
-
+
-
+
-
-
@@ -958,22 +958,22 @@
-
+
-
-
-
@@ -982,19 +982,19 @@
+ stroke="#000020" stroke-width="4.0" priority="2"/>
+ stroke="#ffffff" stroke-width="1.0" priority="1"/>
+ stroke="#002020" stroke-width="4.0" priority="1"/>
+ stroke="#000000" stroke-width="2.0" priority="0"/>
@@ -1003,12 +1003,12 @@
-
-