5

I have a many polygons on my map serving through WMS from geoserver. I want to implement the task such that when the user clicks on a particular polygon , he should be directed to a html page about that polygon. Like if I click on my CSE Dept I should be directed to my cse dept home page.

Need help in achieving this...

I have followed http://lyceum.massgis.state.ma.us/wiki/doku.php?id=generate_imagemap as but when I try "http://localhost:8080/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers=IITKanpur:halls&styles=iitk_halllinks&bbox=80.226,26.504,80.235,26.512&width=512&height=455&srs=EPSG:4326&format=text/html" I am not getting anything.

My iitk_halllinks sld is :

<Rule> <Name>href</Name> <PointSymbolizer><Graphic><Size>16</Size></Graphic></PointSymbolizer> <TextSymbolizer><Label><PropertyName>halls_link</PropertyName></Label></TextSymbolizer> </Rule>

2 Answers 2

4

Use this example: http://openlayers.org/dev/examples/getfeatureinfo-popup.html

But instead of doing this:

    eventListeners: {
        getfeatureinfo: function(event) {
            map.addPopup(new OpenLayers.Popup.FramedCloud(
                "chicken", 
                map.getLonLatFromPixel(event.xy),
                null,
                event.text,
                null,
                true
            ));
        }
    }

replace the above for something like this:

eventListeners: {
    getfeatureinfo: function(event) {
        window.open("http://mydomain.com/polygoninfo.php?polygonid=" + event.feature.attributes.id, "window_name","location=1,status=1,scrollbars=1,resizable=no,width=650,height=650");
    }
}
3
  • this works for a single polgon, but I have multiple polygons in my layer Commented Jun 4, 2011 at 10:11
  • @user1795 > no, this works with one or N polygons. That's why the script is passing the id dynamically
    – simo
    Commented Jun 6, 2011 at 12:08
  • @user: like simo said, this will work with any amount of polygons. Just pass the polygon id in the URL on the click event (event.feature.attributes.id) and your polygoninfo.php page can query that ID for all of it's information.
    – CaptDragon
    Commented Jun 6, 2011 at 13:01
3

You can install the imagemap extension and follow the the example http://docs.geoserver.org/latest/en/user/extensions/imagemap.html which allows you to request the map using text/html. This will provide the ability to click on a polygon

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.