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 };
|
final VectorTileLoader[] tileLoader = { null };
|
||||||
|
|
||||||
VectorTileLayer l = new VectorTileLayer(mMap, tileManager,
|
VectorTileLayer l = new VectorTileLayer(mMap, tileManager,
|
||||||
new VectorTileRenderer(), 1) {
|
new VectorTileRenderer()) {
|
||||||
|
|
||||||
protected TileLoader createLoader() {
|
protected TileLoader createLoader() {
|
||||||
tileLoader[0] = new VectorTileLoader(this) {
|
tileLoader[0] = new VectorTileLoader(this) {
|
||||||
|
|
||||||
|
@ -24,10 +24,15 @@ import org.oscim.map.Map.UpdateListener;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO - add a TileLayer.Builder
|
||||||
|
*/
|
||||||
public abstract class TileLayer extends Layer implements UpdateListener {
|
public abstract class TileLayer extends Layer implements UpdateListener {
|
||||||
|
|
||||||
static final Logger log = LoggerFactory.getLogger(TileLayer.class);
|
static final Logger log = LoggerFactory.getLogger(TileLayer.class);
|
||||||
|
|
||||||
|
private static final int NUM_LOADERS = 4;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* TileManager responsible for adding visible tiles
|
* TileManager responsible for adding visible tiles
|
||||||
* to load queue and managing in-memory tile cache.
|
* 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
|
@Override
|
||||||
public void onMapEvent(Event event, MapPosition mapPosition) {
|
public void onMapEvent(Event event, MapPosition mapPosition) {
|
||||||
|
|
||||||
if (event == Map.CLEAR_EVENT) {
|
if (event == Map.CLEAR_EVENT) {
|
||||||
// sync with TileRenderer
|
/* sync with TileRenderer */
|
||||||
synchronized (mRenderer) {
|
synchronized (mRenderer) {
|
||||||
tileRenderer().clearTiles();
|
tileRenderer().clearTiles();
|
||||||
mTileManager.init();
|
mTileManager.init();
|
||||||
|
@ -62,7 +62,7 @@ public class BitmapTileLayer extends TileLayer {
|
|||||||
new VectorTileRenderer());
|
new VectorTileRenderer());
|
||||||
|
|
||||||
mTileSource = tileSource;
|
mTileSource = tileSource;
|
||||||
initLoader(4);
|
initLoader(getNumLoaders());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -46,21 +46,21 @@ public class VectorTileLayer extends TileLayer {
|
|||||||
tileSource.getZoomLevelMin(),
|
tileSource.getZoomLevelMin(),
|
||||||
tileSource.getZoomLevelMax(),
|
tileSource.getZoomLevelMax(),
|
||||||
100),
|
100),
|
||||||
new VectorTileRenderer(), 2);
|
new VectorTileRenderer());
|
||||||
|
|
||||||
setTileSource(tileSource);
|
setTileSource(tileSource);
|
||||||
}
|
}
|
||||||
|
|
||||||
public VectorTileLayer(Map map, int minZoom, int maxZoom, int cacheLimit) {
|
public VectorTileLayer(Map map, int minZoom, int maxZoom, int cacheLimit) {
|
||||||
this(map, new TileManager(map, minZoom, maxZoom, cacheLimit),
|
this(map, new TileManager(map, minZoom, maxZoom, cacheLimit),
|
||||||
new VectorTileRenderer(), 4);
|
new VectorTileRenderer());
|
||||||
}
|
}
|
||||||
|
|
||||||
public VectorTileLayer(Map map, TileManager tileManager,
|
public VectorTileLayer(Map map, TileManager tileManager,
|
||||||
VectorTileRenderer renderer, int numLoaders) {
|
VectorTileRenderer renderer) {
|
||||||
super(map, tileManager, renderer);
|
super(map, tileManager, renderer);
|
||||||
|
|
||||||
initLoader(numLoaders);
|
initLoader(getNumLoaders());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user