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}
|
* Set {@link IRenderTheme} used by {@link TileLoader}
|
||||||
*/
|
*/
|
||||||
public void setRenderTheme(IRenderTheme theme) {
|
public void setRenderTheme(IRenderTheme theme) {
|
||||||
// wait for loaders to finish all current jobs to
|
/* wait for loaders to finish all current jobs to
|
||||||
// not change theme instance hold by loader instance
|
* not change theme instance hold by loader instance
|
||||||
// while running
|
* while running */
|
||||||
pauseLoaders(true);
|
pauseLoaders(true);
|
||||||
mTileManager.clearJobs();
|
mTileManager.clearJobs();
|
||||||
|
|
||||||
for (TileLoader l : mTileLoader)
|
mTheme = theme;
|
||||||
((VectorTileLoader) l).setRenderTheme(theme);
|
// for (TileLoader l : mTileLoader)
|
||||||
|
// ((VectorTileLoader) l).setRenderTheme(theme);
|
||||||
|
|
||||||
tileRenderer().setOverdrawColor(theme.getMapBackground());
|
tileRenderer().setOverdrawColor(theme.getMapBackground());
|
||||||
|
|
||||||
resumeLoaders();
|
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;
|
public static final byte STROKE_MAX_ZOOM = 17;
|
||||||
|
|
||||||
protected IRenderTheme renderTheme;
|
protected IRenderTheme renderTheme;
|
||||||
protected int renderLevels;
|
|
||||||
|
|
||||||
/** current TileDataSource used by this MapTileLoader */
|
/** current TileDataSource used by this MapTileLoader */
|
||||||
protected ITileDataSource mTileDataSource;
|
protected ITileDataSource mTileDataSource;
|
||||||
@ -77,10 +76,6 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac
|
|||||||
/** Line-scale-factor depending on zoom and latitude */
|
/** Line-scale-factor depending on zoom and latitude */
|
||||||
protected float mLineScale = 1.0f;
|
protected float mLineScale = 1.0f;
|
||||||
|
|
||||||
public void setRenderTheme(IRenderTheme theme) {
|
|
||||||
renderTheme = theme;
|
|
||||||
renderLevels = theme.getLevels();
|
|
||||||
}
|
|
||||||
private final VectorTileLayer mTileLayer;
|
private final VectorTileLayer mTileLayer;
|
||||||
|
|
||||||
public VectorTileLoader(VectorTileLayer tileLayer) {
|
public VectorTileLoader(VectorTileLayer tileLayer) {
|
||||||
@ -101,7 +96,7 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac
|
|||||||
log.error("no tile source is set");
|
log.error("no tile source is set");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
renderTheme = mTileLayer.getTheme();
|
||||||
if (renderTheme == null) {
|
if (renderTheme == null) {
|
||||||
log.error("no theme is set");
|
log.error("no theme is set");
|
||||||
return false;
|
return false;
|
||||||
@ -179,21 +174,18 @@ public class VectorTileLoader extends TileLoader implements IRenderTheme.Callbac
|
|||||||
if (isCanceled() || mTile.state(CANCEL))
|
if (isCanceled() || mTile.state(CANCEL))
|
||||||
throw new CancellationException();
|
throw new CancellationException();
|
||||||
|
|
||||||
|
TagSet tags = filterTags(element.tags);
|
||||||
|
if (tags == null)
|
||||||
|
return;
|
||||||
|
|
||||||
mElement = element;
|
mElement = element;
|
||||||
|
|
||||||
if (element.type == GeometryType.POINT) {
|
|
||||||
TagSet tags = filterTags(element.tags);
|
|
||||||
|
|
||||||
/* get and apply render instructions */
|
/* get and apply render instructions */
|
||||||
|
if (element.type == GeometryType.POINT) {
|
||||||
renderNode(renderTheme.matchElement(element.type, tags, mTile.zoomLevel));
|
renderNode(renderTheme.matchElement(element.type, tags, mTile.zoomLevel));
|
||||||
} else {
|
} else {
|
||||||
TagSet tags = filterTags(element.tags);
|
mCurLayer = getValidLayer(element.layer) * renderTheme.getLevels();
|
||||||
|
|
||||||
mCurLayer = getValidLayer(element.layer) * renderLevels;
|
|
||||||
|
|
||||||
/* get and apply render instructions */
|
|
||||||
renderWay(renderTheme.matchElement(element.type, tags, mTile.zoomLevel));
|
renderWay(renderTheme.matchElement(element.type, tags, mTile.zoomLevel));
|
||||||
|
|
||||||
}
|
}
|
||||||
clearState();
|
clearState();
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user