public MapOptions get( String layer ) { return new MapOptions( getQuality( layer ), getInterpolation( layer ), getAntialias( layer ), getMaxFeatures( layer ), getFeatureInfoRadius( layer ) ); }
private static void insertMaxFeatures( String layer, MapOptionsMaps options, MapOptions layerDefaults, MapOptions globalDefaults ) { if ( options.getMaxFeatures( layer ) == -1 ) { if ( layerDefaults != null ) { options.setMaxFeatures( layer, layerDefaults.getMaxFeatures() ); } if ( options.getMaxFeatures( layer ) == -1 ) { options.setMaxFeatures( layer, globalDefaults.getMaxFeatures() ); } } }
private static void insertAntialias( String layer, MapOptionsMaps options, MapOptions layerDefaults, MapOptions globalDefaults ) { if ( options.getAntialias( layer ) == null ) { if ( layerDefaults != null ) { options.setAntialias( layer, layerDefaults.getAntialias() ); } if ( options.getAntialias( layer ) == null ) { options.setAntialias( layer, globalDefaults.getAntialias() ); } } }
private void handleVSPs( Map<String, String> map, MapOptionsMaps defaults ) { if ( defaults == null ) { defaults = new MapOptionsMaps(); if ( maxFeatures == null ) { for ( LayerRef l : this.layers ) { Integer max = defaults.getMaxFeatures( l.getName() ); if ( max == null ) { max = 10000; LOG.debug( "Using global max features setting of {}.", max ); extensions.setMaxFeatures( l.getName(), max ); for ( int i = 0; i < mfs.length; ++i ) { LayerRef cur = this.layers.get( i ); Integer def = defaults.getMaxFeatures( cur.getName() ); try { Integer val = Integer.valueOf( mfs[i] ); extensions.setMaxFeatures( cur.getName(), def == null ? val : min( def, val ) ); } catch ( NumberFormatException e ) { LOG.info( "The value '{}' for MAX_FEATURES can not be parsed as a number.", mfs[i] ); extensions.setMaxFeatures( cur.getName(), def == null ? 10000 : def ); for ( int i = 0; i < mfs.length; ++i ) { LayerRef cur = this.layers.get( i ); Integer def = defaults.getMaxFeatures( cur.getName() ); if ( mfs.length <= i ) { try { Integer val = Integer.valueOf( mfs[i] ); extensions.setMaxFeatures( cur.getName(), def == null ? val : min( def, val ) );
List<Query> buildMapQueries() { List<Query> queries = new ArrayList<Query>(); Integer maxFeats = query.getRenderingOptions().getMaxFeatures( layerName ); final int maxFeatures = maxFeats == null ? -1 : maxFeats; if ( ftName == null && featureStore != null ) { final Filter filter2 = filter; queries.addAll( map( featureStore.getSchema().getFeatureTypes( null, false, false ), new Mapper<Query, FeatureType>() { @Override public Query apply( FeatureType u ) { Filter fil = addBBoxConstraint( bbox, filter2, geomProp, true ); return createQuery( u.getName(), fil, round( query.getScale() ), maxFeatures, query.getResolution(), sortBy ); } } ) ); } else { Query fquery = createQuery( ftName, addBBoxConstraint( bbox, filter, geomProp, true ), round( query.getScale() ), maxFeatures, query.getResolution(), sortBy ); queries.add( fquery ); } return queries; }
private static void insertInterpolation( String layer, MapOptionsMaps options, MapOptions layerDefaults, MapOptions globalDefaults ) { if ( options.getInterpolation( layer ) == null ) { if ( layerDefaults != null ) { options.setInterpolation( layer, layerDefaults.getInterpolation() ); } if ( options.getInterpolation( layer ) == null ) { options.setInterpolation( layer, globalDefaults.getInterpolation() ); } } }
private static void insertRadius( String layer, MapOptionsMaps options, MapOptions layerDefaults, MapOptions globalDefaults ) { if ( options.getFeatureInfoRadius( layer ) == -1 ) { if ( layerDefaults != null ) { options.setFeatureInfoRadius( layer, layerDefaults.getFeatureInfoRadius() ); } if ( options.getFeatureInfoRadius( layer ) == -1 ) { options.setFeatureInfoRadius( layer, globalDefaults.getFeatureInfoRadius() ); } } }
@Override public Interpolation getOption( String layer ) { return options.getInterpolation( layer ); } };
private static void insertQuality( String layer, MapOptionsMaps options, MapOptions layerDefaults, MapOptions globalDefaults ) { if ( options.getQuality( layer ) == null ) { if ( layerDefaults != null ) { options.setQuality( layer, layerDefaults.getQuality() ); } if ( options.getQuality( layer ) == null ) { options.setQuality( layer, globalDefaults.getQuality() ); } } }
public MapOptionsMaps( Map<String, Quality> qualities, Map<String, Interpolation> interpolations, Map<String, Antialias> antialiases, Map<String, Integer> maxFeatures ) { options = new HashMap<String, MapOptions>(); for ( Entry<String, Quality> e : qualities.entrySet() ) { options.put( e.getKey(), new MapOptions( e.getValue(), null, null, -1, -1 ) ); } for ( Entry<String, Interpolation> e : interpolations.entrySet() ) { if ( options.get( e.getKey() ) != null ) { options.get( e.getKey() ).setInterpolation( e.getValue() ); } else { options.put( e.getKey(), new MapOptions( null, e.getValue(), null, -1, -1 ) ); } } for ( Entry<String, Antialias> e : antialiases.entrySet() ) { if ( options.get( e.getKey() ) != null ) { options.get( e.getKey() ).setAntialias( e.getValue() ); } else { options.put( e.getKey(), new MapOptions( null, null, e.getValue(), -1, -1 ) ); } } for ( Entry<String, Integer> e : maxFeatures.entrySet() ) { setMaxFeatures( e.getKey(), e.getValue() ); } }
private List<LayerQuery> prepareGetFeatures( org.deegree.protocol.wms.ops.GetFeatureInfo gfi ) { List<LayerQuery> queries = new ArrayList<LayerQuery>(); Iterator<LayerRef> layerItr = gfi.getQueryLayers().iterator(); Iterator<StyleRef> styleItr = gfi.getStyles().iterator(); List<OperatorFilter> filters = gfi.getFilters(); Iterator<OperatorFilter> filterItr = filters == null ? null : filters.iterator(); while ( layerItr.hasNext() ) { LayerRef lr = layerItr.next(); StyleRef sr = styleItr.next(); OperatorFilter f = filterItr == null ? null : filterItr.next(); final int layerRadius = defaultLayerOptions.getFeatureInfoRadius(); LayerQuery query = new LayerQuery( gfi.getEnvelope(), gfi.getWidth(), gfi.getHeight(), gfi.getX(), gfi.getY(), gfi.getFeatureCount(), f, sr, gfi.getParameterMap(), gfi.getDimensions(), new MapOptionsMaps(), gfi.getEnvelope(), layerRadius ); queries.add( query ); } return queries; }
@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 Antialias getOption( String layer ) { return options.getAntialias( layer ); } };
@Override public Quality getOption( String layer ) { return options.getQuality( layer ); } };
@Override public void setOption( String layer, Antialias value ) { options.setAntialias( layer, value ); } };
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; }
Integer maxFeats = query.getRenderingOptions().getMaxFeatures( getMetadata().getName() ); final int maxFeatures = maxFeats == null ? -1 : maxFeats;
private static void applyInterpolation( final String layerName, final Graphics2D g, final MapOptionsMaps options, final MapOptions defaults ) { Interpolation i = options.getInterpolation( layerName ); if ( i == null ) { i = defaults.getInterpolation(); } switch ( i ) { case BICUBIC: g.setRenderingHint( KEY_INTERPOLATION, VALUE_INTERPOLATION_BICUBIC ); break; case BILINEAR: g.setRenderingHint( KEY_INTERPOLATION, VALUE_INTERPOLATION_BILINEAR ); break; case NEARESTNEIGHBOR: case NEARESTNEIGHBOUR: g.setRenderingHint( KEY_INTERPOLATION, VALUE_INTERPOLATION_NEAREST_NEIGHBOR ); break; } }
private static void applyAntialiasing( final String layerName, final Graphics2D g, final MapOptionsMaps options, final MapOptions defaults ) { Antialias a = options.getAntialias( layerName ); if ( a == null ) { a = defaults.getAntialias(); } switch ( a ) { case IMAGE: g.setRenderingHint( KEY_ANTIALIASING, VALUE_ANTIALIAS_ON ); g.setRenderingHint( KEY_TEXT_ANTIALIASING, VALUE_TEXT_ANTIALIAS_OFF ); break; case TEXT: g.setRenderingHint( KEY_ANTIALIASING, VALUE_ANTIALIAS_OFF ); g.setRenderingHint( KEY_TEXT_ANTIALIASING, VALUE_TEXT_ANTIALIAS_ON ); break; case BOTH: g.setRenderingHint( KEY_ANTIALIASING, VALUE_ANTIALIAS_ON ); g.setRenderingHint( KEY_TEXT_ANTIALIASING, VALUE_TEXT_ANTIALIAS_ON ); break; case NONE: g.setRenderingHint( KEY_ANTIALIASING, VALUE_ANTIALIAS_OFF ); g.setRenderingHint( KEY_TEXT_ANTIALIASING, VALUE_TEXT_ANTIALIAS_OFF ); break; } }
private static void applyQuality( final String layerName, final Graphics2D g, final MapOptionsMaps options, final MapOptions defaults ) { Quality q = options.getQuality( layerName ); if ( q == null ) { q = defaults.getQuality(); } switch ( q ) { case HIGH: g.setRenderingHint( KEY_RENDERING, VALUE_RENDER_QUALITY ); g.setRenderingHint( KEY_STROKE_CONTROL, VALUE_STROKE_PURE ); break; case LOW: g.setRenderingHint( KEY_RENDERING, VALUE_RENDER_SPEED ); g.setRenderingHint( KEY_STROKE_CONTROL, VALUE_STROKE_NORMALIZE ); break; case NORMAL: g.setRenderingHint( KEY_RENDERING, VALUE_RENDER_DEFAULT ); g.setRenderingHint( KEY_STROKE_CONTROL, VALUE_STROKE_DEFAULT ); break; } }