[OpenLayers-Users] Nodelist Info not working

Arnd Wippermann arnd.wippermann at web.de
Mon Mar 10 13:33:02 EDT 2008


Hi E,
 
try OpenLayers.ProxyHost =
"http://[yourserver]/cgi-bin/proxy_openlayers.cgi?url=";, but with your
proxy-script.
 
Arnd
 
  _____  

Von: edel.banks at gmail.com [mailto:edel.banks at gmail.com] Im Auftrag von Edel
Banks
Gesendet: Sonntag, 9. März 2008 23:36
An: Arnd Wippermann; users at openlayers.org
Betreff: Re: [OpenLayers-Users] Nodelist Info not working


Arnd, 

window.open works like a charm, thank you.

Its a bit awkward for what Im trying to do though.

How or where would I declare a proxy script? One is already being used
somewhere can I just point my code to it? so I can use loadURL and have the
map and feature info on the same page.

Thanks again
E


On 09/03/2008, Arnd Wippermann <arnd.wippermann at web.de> wrote: 

Hi,

when you use OpenLayers.loadURL(url, '', this, setHTML, setHTML), you have
to declare a proxy-script. loadURL uses Ajax to the get the filecontents to
display it in your page. You can use window.open(url, "GetFeatureInfo). It
opens a new window, but you need no proxy.


Mit freundlichen Grüssen

Arnd Wippermann
http://gis.ibbeck.de/






________________________________

Von: osgisfyp at gmail.com [mailto:osgisfyp at gmail.com]
Gesendet: Sonntag, 9. März 2008 19:57
An: arnd.wippermann at web.de; users at openlayers.org

Betreff: Re: [OpenLayers-Users] Nodelist Info not working


Just to clarify the "Or I have to do something other then create the
directory, put the files in it and go?" the statements I made earlier.

I used the geoserver gui to create a namespace, datastore and feature types.
All the created feature maps were available in MapPreview and all worked
fine.  It just seems that when I call the layers from elsewhere then the get
feature info function stops working.

I think I'm missing a configuration step or something.

Heres the html code Im using:

geoserver/data_dir/my_project_dir/myfile.html


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <title>Pedestrian Route Finder</title>
        <style type="text/css">
            #map {
                width: 500px;
                height: 338px;
                border: 1px solid black;
            }
            #wrapper {
                width: 500px;
            }
            #location {
                float: right;
            }
        </style>
        <script
src="http://localhost:8080/geoserver/openlayers/OpenLayers.js"
type="text/javascript">
        </script>
        <script defer="defer" type="text/javascript">

        var map;
        var roads;
        var busLines;
        var luasLines;
        var luasStops;


        function setHTML(response) {
            document.getElementById('nodelist').innerHTML =
response.responseText;
        };

        OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
        OpenLayers.DOTS_PER_INCH = 25.4 / 0.28;

        function init(){


            var bounds = new OpenLayers.Bounds(

                305097.5401555448, 226935.368699667,        // left, bottom
                318253.033844963, 237653.04983245343        // right, top

            );


            var options = {
                controls: [],
                maxExtent: bounds,
                maxResolution: 39.6698972242898,
                projection: "EPSG:29900",
                units: 'm'
            };


            map = new OpenLayers.Map('map', options);




            // setup single layer
            roads = new OpenLayers.Layer.WMS(
                "pedestrianRouteFinder:required_roads - Untiled",
"http://localhost:8080/geoserver/wms",
                {
                    height: '652',
                    width: '800',
                    layers: 'pedestrianRouteFinder:required_roads',
                    styles: 'required_roads_style',
                    srs: 'EPSG:29900',
                    format: 'image/png'
                },
                {isBaseLayer:true},
                {singleTile: true}
            );


            // setup single untiled layer
            busLines = new OpenLayers.Layer.WMS(
                "pedestrianRouteFinder:bus_lines - Untiled",
"http://localhost:8080/geoserver/wms",
                {
                    height: '652',
                    width: '800',
                    layers: 'pedestrianRouteFinder:bus_lines',
                    srs: 'EPSG:29900',
                    format: 'image/png',
                    transparent:true
                },
                {isBaseLayer:false, opacity:1},
                {singleTile: true}
            );



            // setup single untiled layer
            luasLines = new OpenLayers.Layer.WMS(
                "pedestrianRouteFinder:luas_lines - Untiled",
"http://localhost:8080/geoserver/wms",
                {
                    height: '652',
                    width: '800',
                    layers: 'pedestrianRouteFinder:luas_lines',
                    srs: 'EPSG:29900',
                    format: 'image/png',
                    transparent:true
                },
                {isBaseLayer:false, opacity:1},
                {singleTile: true}
            );



            // setup single untiled layer
            luasStops = new OpenLayers.Layer.WMS(
                "pedestrianRouteFinder:luas_stops_snapped - Untiled",
"http://localhost:8080/geoserver/wms",
                {
                    height: '652',
                    width: '800',
                    layers: 'pedestrianRouteFinder:luas_stops_snapped',
                    srs: 'EPSG:29900',
                    format: 'image/png',
                    transparent:true
                },
                {isBaseLayer:false, opacity:1},
                {singleTile: true}
            );


            map.addLayers([roads, busLines, luasLines, luasStops]);

            // setup controls and initial zooms
            map.addControl(new OpenLayers.Control.PanZoomBar());
            map.addControl(new OpenLayers.Control.Navigation());
            map.addControl(new OpenLayers.Control.Scale($('scale')));
            map.addControl(new OpenLayers.Control.MousePosition({element:
$('location')}));
            map.addControl(new OpenLayers.Control.LayerSwitcher());


            map.zoomToExtent(bounds);



            // support GetFeatureInfo
            map.events.register('click', map, function (e) {
                document.getElementById('nodelist').innerHTML = "Loading...
please wait...";
                var url =  map.layers[0].getFullRequestString(
                    {
                        REQUEST: "GetFeatureInfo",
                        EXCEPTIONS: "application/vnd.ogc.se_xml",
                        BBOX: map.getExtent().toBBOX(),
                        X: e.xy.x,
                        Y: e.xy.y,
                        INFO_FORMAT: 'text/html',
                        QUERY_LAYERS: map.layers[0].params.LAYERS,
                        FEATURE_COUNT: 50,
                        WIDTH: map.size.w,
                        HEIGHT: map.size.h
                    },
                    "http://localhost:8080/geoserver/wms"
                );
                OpenLayers.loadURL(url, '', this, setHTML, setHTML);
                OpenLayers.Event.stop(e);
            });
        }
        </script>

    </head>
    <body onload="init()">
        <div id="map"></div>
        <div id="wrapper">
            <div id="location"></div>
            <div id="scale"></div>
        </div>
        <div id="nodelist">Click on the map to get feature info</div>

    </body>
</html>



Thanks for the help




On 09/03/2008, Edel Banks <edel.banks at gmail.com> wrote:



        ---------- Forwarded message ----------
        From: Edel Banks <edel.banks at gmail.com>
        Date: 9 Mar 2008 18:12
        Subject: Re: [OpenLayers-Users] Nodelist Info not working
        To: Arnd Wippermann <arnd.wippermann at web.de>, users at openlayers.org

        Arnd thanks for the reply, tried using
map.layers[2].getFullRequestString and map.layers[2].params.LAYERS as you
suggested but still get "Loading... please wait..."

        I have an idea of what the problem is but not how to fix it.

        I copied the source code from the openlayers tiger-ny example saved
it as my own html file in my project directory in data_dir/.  My intention
was to make one change at a time to see if, when the get feature info
function would stop working to identify the issue.  But the first time I
opened the file without any changes it didn't work, the "Loading... please
wait..." message was displayed when a feature is clicked.

        Also, when the original tiger-ny is being called the url has a lot
of information in it:

http://localhost:8080/geoserver/wms?bbox=-74.047185,40.679648,-73.907005,40.
882078&styles=&Format=application/openlayers&request=GetMap&layers=tiger-ny&
width=431&height=550&srs=EPSG:4326

        I recognise all of this information, since some of it is specified
in the html page

        The url is the only thing that is different. Is their something that
needs to be added to the copied code to get the wms query working?

        Or maybe my project directory structure in geoserver is incorrect?
        geoserver/data_dir/project_dir/copied_tiger-ty.html

        Or I have to do something other then create the directory, put the
files in it and go?

        Thanks
        E




        On 09/03/2008, Arnd Wippermann <arnd.wippermann at web.de> wrote:

                Hi,

                $('layers')
                map.layers[0] is not the layer of the query. Try it with
map.layers[2].

                map.layers[2].getFullRequestString
                map.layers[2].params.LAYERS

                Mit freundlichen Grüssen

                Arnd Wippermann
                http://gis.ibbeck.de/



                -----Ursprüngliche Nachricht-----
                Von: users-bounces at openlayers.org
[mailto:users-bounces at openlayers.org] Im
                Auftrag von osgis
                Gesendet: Sonntag, 9. März 2008 15:50
                An: users at openlayers.org
                Betreff: Re: [OpenLayers-Users] Nodelist Info not working



                Hi Chris1211,

                I'm having the same problem.  I've tried changing the

                var url =  map.layers[0].getFullRequestString(
                ...
                QUERY_LAYERS: map.layers[0].params.LAYERS,

                To:
                var url =  map.layers[$('layers')].getFullRequestString(
                ...
                QUERY_LAYERS: map.layers[$('layers')].params.LAYERS,

                And:
                var url =  map.layers[$('layer')].getFullRequestString(
                ...
                QUERY_LAYERS: map.layers[$('layer')].params.LAYERS,


                Still no joy :(

                If anyone has any suggestions they'd be much appreciated.


                chris1211 wrote:
                >
                > I am trying to get the feature info from my map that has
multi layers
                > and uses the layer switcher but all i get it a please wait
the layer i
                > need to quarry is the Panels layer can some one please
help. thanks
                > function init(){  var bounds = new
                >
OpenLayers.Bounds(-88.55546395,36.1137137,-87.98201304999999,36.5199723);

                >  map = new OpenLayers.Map('map', { controls: [] });
                >               map.addControl(new
OpenLayers.Control.PanZoomBar());
                >               map.addControl(new
OpenLayers.Control.MouseToolbar());
                >
                >
                >           // support GetFeatureInfo
                >           map.events.register('click', map, function (e) {
                >
OpenLayers.Util.getElement('nodelist').innerHTML = "Loading...
                > please wait...";
                >             var url =
map.layers[0].getFullRequestString({
                >                             REQUEST: "GetFeatureInfo",
                >                             EXCEPTIONS:
"application/vnd.ogc.se_xml",
                >                             BBOX:
map.getExtent().toBBOX(),
                >                             X: e.xy.x,
                >                             Y: e.xy.y,
                >                             INFO_FORMAT: 'text/html',
                >                             QUERY_LAYERS:
map.layers[0].params.LAYERS,
                >                             FEATURE_COUNT: 50,
                >                             layers: 'Panels',
                >                             styles: '',
                >                             srs: 'EPSG:4326',
                >                             WIDTH: map.size.w,
                >                             HEIGHT: map.size.h},
                >
                >
"http://hazards.fema.gov/wmsconnector/wmsconnector/Servlet/flood"
                >                             );
                >             OpenLayers.loadURL(url, '', this, setHTML,
setHTML);
                >             Event.stop(e);
                >       });
                >
                >
                >             map.addControl(new
                >
OpenLayers.Control.LayerSwitcher({'div':OpenLayers.Util.getElement('la
                > yerswitcher')}));
                >
                >           var hctiger_wms = new OpenLayers.Layer.WMS(
"OpenLayers WMS",
                >                 "http://13.0.0.150:8080/geoserver/wms",
                >                 {layers: 'District 9 Homeland'},
                > {'displayInLayerSwitcher':false} );
                >
                >             var zone_wms = new OpenLayers.Layer.WMS( "FEMA
Flood
                > Zones",
                >
                >
"http://hazards.fema.gov/wmsconnector/wmsconnector/Servlet/flood",
                >                 {layers: "Flood_Hazard_Zones",
transparent: "true",
                > format: "image/png" });
                >      map.addLayer(zone_wms);
                >
                >             var panels_wms = new OpenLayers.Layer.WMS(
"FEMA DFIRM
                > Panels",
                >
                >
"http://hazards.fema.gov/wmsconnector/wmsconnector/Servlet/flood",
                >                 {layers: "Panels", transparent: "true",
format:
                > "image/png" });
                >
                >           var precip_wms = new OpenLayers.Layer.WMS(
"Total Storm
                > Precip",
                >
                >
"http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/ntp.cgi?",
                >                 {layers: "nexrad_stormtotal_precip",
transparent:
                > "true",
                > format: "image/png" },
                >               {isBaseLayer: false, opacity: 0.5});
                >
                >               map.addLayer(precip_wms);
                >
                >        var nexrad_wms = new OpenLayers.Layer.WMS( "Current
Nexrad Radar",
                >
                >
"http://mesonet.agron.iastate.edu/cgi-bin/wms/nexrad/n0r.cgi?",
                >                 {layers: "nexrad-n0r-m05min", transparent:
"true", format:
                > "image/png" },
                >               {isBaseLayer: false, opacity: 0.5});
                >
                >               map.addLayer(nexrad_wms);
                >
                >        var polywarn_wms = new OpenLayers.Layer.WMS( "NWS
Polygon
                Warnings",
                >
                >
"http://mesonet.agron.iastate.edu/cgi-bin/wms/us/wwa.cgi?",
                >                 {layers: "warnings_p", transparent:
"true", format:
                > "image/png" });
                >
                >         map.addLayer(polywarn_wms);
                >
                >   var zone = new OpenLayers.Layer.GML("Alert Zone Area",
"zone.kml",
                > {format: OpenLayers.Format.KML});
                > map.addLayer(zone)
                >
                >       zone_wms.setVisibility(true);
                >         panels_wms.setVisibility(false);
                >       precip_wms.setVisibility(false);
                >       nexrad_wms.setVisibility(false);
                >       zone.setVisibility(true);
                >
                > map.addLayers([hctiger_wms, zone_wms,
                > panels_wms,precip_wms,nexrad_wms,polywarn_wms,zone]);
                > map.setCenter(new OpenLayers.LonLat(-88.328666,36.301788),
11);
                >
                >         }
                >     </script>
                > <title>Henry Co. EMA</title></head>
                > <body onLoad="init()">
                >   <h3 class="style2">Henry County EMA - Map Services
Server </h3>
                >   <div id="layerswitcher" style="float:top; width:
20em;"></div>
                >     <div id="map"></div>
                >     <div id="docs">
                >       <p>Info and Desc.</p>
                >     </div>
                >  <div id="nodelist">Click on the map to get feature
infos</div>
                > </body> </html>
                >

                --
                View this message in context:

http://www.nabble.com/Nodelist-Info-not-working-tp14975579p15933774.html
                Sent from the OpenLayers Users mailing list archive at
Nabble.com.

                _______________________________________________
                Users mailing list
                Users at openlayers.org
                http://openlayers.org/mailman/listinfo/users









-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20080310/c40726c8/attachment.html


More information about the Users mailing list