From 6bc24595daed39b8669709fc1daa8e10829e91ab Mon Sep 17 00:00:00 2001 From: Hannes Janetzek Date: Sun, 6 Oct 2013 21:09:00 +0200 Subject: [PATCH] place area text on polygon --- .../layers/tile/vector/VectorTileLoader.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java b/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java index 739c1c75..182daf90 100644 --- a/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java +++ b/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java @@ -327,11 +327,21 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac public void renderAreaText(Text text) { // TODO place somewhere on polygon String value = mElement.tags.getValue(text.textKey); - if (value == null) + if (value == null || value.length() == 0) return; - PointF p = mElement.getPoint(0); - mTile.addLabel(TextItem.pool.get().set(p.x, p.y, value, text)); + float x = 0; + float y = 0; + int n = mElement.index[0]; + + for (int i = 0; i < n;) { + x += mElement.points[i++]; + y += mElement.points[i++]; + } + x /= (n / 2); + y /= (n / 2); + + mTile.addLabel(TextItem.pool.get().set(x, y, value, text)); } @Override