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