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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Gesendet: Sonntag, 9. März 2008 19:57 An: [EMAIL PROTECTED]; [email protected] 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 <[EMAIL PROTECTED]> wrote: ---------- Forwarded message ---------- From: Edel Banks <[EMAIL PROTECTED]> Date: 9 Mar 2008 18:12 Subject: Re: [OpenLayers-Users] Nodelist Info not working To: Arnd Wippermann <[EMAIL PROTECTED]>, [email protected] 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 <[EMAIL PROTECTED]> 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: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] Im Auftrag von osgis Gesendet: Sonntag, 9. März 2008 15:50 An: [email protected] 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 [email protected] http://openlayers.org/mailman/listinfo/users _______________________________________________ Users mailing list [email protected] http://openlayers.org/mailman/listinfo/users
