防止谷歌地图标记重复

4

我不确定在谷歌地图上避免重复标记的最佳方法。我当前的设置是网站POST用户地图范围到服务器。返回与地图位置/坐标匹配的标记,但我要决定是在客户端检查重复标记(通过JavaScript循环遍历所有当前标记),还是通过循环遍历先前返回的标记只返回唯一标记?或者有没有更好的方法而不是使用循环?

1个回答

5
你需要维护一个关联数组,并以某种方式对键进行哈希,以便两个类似的标记获得相同的哈希值,就像一个ID一样。
现在,在将标记放入地图之前,您需要检查关联数组是否存在该键的条目,如果存在,则不执行任何操作,否则添加一个键并将其添加到地图中。
var markers=[];

function addMarkerToMap(markerId,prop1,prop2)
{

    if(!markers[markerId])
    {
       markers[markerId]=true;
       //code to marker to map
    }

}

如此聪明而简单。非常感谢!(这也是避免深夜编程的另一个原因) - Yuriy
由于您依赖于服务器,因此相同的哈希逻辑可以在服务器上实现,从而通过减少带宽来提高性能。 - Eric Bridger
@EricBridger,说得好。虽然如果您需要在请求之间使用无状态服务器,则客户端可能更有意义。 - Patrick Read

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接