如何在打开的图层中捕获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曲目时触发点击事件。
我做错了什么,如何解决?
谢谢。
答案 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