Избегайте загрузки маркера с той же широтой и долготой на карте Google - PullRequest
0 голосов
/ 21 декабря 2010

Я хотел бы получить маркер через ajax при движении моей карты. Тем не менее, есть ли способ избежать загрузки маркера с той же широтой и долготой на карте Google? Допустим, как только маркер для определенной широты и долготы загружен, он не будет добавлен во второй раз, когда карта вернется на место. Спасибо.

Ответы [ 4 ]

1 голос
/ 21 декабря 2010

Сохраните маркеры в объекте "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.

Таким образом, вам не нужно зацикливаться (потенциально) весь массив при каждом перемещении карты.

1 голос
/ 21 декабря 2010

Сохраните массив маркеров и посмотрите на него перед загрузкой новых маркеров, чтобы убедиться, что они еще не загружены. После добавления каждого нового маркера добавьте его в массив.

0 голосов
/ 21 декабря 2010

Вы можете удалить все маркеры при изменении окна просмотра и получить новые маркеры для текущего окна просмотра и отобразить их.

Если вы хотите, чтобы все маркеры были сохранены накарту, которую я не рекомендую из-за уменьшения скорости , вы можете поместить все маркеры новичков в массив и сделать какую-то проверку (если маркер уже существует в этом массиве,не нажимай).

0 голосов
/ 21 декабря 2010

Чтобы создать маркеры, у вас должны быть где-нибудь данные lat и long.Просто убедитесь, что этот набор данных не содержит дубликатов перед вызовом метода для создания маркера.

Например, у меня есть массив значений lat и long, var latLong = [ [1.8, 2.6], [3.4, 1.1], ...];.Я могу перебрать этот массив и удалить дубликаты.Затем передайте полученный набор данных моей подпрограмме создателя маркера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...