get theme from VectorTileLayer, instead of setting it on Loader
This commit is contained in:
parent
ff01b3f80d
commit
3eba47b0bb
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user