SR Office

ブログ
2013年7月2日

OpenLayersのMarkerにidを設定する

SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();今回も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を判定できる。