@Override public String apply( Layer u ) { return u.getMetadata().getName(); } };
private LayerMetadata getLayer( String name, Tree<LayerMetadata> layerTree ) { if ( name.equals( layerTree.value.getName() ) ) { return layerTree.value; } for ( Tree<LayerMetadata> tree : layerTree.children ) { LayerMetadata result = getLayer( name, tree ); if ( result != null ) { return result; } } return null; }
@Override public Layer get( String identifier ) { if ( layer.getMetadata().getName().equals( identifier ) ) { return layer; } return null; }
public LayerRef( Layer layer ) { this.layer = layer; this.name = layer.getMetadata().getName(); }
private Map<String, Layer> parseAllRemoteLayers() { Map<String, Layer> map = new LinkedHashMap<String, Layer>(); RequestOptionsType opts = cfg.getRequestOptions(); List<LayerMetadata> layers = client.getLayerTree().flattenDepthFirst(); for ( LayerMetadata md : layers ) { if ( md.getName() != null ) { map.put( md.getName(), new RemoteWMSLayer( md.getName(), md, client, opts ) ); } } return map; }
TileHandler( List<Theme> themes ) { layers = new HashMap<String, TileLayer>(); for ( Theme theme : themes ) { for ( Layer l : Themes.getAllLayers( theme ) ) { if ( l instanceof TileLayer ) { layers.put( l.getMetadata().getName(), ( (TileLayer) l ) ); } } } }
public String toString( int indent ) { StringBuilder sb = new StringBuilder(); sb.append( repeat( indent, " " ) ); sb.append( " - " ); sb.append( metadata.getName() ); sb.append( " " ); sb.append( layers.size() ); sb.append( " layers\n" ); indent += 2; for ( Theme t : themes ) { if ( t instanceof StandardTheme ) { sb.append( ( (StandardTheme) t ).toString( indent ) ); } else { sb.append( t ); } } return sb.toString(); }
private Theme buildTheme( Tree<LayerMetadata> tree, LayerStore store ) { List<Theme> thms = new ArrayList<Theme>(); List<Layer> lays = new ArrayList<Layer>(); if ( tree.value.getName() != null ) { Layer l = store.get( tree.value.getName() ); if ( l != null ) { lays.add( l ); } } Theme thm = new StandardTheme( tree.value, thms, lays, metadata ); for ( Tree<LayerMetadata> child : tree.children ) { thms.add( buildTheme( child, store ) ); } return thm; }
@Override public List<Layer> getAll() { return Collections.singletonList( get( layer.getMetadata().getName() ) ); }
private void exportLayers( List<Layer> layers ) throws XMLStreamException { for ( Layer l : layers ) { if ( l instanceof TileLayer ) { writeElement( writer, WMTSNS, "LayerRef", l.getMetadata().getName() ); } } }
FeatureInfoHandler( FeatureInfoFormatsType conf, ResourceLocation<?> location, Workspace workspace, List<Theme> themes ) throws ResourceInitException { featureInfoManager = FeatureInfoManagerBuilder.buildFeatureInfoManager( conf, location, workspace ); layers = new HashMap<String, TileLayer>(); for ( Theme theme : themes ) { for ( Layer l : Themes.getAllLayers( theme ) ) { if ( l instanceof TileLayer ) { layers.put( l.getMetadata().getName(), ( (TileLayer) l ) ); } } } }
@Override public LayerStore build() { Map<String, Layer> map = new HashMap<String, Layer>(); TileLayerBuilder builder = new TileLayerBuilder( workspace ); for ( TileLayerType lay : cfg.getTileLayer() ) { TileLayer l = builder.createLayer( lay ); map.put( l.getMetadata().getName(), l ); } return new MultipleLayerStore( map, metadata ); }
private Map<String, Layer> collectConfiguredRemoteLayers( Map<String, LayerMetadata> configured ) { Map<String, Layer> map = new LinkedHashMap<String, Layer>(); RequestOptionsType opts = cfg.getRequestOptions(); List<LayerMetadata> layers = client.getLayerTree().flattenDepthFirst(); for ( LayerMetadata md : layers ) { String name = md.getName(); LayerMetadata confMd = configured.get( name ); if ( confMd != null ) { confMd.merge( md ); confMd.setStyles( md.getStyles() ); confMd.setLegendStyles( md.getLegendStyles() ); map.put( confMd.getName(), new RemoteWMSLayer( name, confMd, client, opts ) ); } } return map; }
@Override public TileLayerData mapQuery( LayerQuery query, List<String> headers ) throws OWSException { Envelope env = query.getEnvelope(); ICRS crs = env.getCoordinateSystem(); String tds = coordinateSystems.get( crs ); if ( tds == null ) { String msg = "Tile layer " + getMetadata().getName() + " does not offer the coordinate system " + crs.getAlias(); LOG.debug( msg ); throw new OWSException( msg, OWSException.INVALID_CRS ); } TileDataSet data = tileDataSets.get( tds ); Iterator<Tile> tiles = data.getTiles( env, query.getResolution() ); return new TileLayerData( tiles ); }
private LayerQuery buildQuery( StyleRef style, LayerRef lr, MapOptionsMaps options, List<MapOptions> mapOptions, OperatorFilter f, org.deegree.protocol.wms.ops.GetMap gm ) { for ( org.deegree.layer.Layer l : Themes.getAllLayers( themeMap.get( lr.getName() ) ) ) { insertMissingOptions( l.getMetadata().getName(), options, l.getMetadata().getMapOptions(), defaultLayerOptions ); mapOptions.add( options.get( l.getMetadata().getName() ) ); } LayerQuery query = new LayerQuery( gm.getBoundingBox(), gm.getWidth(), gm.getHeight(), style, f, gm.getParameterMap(), gm.getDimensions(), gm.getPixelSize(), options, gm.getQueryBox() ); return query; }
@Override public GdalLayerData infoQuery( LayerQuery query, List<String> headers ) throws OWSException { Envelope bbox = query.calcClickBox( query.getRenderingOptions().getFeatureInfoRadius( getMetadata().getName() ) ); return new GdalLayerData( datasets, bbox, query.getWidth(), query.getHeight(), gdalSettings ); }
@Override public CoverageLayerData mapQuery( LayerQuery query, List<String> headers ) throws OWSException { try { Envelope bbox = query.getEnvelope(); RangeSet filter = dimensionHandler.getDimensionFilter( query.getDimensions(), headers ); Style style = resolveStyleRef( query.getStyle() ); // handle SLD/SE scale settings style = style == null ? null : style.filter( query.getScale() ); Interpolation fromRequest = query.getRenderingOptions().getInterpolation( getMetadata().getName() ); InterpolationType interpol = determineInterpolation( fromRequest ); AbstractRaster raster = this.raster; if ( raster == null ) { raster = multiraster.getRaster( query.getResolution() ); } return new CoverageLayerData( raster, bbox, query.getWidth(), query.getHeight(), interpol, filter, style, getMetadata().getFeatureTypes().get( 0 ) ); } catch ( OWSException e ) { throw e; } catch ( Throwable e ) { LOG.warn( "Unable to prepare rendering of raster layer: {}", e.getLocalizedMessage() ); LOG.trace( "Stack trace:", e ); } return null; }
static LayerMetadata buildLayerMetadata( CoverageLayerType lay, Coverage cov ) { SpatialMetadata smd = fromJaxb( lay.getEnvelope(), lay.getCRS() ); Description desc = fromJaxb( lay.getTitle(), lay.getAbstract(), lay.getKeywords() ); LayerMetadata md = new LayerMetadata( lay.getName(), desc, smd ); md.setDimensions( parseDimensions( md.getName(), lay.getDimension() ) ); md.setMapOptions( ConfigUtils.parseLayerOptions( lay.getLayerOptions() ) ); md.setMetadataId( lay.getMetadataSetId() ); md.getFeatureTypes().add( buildFeatureType() ); if ( smd.getEnvelope() == null ) { smd.setEnvelope( cov.getEnvelope() ); } if ( smd.getCoordinateSystems() == null || smd.getCoordinateSystems().isEmpty() ) { List<ICRS> crs = new ArrayList<ICRS>(); crs.add( smd.getEnvelope().getCoordinateSystem() ); smd.setCoordinateSystems( crs ); } ScaleDenominatorsType denoms = lay.getScaleDenominators(); if ( denoms != null ) { md.setScaleDenominators( new DoublePair( denoms.getMin(), denoms.getMax() ) ); } return md; }