Javascript 避免在谷歌地图上加载纬度和经度相同的标记

Javascript 避免在谷歌地图上加载纬度和经度相同的标记,javascript,ajax,google-maps,Javascript,Ajax,Google Maps,我想在我的地图移动时通过ajax获得marker。然而,有什么方法可以避免在谷歌地图上加载相同纬度和经度的标记?比方说,一旦加载了某个纬度和经度的标记,当地图移回该位置时,将不会第二次添加该标记。谢谢。保存一组标记,并在加载新标记之前查看,以确保它们尚未加载。添加每个新标记时,将其附加到数组中。要创建标记,必须在某个位置具有lat和long数据。在调用方法创建标记之前,请确保这组数据不包含重复项 例如,我有一个lat和long值数组,var latLong=[[1.8,2.6],[3.4,1.1

我想在我的地图移动时通过ajax获得marker。然而,有什么方法可以避免在谷歌地图上加载相同纬度和经度的标记?比方说,一旦加载了某个纬度和经度的标记,当地图移回该位置时,将不会第二次添加该标记。谢谢。

保存一组标记,并在加载新标记之前查看,以确保它们尚未加载。添加每个新标记时,将其附加到数组中。

要创建标记,必须在某个位置具有lat和long数据。在调用方法创建标记之前,请确保这组数据不包含重复项


例如,我有一个lat和long值数组,
var latLong=[[1.8,2.6],[3.4,1.1],…]。我可以遍历这个数组并删除重复项。然后将生成的数据集传递给我的标记生成器例程。

当视口正在更改并检索当前视口的新标记时,您可以删除所有标记并显示它们


如果您希望所有标记都保留在地图上,我不建议这样做,因为减速,您可以将所有新标记推送到一个数组中,并进行某种检查(如果该标记已经存在于该数组中,请不要推)。

将标记存储在对象“哈希”中然后在
lat long
上键入它

因此:

var marker_dict={},i=0,l=latLongArray.length,lat,lng;
而(i
然后,在添加新标记时,只需确保键不在
标记中


这样,您就不必在每次移动地图时循环(可能)整个阵列。

谢谢您的帮助,今天帮了我一个忙!
var marker_dict = {}, i=0, l=latLongArray.length, lat, lng;

while ( i < l ) {
    lat = latLongArray[i][0], lng = latLongArray[i][1]
    marker_dict[lat + '-' + lng] = new google.maps.Marker(
                                       new google.maps.LatLng(lat, lng)
                                   );
    i++;
}