/** * @return true if the layer can be queried * @see MapOptions#getFeatureInfoRadius() */ public boolean isQueryable() { if ( mapOptions == null ) { return true; } // TRICKY assume that, the service is query able by default (<0) return mapOptions.getFeatureInfoRadius() != 0; }
/** * @return the default feature info radius */ public int getGlobalFeatureInfoRadius() { return defaultLayerOptions.getFeatureInfoRadius(); }
public int getFeatureInfoRadius( String layer ) { MapOptions opts = options.get( layer ); return opts == null ? -1 : opts.getFeatureInfoRadius(); }
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() ); } } }
private int analyseQueryable( LayerMetadata m ) { if ( m.getMapOptions() == null ) return QUERYABLE_DEFAULT_MASK; int r = m.getMapOptions().getFeatureInfoRadius(); if ( r < 0 ) return QUERYABLE_DEFAULT_MASK; else if ( r == 0 ) return QUERYABLE_DISABLED_MASK; else return QUERYABLE_ENABLED_MASK; }
/** * @param queryable * the queryable to set */ public void setQueryable( boolean queryable ) { if ( mapOptions != null ) { if ( queryable ) { if ( mapOptions.getFeatureInfoRadius() < 1 ) { mapOptions.setFeatureInfoRadius( 1 ); } } else { if ( mapOptions.getFeatureInfoRadius() > 0 ) { mapOptions.setFeatureInfoRadius( 0 ); } } } else if ( queryable ) { mapOptions = new MapOptions( null, null, null, -1, 1 ); } else { mapOptions = new MapOptions( null, null, null, -1, 0 ); } }
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; }
int layerRadius = -1; if ( getMetadata().getMapOptions() != null ) { layerRadius = getMetadata().getMapOptions().getFeatureInfoRadius();
@Override public FeatureLayerData infoQuery( final LayerQuery query, List<String> headers ) throws OWSException { OperatorFilter filter = this.filter; filter = Filters.and( filter, dimFilterBuilder.getDimensionFilter( query.getDimensions(), headers ) ); StyleRef ref = query.getStyle(); if ( !ref.isResolved() ) { ref.resolve( getMetadata().getStyles().get( ref.getName() ) ); } Style style = ref.getStyle(); style = style.filter( query.getScale() ); filter = Filters.and( filter, getStyleFilters( style, query.getScale() ) ); filter = Filters.and( filter, query.getFilter() ); int layerRadius = -1; if ( getMetadata().getMapOptions() != null ) { layerRadius = getMetadata().getMapOptions().getFeatureInfoRadius(); } final Envelope clickBox = query.calcClickBox( layerRadius > -1 ? layerRadius : query.getLayerRadius() ); filter = (OperatorFilter) addBBoxConstraint( clickBox, filter, null, false ); QName featureType = this.featureType == null ? style.getFeatureType() : this.featureType; filter = Filters.repair( filter, AppSchemas.collectProperyNames( featureStore.getSchema(), featureType ) ); LOG.debug( "Querying the feature store(s)..." ); QueryBuilder builder = new QueryBuilder( featureStore, filter, featureType, clickBox, query, null, sortByFeatureInfo, getMetadata().getName() ); List<Query> queries = builder.buildInfoQueries(); LOG.debug( "Finished querying the feature store(s)." ); return new FeatureLayerData( queries, featureStore, query.getFeatureCount(), style, featureType ); }