[OpenLayers-Users] Nodelist Info / GetFeatureInfo not working
Roald de Wit
list at rdewit.net
Sat May 8 19:05:47 EDT 2010
Hi,
Have you looked at the request that OL is sending to GS? The FireBug
addin for Firefox has a 'Net' tab that shows you every request that your
application sends, including what response it gets back.
That might help you find out what's wrong.
Regards, Roald
On 09/05/10 03:21, boxplot wrote:
> Hi,
>
> I use the following example of geolayers to test GetFeatureInfo (it
> works, so this can be no proxy-issue, also OpenLayers and GeoServer
> run on the same server). But when I copy the (what I think) relevant
> parts into my own code, it is not working anymore (after clicking on
> the line the text switches from "Click on the map to get feature info"
> to "Loading... please wait..." and that's it). So it would be great to
> know what the minimum requirements for this method are? And if it is
> possible to limit the output to some properties of the layer?
>
> Maybe the problem is the line
>
>> QUERY_LAYERS: map.layers[0].params.LAYERS,
>
> because I have more than one layer in my own map?
>
> Thanks for any help!
>
> Pascal
>
>> <?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>OpenLayers map preview</title>
>> <!-- Import OL CSS, auto import does not work with our minified OL.js
>> build -->
>> <link rel="stylesheet" type="text/css"
>> href="http://myownhomepage.xyz:80/geoserver/openlayers/theme/default/style.css"/>
>> <!-- Basic CSS definitions -->
>> <style type="text/css">
>> /* The map and the location bar */
>> ########### (... deleted for size reasons) ###########
>> /* Styles used by the default GetFeatureInfo output,
>> added to make IE happy */
>> table.featureInfo, table.featureInfo td,
>> table.featureInfo th {
>> border: 1px solid #ddd;
>> border-collapse: collapse;
>> margin: 0;
>> padding: 0;
>> font-size: 90%;
>> padding: .2em .1em;
>> }
>> table.featureInfo th {
>> padding: .2em .2em;
>> text-transform: uppercase;
>> font-weight: bold;
>> background: #eee;
>> }
>> table.featureInfo td {
>> background: #fff;
>> }
>> table.featureInfo tr.odd td {
>> background: #eee;
>> }
>> table.featureInfo caption {
>> text-align: left;
>> font-size: 100%;
>> font-weight: bold;
>> text-transform: uppercase;
>> padding: .2em .2em;
>> }
>> </style>
>>
>> <!-- Import OpenLayers, reduced, wms read only version -->
>> <script
>> src="http://myownhomepage.xyz:80/geoserver/openlayers/OpenLayers.js"
>> type="text/javascript">
>> </script>
>> <script type="text/javascript">
>> var map;
>> var untiled;
>> var tiled;
>> var pureCoverage = false;
>> // pink tile avoidance
>> OpenLayers.IMAGE_RELOAD_ATTEMPTS = 5;
>> // make OL compute scale according to WMS spec
>> OpenLayers.DOTS_PER_INCH = 25.4 / 0.28;
>> function init(){
>> // if this is just a coverage or a group of them,
>> disable a few items,
>> // and default to jpeg format
>> format = 'image/png';
>>
>> var bounds = new OpenLayers.Bounds(
>> 12.336, 47.699,
>> 12.354, 47.751
>> );
>>
>> var options = {
>> controls: [],
>> maxExtent: bounds,
>> maxResolution: 0.000203125,
>> projection: "EPSG:4326",
>> units: 'degrees'
>> };
>>
>> map = new OpenLayers.Map('map', options);
>>
>> // setup tiled layer
>> tiled = new OpenLayers.Layer.WMS(
>> "Layer - Tiled",
>> "http://myownhomepage.xyz:80/geoserver/wms",
>> {
>> width: '177',
>> srs: 'EPSG:4326',
>> layers: 'Workspace:Layer',
>> height: '512',
>> styles: '',
>> format: format,
>> tiled: 'true',
>> tilesOrigin : map.maxExtent.left + ',' +
>> map.maxExtent.bottom
>> },
>> {
>> buffer: 0,
>> displayOutsideMaxExtent: true
>> }
>> );
>> map.addLayer(tiled);
>>
>> // build up all controls
>> map.addControl(new OpenLayers.Control.PanZoomBar({
>> position: new OpenLayers.Pixel(2, 15)
>> }));
>> map.addControl(new OpenLayers.Control.Navigation());
>> map.addControl(new OpenLayers.Control.Scale($('scale')));
>> map.addControl(new
>> OpenLayers.Control.MousePosition({element: $('location')}));
>> map.zoomToExtent(bounds);
>> // wire up the option button
>> var options = document.getElementById("options");
>> options.onclick = toggleControlPanel;
>> // support GetFeatureInfo
>> map.events.register('click', map, function (e) {
>> document.getElementById('nodelist').innerHTML =
>> "Loading... please wait...";
>> var params = {
>> 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,
>> Srs: 'EPSG:4326',
>> Layers: 'Workspace:Layer',
>> Styles: '',
>> WIDTH: map.size.w,
>> HEIGHT: map.size.h,
>> format: format};
>>
>> OpenLayers.loadURL("http://myownhomepage.xyz:80/geoserver/wms",
>> params, this, setHTML, setHTML);
>> OpenLayers.Event.stop(e);
>> });
>> }
>> // sets the HTML provided into the nodelist element
>> function setHTML(response){
>> document.getElementById('nodelist').innerHTML =
>> response.responseText;
>> };
>> ########### (... deleted for size reasons) ###########
>> </script>
>> </head>
>> <body onload="init()">
>> <div id="toolbar" style="display: none;">
>> ########### (... deleted for size reasons) ###########
>> </div>
>> <div id="map">
>> <img id="options" title="Toggle options toolbar"
>> src="http://myownhomepage.xyz:80/geoserver/options.png"/>
>> </div>
>> <div id="wrapper">
>>
>> <div id="location">location</div>
>> <div id="scale">
>> </div>
>> </div>
>> <div id="nodelist">
>> <em>Click on the map to get feature info</em>
>> </div>
>> </body>
>>
>> </html>
>
>
> _______________________________________________
> Users mailing list
> Users at openlayers.org
> http://openlayers.org/mailman/listinfo/users
>
More information about the Users
mailing list