单击OpenLayers中的GML轨道

时间:2012-05-11 13:01:38

标签: javascript events openlayers

如何在打开的图层中捕获GML轨道上的点击事件?

我有以下代码:

var gmlTrack = new OpenLayers.Layer.GML("Track", myGpxUrl, {
    format: OpenLayers.Format.GPX,
    projection: new OpenLayers.Projection("EPSG:4326")
});

我认为解决方案是添加以下几行:

gmlTrack.events.register("click", gmlTrack, function(e){
    alert("Click on GPX track!");
});

但它不起作用。

要明确:我只希望在用户点击GPX曲目时触发点击事件。

我做错了什么,如何解决?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用选择功能控件(使OpenLayers能够知道如何处理事件)来实现您所需的功能。

    selectControl = new OpenLayers.Control.SelectFeature(
        [gmlTrack],
        {
            clickout: true, toggle: false,
            multiple: false, hover: false,
            onSelect: trackSelected
        }
    );

    map.addControl(selectControl);
    selectControl.activate();

并为trackSelected包含一些处理程序,例如

function trackSelected(feature){
    alert("something here");  
}

这是一个有用的OpenLayers example