添加eventListeners使我的geoserver应用程序停止工作

时间:2014-12-14 17:48:59

标签: openlayers event-listener geoserver

我正在尝试将OpenLayers.Control.WMSGetFeatureInfo与OpenLayers.Popup.FramedCloud结合使用,以从我的地理服务器中检索信息并在弹出窗口中显示它们。 这是我的代码:

    var map,wms,point;
    function load() {

        map = new OpenLayers.Map('map',{});
        wms = new OpenLayers.Layer.WMS( "OpenLayers WMS","http://vmap0.tiles.osgeo.org/wms/vmap0", {layers: 'basic'} );
        // overlay layer from geoserver
        point = new OpenLayers.Layer.WMS( "OpenLayers WMS","http://localhost:8080/geoserver/wms", {layers: 'cite:obj_geom',transparent: true},{projection: new OpenLayers.Projection("EPSG:900913")} );

        // add layers
        map.addLayers([point,wms]);
        map.zoomToExtent( 
            new OpenLayers.Bounds(36.190737, 35.353912,35.150577, 50.274810)
        );


        var infoControls = {
          click: new OpenLayers.Control.WMSGetFeatureInfo({
            url: "http://localhost:8080/geoserver/wms",
            title: 'Identify features by clicking',
            layers: [point],
            maxFeatures: 2,
            infoFormat: 'text/plain',
            queryVisible: true,
            **eventListeners: {/*
             getfeatureinfo: function(event) { 
                 map.addPopup(new OpenLayers.Popup.FramedCloud(
                     "chicken", 
                     map.getLonLatFromPixel(event.xy),
                     null,
                     event.text,
                    null,
                     true
                 )); 
             }***/
         }
        })
    }; 


    for (var i in infoControls) {
        infoControls[i].events.register("getfeatureinfo", this, showInfo);
        map.addControl(infoControls[i]);
    }

    infoControls.click.activate();
    } // end function


    function showInfo(evt) {
        alert('hello');
        console.log("Hurray!");
    }

    </script>

我已将* .php文件放在geoserver目录中,因此我不需要代理来运行它。使用firebug我可以看到,当我点击一个点时,我发出了一个请求作为响应的功能ID。一切正常。 但我无法弄清楚如何显示弹出窗口。 在互联网上,我发现使用eventlistener的代码但我的问题是,只要我添加evenlistener然后我就不会得到地图。我在屏幕上看不到任何内容。造成这个问题的原因是什么? 任何暗示或帮助都受到高度赞赏。

由于 d。

1 个答案:

答案 0 :(得分:0)

语法错误和使用错误函数的组合导致了我的错误。使用Firebug帮助我找到所有语法错误并杀死它们。