I added 4 WMS layers (three polygons and one have point geometry) from GeoServer on my webpage
My requirement is:
I have to select a single polygon of one wms layer using a mouse click. After the selection, the polygon color should be changed. If you select another polygon, the previous selected polygon color is to be changed to original color.
If I select a polygon of one wms layer, I want to get the
NAME
of the selected polygon as an alert.layer = new OpenLayers.Layer.WMS(
"Layer", "http://********:8080/geoserver/POC/wms",
{ LAYERS: 'POC:CIRCLE_VIEW', STYLES: '', wrapDateLine: true, format: format, transparent:true }, { singleTile: true, ratio: 1, isBaseLayer: false, yx : {'EPSG:42106' : false} } );
`
I added four layers in this way..
var infoControls = {
click: new OpenLayers.Control.WMSGetFeatureInfo({
url: 'http://********:8080/geoserver/POC/wms',
title: 'Details',
layers: [layer,layer2,layer3,layer4],
queryVisible: true
}),
hover: new OpenLayers.Control.WMSGetFeatureInfo({
url: 'http://********:8080/geoserver/POC/wms',
title: 'Details',
layers: [layer,layer2,layer3,layer4],
hover: true,
queryVisible: true
})
};
for (var i in infoControls)
{
infoControls[i].events.register("getfeatureinfo", this, showInfo);
map.addControl(infoControls[i]);
}
infoControls.click.activate();
function showInfo(evt) {
if (evt.features && evt.features.length) {
highlightLayer.destroyFeatures();
highlightLayer.addFeatures(evt.features);
highlightLayer.redraw();
} else {
highlightLayer.destroyFeatures();
highlightLayer.addFeatures(evt.features);
highlightLayer.redraw();
document.getElementById('responseText').innerHTML = evt.text;
}
}
In this I am showing attribute data of selected polygon.