API: allow changing number of TileLoader threads
This commit is contained in:
parent
9bd327cbe6
commit
37ffdadf1a
@ -82,8 +82,7 @@ public class TileRenderTest extends GdxMap {
|
||||
final VectorTileLoader[] tileLoader = { null };
|
||||
|
||||
VectorTileLayer l = new VectorTileLayer(mMap, tileManager,
|
||||
new VectorTileRenderer(), 1) {
|
||||
|
||||
new VectorTileRenderer()) {
|
||||
protected TileLoader createLoader() {
|
||||
tileLoader[0] = new VectorTileLoader(this) {
|
||||
|
||||
|
@ -24,10 +24,15 @@ import org.oscim.map.Map.UpdateListener;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/**
|
||||
* TODO - add a TileLayer.Builder
|
||||
*/
|
||||
public abstract class TileLayer extends Layer implements UpdateListener {
|
||||
|
||||
static final Logger log = LoggerFactory.getLogger(TileLayer.class);
|
||||
|
||||
private static final int NUM_LOADERS = 4;
|
||||
|
||||
/**
|
||||
* TileManager responsible for adding visible tiles
|
||||
* to load queue and managing in-memory tile cache.
|
||||
@ -60,11 +65,18 @@ public abstract class TileLayer extends Layer implements UpdateListener {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Override to set number of loader threads. Default is 4.
|
||||
*/
|
||||
protected int getNumLoaders() {
|
||||
return NUM_LOADERS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMapEvent(Event event, MapPosition mapPosition) {
|
||||
|
||||
if (event == Map.CLEAR_EVENT) {
|
||||
// sync with TileRenderer
|
||||
/* sync with TileRenderer */
|
||||
synchronized (mRenderer) {
|
||||
tileRenderer().clearTiles();
|
||||
mTileManager.init();
|
||||
|
@ -62,7 +62,7 @@ public class BitmapTileLayer extends TileLayer {
|
||||
new VectorTileRenderer());
|
||||
|
||||
mTileSource = tileSource;
|
||||
initLoader(4);
|
||||
initLoader(getNumLoaders());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -46,21 +46,21 @@ public class VectorTileLayer extends TileLayer {
|
||||
tileSource.getZoomLevelMin(),
|
||||
tileSource.getZoomLevelMax(),
|
||||
100),
|
||||
new VectorTileRenderer(), 2);
|
||||
new VectorTileRenderer());
|
||||
|
||||
setTileSource(tileSource);
|
||||
}
|
||||
|
||||
public VectorTileLayer(Map map, int minZoom, int maxZoom, int cacheLimit) {
|
||||
this(map, new TileManager(map, minZoom, maxZoom, cacheLimit),
|
||||
new VectorTileRenderer(), 4);
|
||||
new VectorTileRenderer());
|
||||
}
|
||||
|
||||
public VectorTileLayer(Map map, TileManager tileManager,
|
||||
VectorTileRenderer renderer, int numLoaders) {
|
||||
VectorTileRenderer renderer) {
|
||||
super(map, tileManager, renderer);
|
||||
|
||||
initLoader(numLoaders);
|
||||
initLoader(getNumLoaders());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
Loading…
x
Reference in New Issue
Block a user