在openlayers中添加弹出信息?

时间:2011-10-09 10:42:41

标签: javascript openlayers openstreetmap

我使用此代码在地图上加载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
    }
);

1 个答案:

答案 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是地图对象。

试一试并评论您的进度或问题。