无法为通过KML数据创建的功能创建弹出窗口

时间:2012-09-25 09:57:45

标签: javascript openlayers

使用OpenLayers 2.12,我正在检索KML地图数据,其中包含来自远程服务器的地图点位置。我的Javascript成功接收到数据,创建了功能,我可以在地图上看到位置标记。

我尝试做的是在点击每个位置时创建一个弹出窗口。这是我的“特征选择”事件处理程序:

function site_selected(event) {

    var feature = event.feature;
    feature.closeBox = true;
    feature.popupClass = OpenLayers.Class(OpenLayers.Popup.FramedCloud, {
        'autoSize': true
    });
    feature.data.popupContentHTML = '<div>hello</div>';
    feature.data.overflow = "auto";
    feature.lonlat = new OpenLayers.LonLat(feature.geometry.x, feature.geometry.y);
    var popup = feature.createPopup(true);
    popup.show();
}

但是,对feature.createPopup(true)的调用将返回null。

我查看了弹出窗口示例,但这并不涉及加载KML数据。 我设置了lonlat属性,但是我仍然返回null。问题是,为什么?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

我发现使用以下代码会创建一个弹出窗口并将其显示在地图上:

popup = new OpenLayers.Popup("popup",
        new OpenLayers.LonLat(feature.geometry.x,feature.geometry.y),
        new OpenLayers.Size(200,200),
        "example popup",
        true);

map.addPopup(popup);
popup.show();