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; }
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; }