本文整理汇总了Java中org.osmdroid.tileprovider.MapTileRequestState类的典型用法代码示例。如果您正苦于以下问题:Java MapTileRequestState类的具体用法?Java MapTileRequestState怎么用?Java MapTileRequestState使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
MapTileRequestState类属于org.osmdroid.tileprovider包,在下文中一共展示了MapTileRequestState类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: loadMapTileAsync
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
public void loadMapTileAsync(final MapTileRequestState pState) {
// Make sure we're not detached
if (mExecutor.isShutdown())
return;
synchronized (mQueueLockObject) {
if (Configuration.getInstance().isDebugTileProviders()) {
Log.d(IMapView.LOGTAG,"MapTileModuleProviderBase.loadMaptileAsync() on provider: "
+ getName() + " for tile: " + pState.getMapTile());
if (mPending.containsKey(pState.getMapTile()))
Log.d(IMapView.LOGTAG,"MapTileModuleProviderBase.loadMaptileAsync() tile already exists in request queue for modular provider. Moving to front of queue.");
else
Log.d(IMapView.LOGTAG,"MapTileModuleProviderBase.loadMaptileAsync() adding tile to request queue for modular provider.");
}
// this will put the tile in the queue, or move it to the front of
// the queue if it's already present
mPending.put(pState.getMapTile(), pState);
}
try {
mExecutor.execute(getTileLoader());
} catch (final RejectedExecutionException e) {
Log.w(IMapView.LOGTAG,"RejectedExecutionException", e);
}
}
示例2: mapTileRequestExpiredTile
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
@Override
public void mapTileRequestExpiredTile(MapTileRequestState aState, Drawable aDrawable) {
// Call through to the super first so aState.getCurrentProvider() still contains the proper
// provider.
super.mapTileRequestExpiredTile(aState, aDrawable);
// Continue through the provider chain
final MapTileModuleProviderBase nextProvider = findNextAppropriateProvider(aState);
if (nextProvider != null) {
nextProvider.loadMapTileAsync(aState);
} else {
//synchronized (mWorking) {
mWorking.remove(aState.getMapTile());
//}
}
}
示例3: findNextAppropriateProvider
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
/**
* We want to not use a provider that doesn't exist anymore in the chain, and we want to not use
* a provider that requires a data connection when one is not available.
*/
protected MapTileModuleProviderBase findNextAppropriateProvider(final MapTileRequestState aState) {
MapTileModuleProviderBase provider = null;
boolean providerDoesntExist = false, providerCantGetDataConnection = false, providerCantServiceZoomlevel = false;
// The logic of the while statement is
// "Keep looping until you get null, or a provider that still exists
// and has a data connection if it needs one and can service the zoom level,"
do {
provider = aState.getNextProvider();
// Perform some checks to see if we can use this provider
// If any of these are true, then that disqualifies the provider for this tile request.
if (provider != null) {
providerDoesntExist = !this.getProviderExists(provider);
providerCantGetDataConnection = !useDataConnection()
&& provider.getUsesDataConnection();
int zoomLevel = aState.getMapTile().getZoomLevel();
providerCantServiceZoomlevel = zoomLevel > provider.getMaximumZoomLevel()
|| zoomLevel < provider.getMinimumZoomLevel();
}
} while ((provider != null)
&& (providerDoesntExist || providerCantGetDataConnection || providerCantServiceZoomlevel));
return provider;
}
示例4: drawMapsforgeTile
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
private Drawable drawMapsforgeTile(final MapTileRequestState aState) {
if (tileSource_ == null) return null;
try {
final MapTile tile = aState.getMapTile();
return tileSource_.getDrawable(tile.getX(), tile.getY(), tile.getZoomLevel());
} catch (Exception e) {
return null;
}
}
示例5: loadTile
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
@Override
protected Drawable loadTile(MapTileRequestState req) throws CantContinueException {
InputStream inputStream;
try {
final String filePath = tileSource.getTileRelativeFilenameString(req.getMapTile());
inputStream = assetManager.open(filePath);
return new ExpirableBitmapDrawable(BitmapFactory.decodeStream(inputStream));
} catch (final IOException e) {
return null;
}
}
示例6: loadTile
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
@Override
public Drawable loadTile(final MapTileRequestState aState) throws CantContinueException
{
Drawable tile = drawMapsforgeTile(aState);
if(tile == null)
tile = downloadTile(aState);
return tile;
}
示例7: drawMapsforgeTile
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
private Drawable drawMapsforgeTile(final MapTileRequestState aState)
{
if(tileSource_ == null)
return null;
try {
final MapTile tile = aState.getMapTile();
return tileSource_.getDrawable(tile.getX(), tile.getY(), tile.getZoomLevel());
}
catch(Exception e) {
return null;
}
}
示例8: MapTileModuleProviderBase
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
public MapTileModuleProviderBase(int pThreadPoolSize, final int pPendingQueueSize) {
if (pPendingQueueSize < pThreadPoolSize) {
Log.w(IMapView.LOGTAG,"The pending queue size is smaller than the thread pool size. Automatically reducing the thread pool size.");
pThreadPoolSize = pPendingQueueSize;
}
mExecutor = Executors.newFixedThreadPool(pThreadPoolSize,
new ConfigurablePriorityThreadFactory(Thread.NORM_PRIORITY, getThreadGroupName()));
mWorking = new HashMap<MapTile, MapTileRequestState>();
mPending = new LinkedHashMap<MapTile, MapTileRequestState>(pPendingQueueSize + 2, 0.1f,
true) {
private static final long serialVersionUID = 6455337315681858866L;
@Override
protected boolean removeEldestEntry(
final Map.Entry<MapTile, MapTileRequestState> pEldest) {
if (size() > pPendingQueueSize) {
MapTile result = null;
// get the oldest tile that isn't in the mWorking queue
Iterator<MapTile> iterator = mPending.keySet().iterator();
while (result == null && iterator.hasNext()) {
final MapTile tile = iterator.next();
if (!mWorking.containsKey(tile)) {
result = tile;
}
}
if (result != null) {
MapTileRequestState state = mPending.get(result);
removeTileFromQueues(result);
state.getCallback().mapTileRequestFailedExceedsMaxQueueSize(state);
}
}
return false;
}
};
}
示例9: nextTile
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
protected MapTileRequestState nextTile() {
synchronized (mQueueLockObject) {
MapTile result = null;
// get the most recently accessed tile
// - the last item in the iterator that's not already being
// processed
Iterator<MapTile> iterator = mPending.keySet().iterator();
// TODO this iterates the whole list, make this faster...
while (iterator.hasNext()) {
final MapTile tile = iterator.next();
if (!mWorking.containsKey(tile)) {
if (Configuration.getInstance().isDebugTileProviders()) {
Log.d(IMapView.LOGTAG,"TileLoader.nextTile() on provider: " + getName()
+ " found tile in working queue: " + tile);
}
result = tile;
}
}
if (result != null) {
if (Configuration.getInstance().isDebugTileProviders()) {
Log.d(IMapView.LOGTAG,"TileLoader.nextTile() on provider: " + getName()
+ " adding tile to working queue: " + result);
}
mWorking.put(result, mPending.get(result));
}
return (result != null ? mPending.get(result) : null);
}
}
示例10: tileLoaded
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
/**
* A tile has loaded.
*/
protected void tileLoaded(final MapTileRequestState pState, final Drawable pDrawable) {
if (Configuration.getInstance().isDebugTileProviders()) {
Log.d(IMapView.LOGTAG,"TileLoader.tileLoaded() on provider: " + getName() + " with tile: "
+ pState.getMapTile());
}
removeTileFromQueues(pState.getMapTile());
ExpirableBitmapDrawable.setState(pDrawable, ExpirableBitmapDrawable.UP_TO_DATE);
pState.getCallback().mapTileRequestCompleted(pState, pDrawable);
}
示例11: tileLoadedExpired
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
/**
* A tile has loaded but it's expired.
* Return it <b>and</b> send request to next provider.
*/
protected void tileLoadedExpired(final MapTileRequestState pState, final Drawable pDrawable) {
if (Configuration.getInstance().isDebugTileProviders()) {
Log.d(IMapView.LOGTAG,"TileLoader.tileLoadedExpired() on provider: " + getName()
+ " with tile: " + pState.getMapTile());
}
removeTileFromQueues(pState.getMapTile());
ExpirableBitmapDrawable.setState(pDrawable, ExpirableBitmapDrawable.EXPIRED);
pState.getCallback().mapTileRequestExpiredTile(pState, pDrawable);
}
示例12: tileLoadedScaled
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
protected void tileLoadedScaled(final MapTileRequestState pState, final Drawable pDrawable) {
if (Configuration.getInstance().isDebugTileProviders()) {
Log.d(IMapView.LOGTAG,"TileLoader.tileLoadedScaled() on provider: " + getName()
+ " with tile: " + pState.getMapTile());
}
removeTileFromQueues(pState.getMapTile());
ExpirableBitmapDrawable.setState(pDrawable, ExpirableBitmapDrawable.SCALED);
pState.getCallback().mapTileRequestExpiredTile(pState, pDrawable);
}
示例13: tileLoadedFailed
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
protected void tileLoadedFailed(final MapTileRequestState pState) {
if (Configuration.getInstance().isDebugTileProviders()) {
Log.d(IMapView.LOGTAG,"TileLoader.tileLoadedFailed() on provider: " + getName()
+ " with tile: " + pState.getMapTile());
}
removeTileFromQueues(pState.getMapTile());
pState.getCallback().mapTileRequestFailed(pState);
}
示例14: tileLoaded
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
@Override
protected void tileLoaded(final MapTileRequestState pState, final Drawable pDrawable) {
removeTileFromQueues(pState.getMapTile());
// don't return the tile because we'll wait for the fs provider to ask for it
// this prevent flickering when a load of delayed downloads complete for tiles
// that we might not even be interested in any more
pState.getCallback().mapTileRequestCompleted(pState, null);
// We want to return the Bitmap to the BitmapPool if applicable
if (pDrawable instanceof ReusableBitmapDrawable)
BitmapPool.getInstance().returnDrawableToPool((ReusableBitmapDrawable) pDrawable);
}
示例15: test_put_twice
import org.osmdroid.tileprovider.MapTileRequestState; //导入依赖的package包/类
public void test_put_twice() {
final MapTile tile = new MapTile(1, 1, 1);
// request the same tile twice
final MapTileRequestState state = new MapTileRequestState(tile, new MapTileDownloader[] {},
mTileProviderCallback);
mTileProvider.loadMapTileAsync(state);
mTileProvider.loadMapTileAsync(state);
// check that is only one tile pending
assertEquals("One tile pending", 1, mTileProvider.mPending.size());
}