SR Office

ブログ
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を判定できる。