/** * Create a filter for stored tiles that are within a particular range. * * @param trObj the range to find * @throws StorageException */ public FilePathFilter(TileRange trObj) throws StorageException { this.tr = trObj; if (tr.getGridSetId() == null) { throw new StorageException("Specifying the grid set id is currently mandatory."); } String layerName = tr.getLayerName(); Preconditions.checkNotNull(layerName); this.layerPrefix = filteredLayerName(layerName); gridSetPrefix = filteredGridSetId(tr.getGridSetId()); if (tr.getMimeType() != null) { mimeExtension = tr.getMimeType().getFileExtension(); } }
final String blobFormat = trObj.getMimeType().getFormat(); final String parametersId = trObj.getParametersId();
/** * @return the key prefix up to the coordinates (i.e. {@code * "<prefix>/<layer>/<gridset>/<format>/<parametersId>"}) */ public String coordinatesPrefix(TileRange obj) { checkNotNull(obj.getLayerName()); checkNotNull(obj.getGridSetId()); checkNotNull(obj.getMimeType()); String layer = layerId(obj.getLayerName()); String gridset = obj.getGridSetId(); MimeType mimeType = obj.getMimeType(); String shortFormat; String parametersId = obj.getParametersId(); if (parametersId == null) { Map<String, String> parameters = obj.getParameters(); parametersId = ParametersUtils.getId(parameters); if (parametersId == null) { parametersId = "default"; } else { obj.setParametersId(parametersId); } } shortFormat = mimeType.getFileExtension(); // png, png8, png24, etc String key = join(true, prefix, layer, gridset, shortFormat, parametersId); return key; }
/** * @return the key prefix up to the coordinates (i.e. {@code * "<prefix>/<layer>/<gridset>/<format>/<parametersId>"}) */ public String coordinatesPrefix(TileRange obj) { checkNotNull(obj.getLayerName()); checkNotNull(obj.getGridSetId()); checkNotNull(obj.getMimeType()); String layer = layerId(obj.getLayerName()); String gridset = obj.getGridSetId(); MimeType mimeType = obj.getMimeType(); String shortFormat; String parametersId = obj.getParametersId(); if (parametersId == null) { Map<String, String> parameters = obj.getParameters(); parametersId = ParametersUtils.getId(parameters); if (parametersId == null) { parametersId = "default"; } else { obj.setParametersId(parametersId); } } shortFormat = mimeType.getFileExtension(); // png, png8, png24, etc String key = join(true, prefix, layer, gridset, shortFormat, parametersId); return key; }
final TileToKey tileToKey = new TileToKey(coordsPrefix, tileRange.getMimeType()); String layerName = tileRange.getLayerName(); String gridSetId = tileRange.getGridSetId(); String format = tileRange.getMimeType().getFormat(); Map<String, String> parameters = tileRange.getParameters();
final TileToKey tileToKey = new TileToKey(coordsPrefix, tileRange.getMimeType()); String layerName = tileRange.getLayerName(); String gridSetId = tileRange.getGridSetId(); String format = tileRange.getMimeType().getFormat(); Map<String, String> parameters = tileRange.getParameters();
/** * Build the paths correspondent to a tile range. For each file we return the associated tiles * range by zoom. */ Map<File, List<long[]>> getFiles(TileRange tileRange) { Map<File, List<long[]>> files = new HashMap<>(); // let's iterate of all the available zoom levels for (int z = tileRange.getZoomStart(); z <= tileRange.getZoomStop(); z++) { long[] range = tileRange.rangeBounds(z); if (range == null) { // this zoom level doesn't have any tiles associated continue; } // get the files and associated tiles for the current zoom level getFiles( files, tileRange.getParametersId(), tileRange.getLayerName(), tileRange.getGridSetId(), tileRange.getMimeType().getFormat(), tileRange.getParameters(), z, range); } return files; }
tr.getGridSetId(), gridLoc, tr.getMimeType(), fullParameters, null,
/** * Build the paths correspondent to a tile range. For each file we return the associated tiles * range by zoom. */ Map<File, List<long[]>> getFiles(TileRange tileRange) { Map<File, List<long[]>> files = new HashMap<>(); // let's iterate of all the available zoom levels for (int z = tileRange.getZoomStart(); z <= tileRange.getZoomStop(); z++) { long[] range = tileRange.rangeBounds(z); if (range == null) { // this zoom level doesn't have any tiles associated continue; } // get the files and associated tiles for the current zoom level getFiles( files, tileRange.getParametersId(), tileRange.getLayerName(), tileRange.getGridSetId(), tileRange.getMimeType().getFormat(), tileRange.getParameters(), z, range); } return files; }
tr.getGridSetId(), gridLoc, tr.getMimeType(), fullParameters, null,
private void seedTiles(StorageBroker storageBroker, TileRange tr, final WMSLayer tl) throws Exception { final String layerName = tl.getName(); // define the meta tile size to 1,1 so we hit all the tiles final TileRangeIterator trIter = new TileRangeIterator(tr, tl.getMetaTilingFactors()); long[] gridLoc = trIter.nextMetaGridLocation(new long[3]); while (gridLoc != null) { Map<String, String> fullParameters = tr.getParameters(); final ConveyorTile tile = new ConveyorTile( storageBroker, layerName, tr.getGridSetId(), gridLoc, tr.getMimeType(), fullParameters, null, null); tile.setTileLayer(tl); tl.seedTile(tile, false); gridLoc = trIter.nextMetaGridLocation(gridLoc); } }