openLayers wms弹出窗口不工作

openLayers wms弹出窗口不工作,openlayers,Openlayers,我构建了一个openLayers地图,我想实现一个弹出窗口。我关注一些谷歌创建的资源: 代码是: <script type="text/javascript"> var map; var osm; var layer; var info; function init() { var bounds = new OpenLayers.Bounds( 1160036.31025726, 7444371.480

我构建了一个openLayers地图,我想实现一个弹出窗口。我关注一些谷歌创建的资源:

代码是:

<script type="text/javascript">
   var map;
   var osm;
   var layer;
   var info;
   function init() {
         var bounds = new OpenLayers.Bounds(
                1160036.31025726, 7444371.48007091,
                1160792.70130936, 7444966.36493288
                );
         map = new OpenLayers.Map("map", {
                maxExtent: bounds,
 });
     osm =new OpenLayers.Layer.OSM({visibility: true});
     layer = new OpenLayers.Layer.WMS(
                "Working Field", "http://localhost:8080/geoserver/layer/wms",
                {
                layers: 'layer:layer',
                transparent: true,
                isBaseLayer: false
                },
                {
                sphericalMercator: true,                        
                opacity: 0.5
                }
            );


          map.addLayers([osm,layer]);
          map.zoomToExtent(bounds);
   info = new OpenLayers.Control.WMSGetFeatureInfo({
            url: "http://localhost:8080/geoserver/wms",
            //layerUrls: 'http://localhost:8080/geoserver/layer/wms',
    title: 'Identify features by clicking',
            layers: [acm],
    queryVisible: true,
    infoFormat: 'text/html',
    maxFeatures: 1,
    eventListeners: {
        getfeatureinfo: function(event) {
            if (event.text.indexOf("<table class=\"featureInfo\">") != -1){
                popup = new OpenLayers.Popup.FramedCloud(
                    "chicken", 
                    map.getLonLatFromPixel(event.xy),
                    null,
                    event.text,
                    null,
                    true
                ), {
                    autoSize: false,
                    maxSize: new OpenLayers.Size(5,5)
                };
                map.addPopup(popup);
            }
        }
    }
});
map.addControl(info);
  }
 </script>

var映射;
var-osm;
var层;
var信息;
函数init(){
var bounds=新的OpenLayers.bounds(
1160036.31025726, 7444371.48007091,
1160792.70130936, 7444966.36493288
);
map=新的OpenLayers.map(“map”{
maxExtent:bounds,
});
osm=newopenlayers.Layer.osm({visibility:true});
图层=新的OpenLayers.layer.WMS(
“工作领域”http://localhost:8080/geoserver/layer/wms",
{
图层:“图层:图层”,
透明:是的,
isBaseLayer:错误
},
{
球形计算器:正确,
不透明度:0.5
}
);
addLayers([osm,layer]);
map.zoomToExtent(边界);
info=新建OpenLayers.Control.WMSGetFeatureInfo({
url:“http://localhost:8080/geoserver/wms",
//layerUrls:'http://localhost:8080/geoserver/layer/wms',
标题:“通过单击来识别特征”,
图层:[acm],
queryVisible:是的,
infoFormat:'text/html',
主要特点:1,,
eventListeners:{
getfeatureinfo:函数(事件){
if(event.text.indexOf(“”)=-1){
popup=新建OpenLayers.popup.FramedCloud(
“鸡”,
map.getLonLatFromPixel(event.xy),
无效的
event.text,
无效的
符合事实的
), {
自动调整大小:false,
maxSize:新的OpenLayers。大小(5,5)
};
map.addPopup(弹出窗口);
}
}
}
});
map.addControl(info);
}

任何关于错误的线索都会有所帮助。谢谢

实际上层:[acm]没有定义,还有一件事是我们需要激活信息控件,如:

info.activate();

谢谢你的反馈。我用[layer]更改了[acm],并添加了info.activate();,但仍然不起作用。我认为可能是您在这一行中失败了if(event.text.indexOf(“”)。一旦检查您是否能够进入if条件。一旦尝试修改您的代码。这有助于我们调试:)该代码查看OpenLayers.Control.WMSGetFeatureInfo上是否有一些表信息,并被使用,正如制作人员所说,只为一个具有某些属性的层获取弹出窗口。