diff --git a/vtm/src/org/oscim/layers/tile/vector/VectorTileLayer.java b/vtm/src/org/oscim/layers/tile/vector/VectorTileLayer.java index 7eaa08f6..74b6b48d 100644 --- a/vtm/src/org/oscim/layers/tile/vector/VectorTileLayer.java +++ b/vtm/src/org/oscim/layers/tile/vector/VectorTileLayer.java @@ -98,19 +98,24 @@ public class VectorTileLayer extends TileLayer { * Set {@link IRenderTheme} used by {@link TileLoader} */ public void setRenderTheme(IRenderTheme theme) { - // wait for loaders to finish all current jobs to - // not change theme instance hold by loader instance - // while running + /* wait for loaders to finish all current jobs to + * not change theme instance hold by loader instance + * while running */ pauseLoaders(true); mTileManager.clearJobs(); - for (TileLoader l : mTileLoader) - ((VectorTileLoader) l).setRenderTheme(theme); + mTheme = theme; + // for (TileLoader l : mTileLoader) + // ((VectorTileLoader) l).setRenderTheme(theme); tileRenderer().setOverdrawColor(theme.getMapBackground()); resumeLoaders(); } + private IRenderTheme mTheme; + + public IRenderTheme getTheme() { + return mTheme; } } diff --git a/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java b/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java index 957cd00c..12c39e0d 100644 --- a/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java +++ b/vtm/src/org/oscim/layers/tile/vector/VectorTileLoader.java @@ -60,7 +60,6 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac public static final byte STROKE_MAX_ZOOM = 17; protected IRenderTheme renderTheme; - protected int renderLevels; /** current TileDataSource used by this MapTileLoader */ protected ITileDataSource mTileDataSource; @@ -77,10 +76,6 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac /** Line-scale-factor depending on zoom and latitude */ protected float mLineScale = 1.0f; - public void setRenderTheme(IRenderTheme theme) { - renderTheme = theme; - renderLevels = theme.getLevels(); - } private final VectorTileLayer mTileLayer; public VectorTileLoader(VectorTileLayer tileLayer) { @@ -101,7 +96,7 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac log.error("no tile source is set"); return false; } - + renderTheme = mTileLayer.getTheme(); if (renderTheme == null) { log.error("no theme is set"); return false; @@ -179,21 +174,18 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac if (isCanceled() || mTile.state(CANCEL)) throw new CancellationException(); + TagSet tags = filterTags(element.tags); + if (tags == null) + return; + mElement = element; + /* get and apply render instructions */ if (element.type == GeometryType.POINT) { - TagSet tags = filterTags(element.tags); - - /* get and apply render instructions */ renderNode(renderTheme.matchElement(element.type, tags, mTile.zoomLevel)); } else { - TagSet tags = filterTags(element.tags); - - mCurLayer = getValidLayer(element.layer) * renderLevels; - - /* get and apply render instructions */ + mCurLayer = getValidLayer(element.layer) * renderTheme.getLevels(); renderWay(renderTheme.matchElement(element.type, tags, mTile.zoomLevel)); - } clearState(); }