From 01b6a8acf4b34f32fbee01c04f2439ac479ce4c7 Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Tue, 30 Apr 2013 13:24:59 +0200 Subject: [PATCH] use theme priority(for tag group) also for node labels --- .../oscim/renderer/overlays/TextOverlay.java | 36 +- src/org/oscim/theme/styles/default.xml | 12 +- src/org/oscim/theme/styles/tronrender.xml | 452 +++++++++--------- 3 files changed, 252 insertions(+), 248 deletions(-) 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 @@ - -