使用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。问题是,为什么?
答案 0 :(得分:0)
请看“popup”示例https://github.com/ccnmtl/openlayers/tree/master/openlayers/examples
行createPopup函数: https://github.com/ccnmtl/openlayers/blob/master/openlayers/examples/popupMatrix.html#L857
答案 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();