Сохраните маркеры в объекте "hash" и введите его на lat-long
.
Таким образом:
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++;
}
Затем, когда вы добавляете новые маркеры, просто убедитесь, чточтобы убедиться, что ключ еще не находится в вашем marker_dict
.
Таким образом, вам не нужно зацикливаться (потенциально) весь массив при каждом перемещении карты.