@Override public String readMetaData (String pyramidId) throws IOException { return getBasePyramidIO(pyramidId).readMetaData(pyramidId); }
private PyramidMetaData getCachedMetaData( String layerId, String dataId, PyramidIO pyramidIO ) { try { JSONObject metadata = _metaDataCache.get( layerId ); if ( metadata == null ) { String s = pyramidIO.readMetaData( dataId ); if ( s == null ) { metadata = new JSONObject(); } else { metadata = new JSONObject( s ); } _metaDataCache.put( layerId, metadata ); } return new PyramidMetaData( metadata ); } catch (JSONException e) { LOGGER.error("Metadata file for layer is missing or corrupt: {}", layerId, e); } catch (IOException e) { LOGGER.error("Couldn't read metadata: {}", layerId, e); } return null; }
private void updatePyramidType () { _pyramid = null; try { String rawMetaData = _pyramidIO.readMetaData(_pyramidId); PyramidMetaData metaData = new PyramidMetaData(rawMetaData); _pyramid = metaData.getTilePyramid(); } catch (Exception e) { LOGGER.log(Level.WARNING, "Error getting level metadata for " + _pyramidId); } if (null == _pyramid) { _pyramidField.setSelectedIndex(-1); _pyramidDesc.setText(""); } else if (_pyramid instanceof WebMercatorTilePyramid) { _pyramidField.setSelectedItem(PyramidEnum.Geographic); _pyramidDesc.setText(""); } else if (_pyramid instanceof AOITilePyramid) { _pyramidField.setSelectedItem(PyramidEnum.AreaOfInterest); Rectangle2D bounds = _pyramid.getTileBounds(new TileIndex(0, 0, 0)); _pyramidDesc.setText(String.format("bounds: [%.4f, %.4f] to [%.4f, %.4f]", bounds.getMinX(), bounds.getMinY(), bounds.getMaxX(), bounds.getMaxY())); } } private void updateAvailableCoordinates () {
private void updatePyramidType () { _pyramid = null; try { String rawMetaData = _pyramidIO.readMetaData(_pyramidId); PyramidMetaData metaData = new PyramidMetaData(rawMetaData); _pyramid = metaData.getTilePyramid(); } catch (Exception e) { LOGGER.log(Level.WARNING, "Error getting level metadata for " + _pyramidId); } if (null == _pyramid) { _pyramidField.setSelectedIndex(-1); _pyramidDesc.setText(""); } else if (_pyramid instanceof WebMercatorTilePyramid) { _pyramidField.setSelectedItem(PyramidEnum.Geographic); _pyramidDesc.setText(""); } else if (_pyramid instanceof AOITilePyramid) { _pyramidField.setSelectedItem(PyramidEnum.AreaOfInterest); Rectangle2D bounds = _pyramid.getTileBounds(new TileIndex(0, 0, 0)); _pyramidDesc.setText(String.format("bounds: [%.4f, %.4f] to [%.4f, %.4f]", bounds.getMinX(), bounds.getMinY(), bounds.getMaxX(), bounds.getMaxY())); } } private void updateAvailableCoordinates () {
public <T> void copyPyramid (String pyramidId, int minLevel, int maxLevel, TileSerializer<T> serializer, int blockSize) throws IOException { // Parameters 2-4 aren't used except in live tiling, so dummy parameters are fine. _from.initializeForRead(pyramidId, 256, 256, null); _to.initializeForWrite(pyramidId); System.out.println("Writing metadata"); _to.writeMetaData(pyramidId, _from.readMetaData(pyramidId)); for (int level = minLevel; level <= maxLevel; ++level) { System.out.println("Copying level " + level); copyLevel(pyramidId, level, serializer, blockSize); } } public <T> void copyLevel (String pyramidId, int level, TileSerializer<T> serializer, int blockSize) throws IOException {
private void updateAvailableLevels () { if (null != _pyramidIO && null != _pyramidId && !_pyramidId.isEmpty()) { try { String rawMetaData = _pyramidIO.readMetaData(_pyramidId); PyramidMetaData metaData = new PyramidMetaData(rawMetaData); _levelField.removeAll(); _xField.removeAll(); _yField.removeAll(); List<Integer> levels = metaData.getValidZoomLevels(); for (Integer level: levels) { _levelField.addItem(level); } _levelField.setSelectedIndex(0); return; } catch (Exception e) { LOGGER.log(Level.WARNING, "Error getting level metadata for " + _pyramidId); } } _levelField.removeAllItems(); _xField.removeAll(); _yField.removeAll(); }
private void updateAvailableLevels () { if (null != _pyramidIO && null != _pyramidId && !_pyramidId.isEmpty()) { try { String rawMetaData = _pyramidIO.readMetaData(_pyramidId); PyramidMetaData metaData = new PyramidMetaData(rawMetaData); _levelField.removeAll(); _xField.removeAll(); _yField.removeAll(); List<Integer> levels = metaData.getValidZoomLevels(); for (Integer level: levels) { _levelField.addItem(level); } _levelField.setSelectedIndex(0); return; } catch (Exception e) { LOGGER.log(Level.WARNING, "Error getting level metadata for " + _pyramidId); } } _levelField.removeAllItems(); _xField.removeAll(); _yField.removeAll(); }
public void copy (List<TileIndex> rootTiles) throws IOException { _source.initializeForRead(_parameters._sourceId, _parameters._width, _parameters._height, null); _destination.initializeForWrite(_parameters._destinationId); String metaData = _source.readMetaData(_parameters._sourceId); if (null != metaData) _destination.writeMetaData(_parameters._destinationId, metaData); List<TileIndex> toCopy = new ArrayList<>(); for (TileIndex root: rootTiles) { toCopy = copyUp(root, toCopy); toCopy = copyDown(root, toCopy); } doCopy(toCopy); }