今回も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を判定できる。