我有一些数据,例如地名,纬度,它显示在表格中,当我单击任何行时,它会得到地名并根据此在传单地图上显示突出显示的标记。但是,当我单击另一行时,它也在地图上突出显示了标记,但是上一个仍然突出显示。我要突出显示新的而不是上一个。
当我单击表上的行并创建标记时,我已经调用了一个函数。
rowClick:function(e, row){
var cells = row.getCells();
var rid = cells[0].getData().id;
var Latt = cells[1].getData().Latitude;
var Lang = cells[2].getData().Longitude;
alert("cell clicked - (" + Latt + ", " + Lang + ") " +rid);
var marker = new L.marker([Latt, Lang]).addTo(mymap);
marker.valueOf()._icon.style.backgroundColor = 'red';
marker.bindPopup('' + rid).openPopup();
});
答案 0 :(得分:1)
在您的情况下,您不想使用bindPopup
,因为您已经注意到,它正在重用单个弹出窗口。
使用您自己的弹出窗口...
map.closePopup(myPopup); // close previous
myPopup = L.popup(...);
myPopup.setContent(...);
myPopup.setLatLng(...);
myPopup.openOn(map);
在地图上有一系列地点时,您可能需要添加一些事件监听器:如果单击列表中的某个项目后单击标记会发生什么?
您还希望在标记和表格项之间保持联系。
此处有一个完整的示例:http://franceimage.github.io/map(单击左侧工具栏中的第3个图标时会显示该表)