É OK? clearOverlays () em GMap API V2 para o Google Maps API V3?
-
11-09-2019 - |
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?
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:
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.