private void getFeatureTypes( Collection<FeatureType> types, String name ) { for ( org.deegree.layer.Layer l : Themes.getAllLayers( themeMap.get( name ) ) ) { types.addAll( l.getMetadata().getFeatureTypes() ); } }
static LayerMetadata buildMetadataForAutoMode( FeatureStore store, FeatureType ft, String name ) { List<ICRS> crs = new ArrayList<ICRS>(); Envelope envelope = null; try { envelope = store.getEnvelope( ft.getName() ); } catch ( Throwable e ) { LOG.debug( "Could not get envelope from feature store: {}", e.getLocalizedMessage() ); LOG.trace( "Stack trace:", e ); } if ( envelope != null ) { crs.add( envelope.getCoordinateSystem() ); } SpatialMetadata smd = new SpatialMetadata( envelope, crs ); Description desc = new Description( name, Collections.singletonList( new LanguageString( name, null ) ), null, null ); LayerMetadata md = new LayerMetadata( name, desc, smd ); md.getFeatureTypes().add( ft ); return md; }
types.addAll( lay.getMetadata().getFeatureTypes() ); lays.add( lay );
LayerStore createFromAutoLayers( AutoLayers cfg ) { String cid = cfg.getCoverageStoreId(); String sid = cfg.getStyleStoreId(); Coverage cov = workspace.getResource( CoverageProvider.class, cid ); StyleStore sstore = null; if ( sid != null ) { sstore = workspace.getResource( StyleStoreProvider.class, sid ); } SpatialMetadata smd = new SpatialMetadata( cov.getEnvelope(), Collections.singletonList( cov.getCoordinateSystem() ) ); Description desc = new Description( cid, Collections.singletonList( new LanguageString( cid, null ) ), null, null ); LayerMetadata md = new LayerMetadata( cid, desc, smd ); md.getFeatureTypes().add( buildFeatureType() ); if ( sstore != null ) { for ( Style s : sstore.getAll( cid ) ) { md.getStyles().put( s.getName(), s ); } } Layer l = new CoverageLayer( md, cov instanceof AbstractRaster ? (AbstractRaster) cov : null, cov instanceof MultiResolutionRaster ? (MultiResolutionRaster) cov : null ); return new SingleLayerStore( l, metadata ); }
@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; }
getMetadata().getFeatureTypes().get( 0 ) ); } catch ( OWSException e ) { throw e;
md.setMetadataId( lay.getMetadataSetId() ); if ( featureType != null ) { md.getFeatureTypes().add( store.getSchema().getFeatureType( featureType ) ); } else { md.getFeatureTypes().addAll( Arrays.asList( store.getSchema().getFeatureTypes() ) );
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; }