@Override public LayerMetadata apply( Layer u ) { return u.getMetadata(); } };
@Override public void destroy() { layer.destroy(); }
private List<LayerData> checkStyleValidAndBuildLayerDataList( org.deegree.protocol.wms.ops.GetMap gm, List<String> headers, double scale, ListIterator<LayerQuery> queryIter ) throws OWSException { List<LayerData> layerDataList = new ArrayList<LayerData>(); for ( LayerRef lr : gm.getLayers() ) { LayerQuery query = queryIter.next(); List<Layer> layers = getAllLayers( themeMap.get( lr.getName() ) ); assertStyleApplicableForAtLeastOneLayer( layers, query.getStyle(), lr.getName() ); for ( org.deegree.layer.Layer layer : layers ) { if ( layer.getMetadata().getScaleDenominators().first > scale || layer.getMetadata().getScaleDenominators().second < scale ) { continue; } if ( layer.isStyleApplicable( query.getStyle() ) ) { layerDataList.add( layer.mapQuery( query, headers ) ); } } } return layerDataList; }
LayerQuery query = queryIter.next(); for ( org.deegree.layer.Layer l : Themes.getAllLayers( themeMap.get( n.getName() ) ) ) { if ( l.getMetadata().getScaleDenominators().first > scale || l.getMetadata().getScaleDenominators().second < scale ) { continue; if ( !l.getMetadata().isQueryable() ) { throw new OWSException( "GetFeatureInfo is requested on a Layer (name: " + l.getMetadata().getName() + ") that is not queryable.", LAYER_NOT_QUERYABLE ); list.add( l.infoQuery( query, headers ) );
private void assertStyleApplicableForAtLeastOneLayer( List<Layer> layers, StyleRef style, String name ) throws OWSException { for ( Layer layer : layers ) { if ( layer.isStyleApplicable( style ) ) { return; } } throw new OWSException( "Style " + style.getName() + " is not defined for layer " + name + ".", "StyleNotDefined", "styles" ); }
@Override public String apply( Layer u ) { return u.getMetadata().getName(); } };
@Override public void destroy() { for ( Layer l : map.values() ) { l.destroy(); } }
public LayerRef( Layer layer ) { this.layer = layer; this.name = layer.getMetadata().getName(); }
@Override public Layer get( String identifier ) { if ( layer.getMetadata().getName().equals( identifier ) ) { return layer; } return null; }
private void getFeatureTypes( Collection<FeatureType> types, String name ) { for ( org.deegree.layer.Layer l : Themes.getAllLayers( themeMap.get( name ) ) ) { types.addAll( l.getMetadata().getFeatureTypes() ); } }
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 ) ); } } } }
@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 ) ); } } } }
private SpatialMetadata mergeSpatialMetadata( List<Theme> themes ) { if ( themes.isEmpty() ) return null; SpatialMetadata smd = new SpatialMetadata(); for ( Theme t : themes ) { for ( org.deegree.layer.Layer l : Themes.getAllLayers( t ) ) { smd.merge( l.getMetadata().getSpatialMetadata() ); } } return smd; }
/** * Returns the combined layer metadata for the given theme/sublayers. * * @see LayerMetadata#merge(LayerMetadata) * * @param theme * must not be <code>null</code> * @return combined layer metadata, never <code>null</code> */ LayerMetadata merge( final Theme theme ) { final LayerMetadata themeMetadata = theme.getLayerMetadata(); LayerMetadata layerMetadata = new LayerMetadata( null, null, null ); int queryable = 0; boolean opaque = false; int cascaded = 0; for ( final Layer l : Themes.getAllLayers( theme ) ) { queryable |= analyseQueryable( l.getMetadata() ); if ( checkIfOpaque( l.getMetadata() ) ) opaque = true; if ( checkIfLargerCascadedValue( cascaded, l.getMetadata() ) ) cascaded = l.getMetadata().getCascaded(); layerMetadata.merge( l.getMetadata() ); } themeMetadata.merge( layerMetadata ); adjustMapOptions( themeMetadata, queryable, opaque, cascaded ); return themeMetadata; }
private Theme buildAutoTheme( Layer layer ) { LayerMetadata md = new LayerMetadata( null, null, null ); LayerMetadata lmd = layer.getMetadata(); md.merge( lmd ); md.setDimensions( new LinkedHashMap<String, Dimension<?>>( lmd.getDimensions() ) ); md.setStyles( new LinkedHashMap<String, Style>( lmd.getStyles() ) ); md.setLegendStyles( new LinkedHashMap<String, Style>( lmd.getLegendStyles() ) ); return new StandardTheme( md, Collections.<Theme> emptyList(), singletonList( layer ), metadata ); }
private String getFirstMetadataSetId( final Theme theme ) { if ( theme.getLayerMetadata().getMetadataId() != null ) { return theme.getLayerMetadata().getMetadataId(); } for ( final Layer layer : getAllLayers( theme ) ) { if ( layer.getMetadata().getMetadataId() != null ) { return layer.getMetadata().getMetadataId(); } } return null; }
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; }
if ( layers != null ) { for ( final Layer layer : layers ) { if ( layer.getMetadata() != null ) { final DoublePair layerScales = layer.getMetadata().getScaleDenominators(); if ( layerScales != null ) { min = Math.min( min, layerScales.first );