Pergunta

Eu uso o Google Maps API V3.

migrar Meu site GMap API V2 -> V3. mas lidou porque eu usei os clearOverlays () método para excluir um objeto existente ao mesmo tempo no V2, e eliminado um objeto em que tinha sido abolida em V3 individualmente.

V2

map.clearOverlays();

V3

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

é OK? ou outras soluções?

Foi útil?

Solução

Eu não consegui encontrar nada na referência V3 que irá limpar explicitamente as sobreposições criadas no mapa e eu poderia't encontrar exemplos de código que fazer isso.

Eu penso que é importante salientar a API V3 é uma liberação desenvolvedor muito cedo e contém apenas um muito básico conjunto de funcionalidades. É bem possível que eles simplesmente não têm que essa funcionalidade ainda. Se você estiver trabalhando em um sistema vivo, eu sugiro que você ficar com V2 até V3 é mais maduro.

Há um post sobre o grupo desenvolvedor que faz a pergunta sobre como a API deve ser usado com uma resposta muito útil a partir do gerente de produto V3:

equívoco sobre v3 Opções

EDIT:

OK, parece que esta funcionalidade está em falta a partir da API deliberadamente, a fim de mantê-lo leve. Você deve manter o controle de sua sobreposição de objetos si mesmo e chamada:

object.set_map(null);

para removê-los.

Outras dicas

Aqui está o que eu faço:

criar um literal array vazio, empurrar os marcadores como você fazê-los, e, em seguida, expulsá-los quando necessário

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();

Como Hongwei menciona corretamente, a função é chamada setMap (), não set_map ().

http://code.google.com/ apis / maps / documentation / v3 / overlays.html # OcultarMostrar

O problema é que setMap(null) pode ser lento quando você tem muitos marcadores.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top