在单个弹出窗口中显示具有相同纬度/经度坐标的多个标记

时间:2019-03-30 04:51:07

标签: javascript leaflet

传单JS-是否可以查询?

简而言之,我想做的是:

使用最新版的Leaflet JS,我想知道是否有可能在一个位置显示多个标记,并在一个弹出窗口中显示

2 个答案:

答案 0 :(得分:1)

不,这不可能。

您应该事先对数据进行预处理,以使具有相同坐标的多个数据点折叠到相同的标记和弹出窗口中。

换句话说:遍历数据点,并针对每个数据点检查该位置是否存在标记。如果是这样,请添加数据到标记的属性或弹出窗口;如果没有,请创建一个新标记。具体算法将取决于您数据的性质。如果您的数据集很大,您可能还想使用更复杂的数据结构,例如r树。

还有一个快捷和肮脏的选项,使用marker clusters,禁用蜘蛛化,然后对群集标记的事件处理程序使用自定义代码。这与上面定义的算法几乎相同,只是标记聚类算法负责定位附近的数据点。

答案 1 :(得分:0)

我制作了一张相似的地图,完全按照Ivan的描述,我使用了markerCluster插件,并在cluster click上禁用了spiderfy。然后,我使用“用于集群标记的事件处理程序的自定义代码”在一个外部div中显示多个标记的数据。

可以找到一个示例here

还有一本教程,它准确地描述了您正在寻找的here,同时也使用了markerCluster js

希望它也可以帮助其他人!