获取/设置leafletjs圈标记的唯一ID

时间:2014-07-03 09:14:04

标签: javascript leaflet

我有一张带有几个标记的地图。我用这段代码构建这些标记:

var markers = {},
    lbl = 'unique';

markers[lbl] = L.circleMarker(ll, 
      { radius: 8,  
        fillColor: '#ff0000',
        color: '#00ff00',
        weight: 0,
        opacity: 1,
        fillOpacity: 0.9,
        className: 'svgMarker'
       })
  .bindLabel('This is '+lbl)
  .addTo(markerLayer)
  .addTo(map)
  .on('click', clickHandler);;

在clickHandler中我想加载一些东西,具体取决于我点击的哪个标记。为了区分它们,我有一个lbl(标签)var,它包含标记的唯一字母数字ID。

function clickHandler(event){
   //- zoom to the marker
   map.setView(ev.latlng, 16);

   //- Load the marker dependent stuff.
   // how can I pass the unique label to this function?

}

有没有办法通过鼠标事件传递唯一ID,或者是否有其他方法可以为标记提供“属性”,我可以在clickHandler中读出?

1 个答案:

答案 0 :(得分:0)

只需在标记中添加一个属性(只是javascript的东西)...你可以在事件处理程序中使用上下文“this”将其恢复

var marker = L.marker([48.8588589,2.3470599]);
marker.id = 'unique_id';
marker.addTo(map);

marker.on('click', clickHandler);

function clickHandler(event) {
     console.log(this.id);
}