protected Tile getTile(int tilex, int tiley, int zoom) {
int max = (1 << zoom);
if (tilex < 0 || tilex >= max || tiley < 0 || tiley >= max) {
return null;
}
Tile tile = tileCache.getTile(tileSource, tilex, tiley, zoom);
if (tile == null) {
tile = new Tile(tileSource, tilex, tiley, zoom);
tileCache.addTile(tile);
tile.loadPlaceholderFromCache(tileCache);
}
if (LOG.isTraceEnabled()) {
LOG.trace("Numero de intentos para " + tile.getKey() + ": "
+ tile.getNumIntentos());
}
if (!tile.isLoaded() && tile.getNumIntentos() < Tile.MAX_NUM_INTENTOS) {
jobDispatcher.addJob(tileLoader.createTileLoaderJob(tileSource,
tilex, tiley, zoom));
}
return tile;
}