Это нормально? clearOverlays () в GMap API V2 для Google Maps API V3? - PullRequest
1 голос
/ 05 июня 2009

Я использую Google Maps API V3.

Я мигрирую Мой сайт GMap API V2 -> V3. но справился, потому что я использовал метод clearOverlays (), чтобы сразу удалить существующий объект в V2, и он удалил объект в том, что было отменено в V3 индивидуально.

V2

map.clearOverlays();

V3

map.set_visible(false);
popup.close();

это нормально? или другие решения?

Ответы [ 4 ]

7 голосов
/ 05 июня 2009

В справочнике V3 я не смог найти ничего, что явно очистило бы наложения, созданные на карте, и я не смог найти ни одного примера кода, который бы это делал.

Я думаю, что важно отметить, что API V3 является очень ранним выпуском разработчика и содержит только очень базовый набор функций. Вполне возможно, что они просто еще не достигли этой функциональности. Если вы работаете с работающей системой, я советую вам придерживаться V2, пока V3 не станет более зрелым.

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

Заблуждение о вариантах v3

EDIT:

ОК, похоже, что эта функциональность отсутствует в API намеренно, чтобы облегчить его. Вы должны сами следить за объектами наложения и звонить:

object.set_map(null);

чтобы удалить их.

5 голосов
/ 05 сентября 2009

Вот что я делаю:

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

var eviction_list = [];

function evictMarkers() {

    // clear all markers

    $(eviction_list).each(function () {
         this.set_map(null);
    });

    // reset the eviction array 
    eviction_list = [];
}

//in function adding markers
......
marker = new google.maps.Marker({
    position: results[0].geometry.location,
    map: map,
    title: elem.title
});
eviction_list.push(marker);
......

//to clear all markers
evictMarkers();
3 голосов
/ 03 января 2010

Как правильно упоминает Хонгвей, функция называется setMap (), а не set_map ().

См. http://code.google.com/apis/maps/documentation/v3/overlays.html#HideShow

1 голос
/ 18 ноября 2010

Проблема в том, что setMap(null) может быть медленным, когда у вас много маркеров.

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