2013年7月2日火曜日

OpenLayersのMarkerにidを設定する

今回もOpenLayers。OpenLayers.Layer.Markersを使って、Markerを表示させる。
表示したMarkerをクリックしてイベントをキャッチするまでは前々回書いた。

今回はどのMarkerでイベントが発生したか判定する方法。
ドキュメントを見るのだが、Markerにはデータを保持できるようなプロパティはない。
しかし、OpenlayersにはいろいろなExampleがあり、それを見て自分でやり方を発見するのだ。MarkerのExampleはここにある。

ソースを見て分かったのは以下の通り。


var marker = new OpenLayers.Marker(lonLat, icon);
marker.id = uid; //ここで設定 
marker.events.register('mousedown', marker, showMessages);

Markerにidというプロパティがあり、これを使用する。
設定したidはイベント内でどのように使用するか。


showMessages = function(evt) {

    if (this.id == "uid") {
    }
    OpenLayers.Event.stop(evt);
};

this.id で判定できる。このようにしてイベントが発生したMarkerを判定できる。

1 件のコメント:

  1. 素晴らしい記事、教えてくれてありがとう!戻って私のブログに来てすることを忘れないでください。インドネシアブロガーの挨拶:)

    返信削除