public VectorTilePresenter getTile(TileCode tileCode) { return tiles.get(tileCode.toString()); }
public VectorTilePresenter addTile(TileCode tileCode) { VectorTilePresenter tilePresenter = tiles.get(tileCode.toString()); if (tilePresenter == null) { tilePresenter = new VectorTilePresenter(commandService, this, tileCode.clone(), scale, crs, new TileLoadCallback()); nrLoadingTiles++; tiles.put(tileCode.toString(), tilePresenter); } return tilePresenter; }
public void render(Bbox bounds) { if (layer.isShowing()) { List<TileCode> tilesForBounds = tileService.getTileCodesForBounds(layer.getViewPort(), layer.getTileConfig(), bounds, scale); for (TileCode tileCode : tilesForBounds) { if (!tiles.containsKey(tileCode.toString())) { RasterTile tile = createTile(tileCode); // Add the tile to the list and render it: tiles.put(tileCode.toString(), tile); nrLoadingTiles++; renderTile(tile, new ImageCounter()); } } } }
@Override public void render(Bbox bbox) { // Only fetch when inside the layer bounds: if (BboxService.intersects(bbox, layerBounds) && vectorLayer.isShowing()) { // Find needed tile codes: List<TileCode> tempCodes = calcCodesForBounds(bbox); for (TileCode tileCode : tempCodes) { VectorTilePresenter tilePresenter = tiles.get(tileCode.toString()); if (tilePresenter == null) { // New tile tilePresenter = addTile(tileCode); tilePresenter.render(); } else if (tilePresenter.getSiblingStatus() == VectorTilePresenter.STATUS.EMPTY) { // Tile already exists, but the siblings have not yet been loaded: tilePresenter.renderSiblings(); } } } }
@Override public List<RasterTile> getTiles(double scale, Bbox worldBounds) { List<TileCode> codes = tileService.getTileCodesForBounds(getViewPort(), tileConfig, worldBounds, scale); List<RasterTile> tiles = new ArrayList<RasterTile>(); if (!codes.isEmpty()) { double actualScale = viewPort.getZoomStrategy().getZoomStepScale(codes.get(0).getTileLevel()); for (TileCode code : codes) { Bbox bounds = tileService.getWorldBoundsForTile(getViewPort(), tileConfig, code); RasterTile tile = new RasterTile(getScreenBounds(actualScale, bounds), code.toString()); tile.setCode(code); tile.setUrl(wmsService.getMapUrl(getConfig(), getCrs(), bounds, tileConfig.getTileWidth(), tileConfig.getTileHeight())); tiles.add(tile); } } return tiles; }
private RasterTile createTile(TileCode tileCode) { Bbox worldBounds = tileService.getWorldBoundsForTile(layer.getViewPort(), layer.getTileConfig(), tileCode); RasterTile tile = new RasterTile(getScreenBounds(worldBounds), tileCode.toString()); tile.setCode(tileCode); tile.setUrl(wmsService.getMapUrl(layer.getConfig(), layer.getCrs(), worldBounds, layer.getTileConfig() .getTileWidth(), layer.getTileConfig().getTileHeight())); return tile; }