Openlayers 添加eventListeners会使我的geoserver应用程序停止工作
我正在尝试将OpenLayers.Control.WMSGetFeatureInfo与OpenLayers.Popup.FramedCloud结合使用,以从我的地理服务器检索信息并在弹出窗口中显示它们。 这是我的代码:Openlayers 添加eventListeners会使我的geoserver应用程序停止工作,openlayers,event-listener,geoserver,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( "OpenLayer
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。一切正常。
但是我不知道如何显示弹出窗口。
在internet上,我发现了使用eventlistener的代码,但我的问题是,只要我添加了eventlistener,就无法获得映射。我在屏幕上什么也看不到。是什么导致了这个问题?
任何提示或帮助都将不胜感激
谢谢
D.语法错误和使用错误的函数来执行我想执行的操作会导致此错误。使用Firebug帮助我找到所有语法错误并消除它们