如何在单张地图上突出显示标记并在表行上进行数据匹配?

时间:2019-07-10 10:20:06

标签: javascript jquery leaflet tabulator

我有一些数据,例如地名,纬度,它显示在表格中,当我单击任何行时,它会得到地名并根据此在传单地图上显示突出显示的标记。但是,当我单击另一行时,它也在地图上突出显示了标记,但是上一个仍然突出显示。我要突出显示新的而不是上一个。

当我单击表上的行并创建标记时,我已经调用了一个函数。

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();
});

1 个答案:

答案 0 :(得分:1)

在您的情况下,您不想使用bindPopup,因为您已经注意到,它正在重用单个弹出窗口。

使用您自己的弹出窗口...

map.closePopup(myPopup); // close previous

myPopup =  L.popup(...);        
myPopup.setContent(...);
myPopup.setLatLng(...);
myPopup.openOn(map);

在地图上有一系列地点时,您可能需要添加一些事件监听器:如果单击列表中的某个项目后单击标记会发生什么?

您还希望在标记和表格项之间保持联系。

此处有一个完整的示例:http://franceimage.github.io/map(单击左侧工具栏中的第3个图标时会显示该表)