[OpenLayers-Users] Highlight features in WMS Layer

Smaran Harihar smaran.harihar at gmail.com
Thu Oct 11 15:55:42 PDT 2012


Ok so I made the following changes,

control: new OpenLayers.Control.SLDSelect(
OpenLayers.Handler.Polygon, {
    displayClass: 'olControlSLDSelectPolygon',
    layers: [pima, states],

Assigned the layers to the SLD. Which I did not want it to be hardcoded.

    eventListeners: {
        "selected": function (evt) {
            //features.removeFeatures();
            var pfilter = new OpenLayers.Filter.Spatial({
                type: OpenLayers.Filter.Spatial.INTERSECTS,
                value: evt.feature.geometry

I am facing a problem over here as Firebug is giving an error,

evt.feature is undefined

How do I collect the geometry now?

            });
            var propNames = [];

The reason I placed a empty array was that previously I wanted to display
all the columns in the attribute table, and that is what it was doing. So
now if I want all the columns to be added do I need to add the names of all
the columns one by one?

            //var layerNode = getLayerNode(combo.value);
            var layerNode = tree.getSelectionModel().getSelectedNode();
            if (layerNode !== null) {
                wfsProtocol = new
OpenLayers.Protocol.WFS.fromWMSLayer(layerNode.layer);
                wfsProtocol.read({
                    filter: pfilter,
                    callback: processSpatialQuery,
                    scope: new OpenLayers.Strategy.BBOX()
                });

            } else {
                alert("Please select a Map Layer");

            }
        }
    }
})

On Wed, Oct 10, 2012 at 3:38 PM, Phil Scadden <p.scadden at gns.cri.nz> wrote:

>
> > control: new OpenLayers.Control.SLDSelect(
> > OpenLayers.Handler.Polygon, {
> >     displayClass: 'olControlSLDSelectPolygon',
> >     layers: features,
>
> "features" need to be layer you are doing the select on - it should be a
> WMS layer since SLDSelect works on WMS layers.
>
> >     eventListeners: {
> >         "selected": function (evt) {
> >             //features.removeFeatures();
> >             var pfilter = new OpenLayers.Filter.Spatial({
> >                 type: OpenLayers.Filter.Spatial.INTERSECTS,
> >                 value: evt.feature.geometry
> >             });
>
> >             var propNames = [];
> This isnt used yet  I notice. If you call wfsProtocol.read without
> propertyNames specified, it will return features in GML, negating the
> point of using SLDSelect. You need to specify which attributes you want
> back.
> >             //var layerNode = getLayerNode(combo.value);
> >             var layerNode = tree.getSelectionModel().getSelectedNode();
> >             if (layerNode !== null) {
> >                 wfsProtocol = new
> > OpenLayers.Protocol.WFS.fromWMSLayer(layerNode.layer);
> >                 wfsProtocol.read({
> >                     filter: pfilter,
> >                     callback: processSpatialQuery,
> >                     scope: new OpenLayers.Strategy.BBOX()
> >                 });
>
> >                 features.removeAllFeatures();
> This is implies "features" is a vector drawing layer. Since SLDSelect is
> doing the drawing, this isnt necessary
> >             } else {
> >                 alert("Please select a Map Layer");
> >                 features.removeAllFeatures();
> >             }
> >         }
> >     }
> > })
>
> I would get SLDSelect working first, then get the WFS fetch of
> attributes. Firebug tells you errors, but you should be checking what
> request it is sending to Geoserver and what the response looks like.
>  From memory, you are using geoserver so I think you will also need to
> convert the polygon from map coordinates to native coordinates.
>
>
> Notice: This email and any attachments are confidential. If received in
> error please destroy and immediately notify us. Do not copy or disclose the
> contents.
>
> _______________________________________________
> Users mailing list
> Users at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>



-- 
Thanks & Regards
Smaran Harihar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/openlayers-users/attachments/20121011/e97b93cd/attachment.html>


More information about the Users mailing list