0

GML トラックのクリック イベントを Open Layers でキャッチするにはどうすればよいですか?

次のコードがあります。

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 に答える