Javascript 单击OpenLayers中的GML轨迹

Javascript 单击OpenLayers中的GML轨迹,javascript,events,openlayers,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, functi

如何在开放层中捕捉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轨迹时触发click事件

我做错了什么?我该如何修复它


谢谢。

您可以使用select feature控件(它使OpenLayers能够知道如何处理事件)实现所需的功能

并包含一些选定轨迹的处理程序,例如

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

这是一个有用的

谢谢你的回答。我的问题是因为我使用了两个SelectFeature,而OpenLayers似乎不太支持这一点。如果我停用第一个SelectFeature,第二个就可以了。你肯定可以在同一张地图上有两个SelectFeature控件,我的很多地图都可以。你可能不能让它们同时激活(我从来没有想过会发生这种情况)。是的,这就是我的意思:我不能让它们同时激活。我想有一个得到“悬停”事件和一个得到“点击”事件。
function trackSelected(feature){
    alert("something here");  
}