我使用此代码在地图上加载kml文件,在本例中我使用的是OpenStreetMap
我想知道如何在点击kml(道路)时添加弹出窗口,以便显示有关它的一些信息。
var line_1 = new OpenLayers.Layer.GML(
'Line - 1',
"lines/line_1.kml",
{
visibility: true,
format: OpenLayers.Format.KML,
style:
{
strokeWidth: 4,
strokeColor: "#ff0000",
strokeOpacity: 1
},
projection: map.displayProjection
}
);
答案 0 :(得分:4)
GML图层实际上是使用GML数据实例化的Vector图层。因此,您可以了解如何使用Vector图层打开弹出窗口。你的例子就是这样做的。
他们使用选择控件并在选择功能时打开弹出窗口:
selectControl = new OpenLayers.Control.SelectFeature(polygonLayer,
{onSelect: onFeatureSelect, onUnselect: onFeatureUnselect});
您的案例中polygonLayer
代替line_1
。
创建一个方法onFeatureSelect
,在其中打开一个弹出窗口:
function onFeatureSelect(feature) {
selectedFeature = feature;
popup = new OpenLayers.Popup.FramedCloud("chicken",
feature.geometry.getBounds().getCenterLonLat(),
null,
"<div style='font-size:.8em'>Feature: " + feature.id +"<br>Area: " + feature.geometry.getArea()+"</div>",
null, true, onPopupClose);
feature.popup = popup;
map.addPopup(popup);
}
map
是地图对象。
试一试并评论您的进度或问题。