@Override public boolean supportsTile(Tile tile) { for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(tile)) { return true; } } return false; } }
boolean renderBitmap(RenderContext renderContext) { return !renderContext.renderTheme.hasMapBackgroundOutside() || this.mapDataStore.supportsTile(renderContext.rendererJob.tile); }
/** * Returns the timestamp of the data used to render a specific tile. * <p/> * If the tile uses data from multiple data stores, the most recent timestamp is returned. * * @param tile A tile. * @return the timestamp of the data used to render the tile */ @Override public long getDataTimestamp(Tile tile) { switch (this.dataPolicy) { case RETURN_FIRST: for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(tile)) { return mdb.getDataTimestamp(tile); } } return 0; case RETURN_ALL: case DEDUPLICATE: long result = 0; for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(tile)) { result = Math.max(result, mdb.getDataTimestamp(tile)); } } return result; } throw new IllegalStateException("Invalid data policy for multi map database"); }
@Override public MapReadResult readLabels(Tile tile) { switch (this.dataPolicy) { case RETURN_FIRST: for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(tile)) { return mdb.readLabels(tile); } } return null; case RETURN_ALL: return readLabels(tile, false); case DEDUPLICATE: return readLabels(tile, true); } throw new IllegalStateException("Invalid data policy for multi map database"); }
@Override public MapReadResult readPoiData(Tile upperLeft, Tile lowerRight) { switch (this.dataPolicy) { case RETURN_FIRST: for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(upperLeft)) { return mdb.readPoiData(upperLeft, lowerRight); } } return null; case RETURN_ALL: return readPoiData(upperLeft, lowerRight, false); case DEDUPLICATE: return readPoiData(upperLeft, lowerRight, true); } throw new IllegalStateException("Invalid data policy for multi map database"); }
@Override public MapReadResult readLabels(Tile upperLeft, Tile lowerRight) { switch (this.dataPolicy) { case RETURN_FIRST: for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(upperLeft)) { return mdb.readLabels(upperLeft, lowerRight); } } return null; case RETURN_ALL: return readLabels(upperLeft, lowerRight, false); case DEDUPLICATE: return readLabels(upperLeft, lowerRight, true); } throw new IllegalStateException("Invalid data policy for multi map database"); }
@Override public MapReadResult readMapData(Tile tile) { switch (this.dataPolicy) { case RETURN_FIRST: for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(tile)) { return mdb.readMapData(tile); } } return null; case RETURN_ALL: return readMapData(tile, false); case DEDUPLICATE: return readMapData(tile, true); } throw new IllegalStateException("Invalid data policy for multi map database"); }
@Override public MapReadResult readMapData(Tile upperLeft, Tile lowerRight) { switch (this.dataPolicy) { case RETURN_FIRST: for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(upperLeft)) { return mdb.readMapData(upperLeft, lowerRight); } } return null; case RETURN_ALL: return readMapData(upperLeft, lowerRight, false); case DEDUPLICATE: return readMapData(upperLeft, lowerRight, true); } throw new IllegalStateException("Invalid data policy for multi map database"); }
@Override public MapReadResult readPoiData(Tile tile) { switch (this.dataPolicy) { case RETURN_FIRST: for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(tile)) { return mdb.readPoiData(tile); } } return null; case RETURN_ALL: return readPoiData(tile, false); case DEDUPLICATE: return readPoiData(tile, true); } throw new IllegalStateException("Invalid data policy for multi map database"); }
private MapReadResult readMapData(Tile upperLeft, Tile lowerRight, boolean deduplicate) { MapReadResult mapReadResult = new MapReadResult(); for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(upperLeft)) { MapReadResult result = mdb.readMapData(upperLeft, lowerRight); if (result == null) { continue; } boolean isWater = mapReadResult.isWater & result.isWater; mapReadResult.isWater = isWater; mapReadResult.add(result, deduplicate); } } return mapReadResult; }
private MapReadResult readLabels(Tile tile, boolean deduplicate) { MapReadResult mapReadResult = new MapReadResult(); for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(tile)) { MapReadResult result = mdb.readLabels(tile); if (result == null) { continue; } boolean isWater = mapReadResult.isWater & result.isWater; mapReadResult.isWater = isWater; mapReadResult.add(result, deduplicate); } } return mapReadResult; }
private MapReadResult readMapData(Tile tile, boolean deduplicate) { MapReadResult mapReadResult = new MapReadResult(); for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(tile)) { MapReadResult result = mdb.readMapData(tile); if (result == null) { continue; } boolean isWater = mapReadResult.isWater & result.isWater; mapReadResult.isWater = isWater; mapReadResult.add(result, deduplicate); } } return mapReadResult; }
private MapReadResult readLabels(Tile upperLeft, Tile lowerRight, boolean deduplicate) { MapReadResult mapReadResult = new MapReadResult(); for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(upperLeft)) { MapReadResult result = mdb.readLabels(upperLeft, lowerRight); if (result == null) { continue; } boolean isWater = mapReadResult.isWater & result.isWater; mapReadResult.isWater = isWater; mapReadResult.add(result, deduplicate); } } return mapReadResult; }
private MapReadResult readPoiData(Tile tile, boolean deduplicate) { MapReadResult mapReadResult = new MapReadResult(); for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(tile)) { MapReadResult result = mdb.readPoiData(tile); if (result == null) { continue; } boolean isWater = mapReadResult.isWater & result.isWater; mapReadResult.isWater = isWater; mapReadResult.add(result, deduplicate); } } return mapReadResult; }
private MapReadResult readPoiData(Tile upperLeft, Tile lowerRight, boolean deduplicate) { MapReadResult mapReadResult = new MapReadResult(); for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(upperLeft)) { MapReadResult result = mdb.readPoiData(upperLeft, lowerRight); if (result == null) { continue; } boolean isWater = mapReadResult.isWater & result.isWater; mapReadResult.isWater = isWater; mapReadResult.add(result, deduplicate); } } return mapReadResult; }
@Override public boolean supportsTile(Tile tile) { for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(tile)) { return true; } } return false; } }
boolean renderBitmap(RenderContext renderContext) { return !renderContext.renderTheme.hasMapBackgroundOutside() || this.mapDataStore.supportsTile(renderContext.rendererJob.tile); }
@Override public MapReadResult readPoiData(Tile upperLeft, Tile lowerRight) { switch (this.dataPolicy) { case RETURN_FIRST: for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(upperLeft)) { return mdb.readPoiData(upperLeft, lowerRight); } } return null; case RETURN_ALL: return readPoiData(upperLeft, lowerRight, false); case DEDUPLICATE: return readPoiData(upperLeft, lowerRight, true); } throw new IllegalStateException("Invalid data policy for multi map database"); }
private MapReadResult readLabels(Tile tile, boolean deduplicate) { MapReadResult mapReadResult = new MapReadResult(); for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(tile)) { MapReadResult result = mdb.readLabels(tile); if (result == null) { continue; } boolean isWater = mapReadResult.isWater & result.isWater; mapReadResult.isWater = isWater; mapReadResult.add(result, deduplicate); } } return mapReadResult; }
private MapReadResult readMapData(Tile tile, boolean deduplicate) { MapReadResult mapReadResult = new MapReadResult(); for (MapDataStore mdb : mapDatabases) { if (mdb.supportsTile(tile)) { MapReadResult result = mdb.readMapData(tile); if (result == null) { continue; } boolean isWater = mapReadResult.isWater & result.isWater; mapReadResult.isWater = isWater; mapReadResult.add(result, deduplicate); } } return mapReadResult; }