0

如何在 Open Layers 中捕获 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 轨道时触发点击事件。

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

谢谢你。

4

1 回答 1

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 示例

于 2012-05-15T08:43:53.790 回答