Va bene? clearOverlays () in GMap API V2 a Google Maps V3?
-
11-09-2019 - |
Domanda
Io uso di Google Maps API V3.
la migrazione Il mio sito GMap API V2 -> V3. ma cavata perché ho usato le clearOverlays () per eliminare un oggetto esistente contemporaneamente dallo V2, ed eliminato un oggetto in quanto era stata abolita in V3 individualmente.
V2
map.clearOverlays();
V3
map.set_visible(false);
popup.close();
è OK? o altre soluzioni?
Soluzione
non riuscivo a trovare nulla nel riferimento V3 che esplicitamente cancellare le sovrapposizioni create sulla mappa e ho potuto't trovare nessuna esempi di codice che fanno questo sia.
Credo che sia importante sottolineare l'API V3 è un rilascio molto presto sviluppatore e contiene solo un molto di base insieme di caratteristiche. È del tutto possibile che semplicemente non hanno avuto modo di questa funzionalità ancora. Se si sta lavorando su un sistema live, vi consiglio di bastone con V2 fino V3 è più maturo.
C'è un post sul gruppo degli sviluppatori, che pone la domanda di come l'API deve essere usato con una risposta molto utile al capo prodotto V3:
EDIT:
OK, sembra che questa funzionalità non è presente l'API deliberatamente al fine di mantenere la caratteristica leggerezza. Si dovrebbe tenere traccia del tuo overlay oggetti stessi e chiamare:
object.set_map(null);
per rimuoverli.
Altri suggerimenti
Ecco quello che faccio:
creare una matrice vuota letterale, spingere i marcatori come li si fanno, e poi espellerli quando necessario
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();
Come Hongwei cita correttamente, la funzione viene chiamata setMap (), non set_map ().
http://code.google.com/ apis / mappe / documentazione / v3 / overlays.html # NascondiMostra
Il problema è che setMap(null)
può essere lento quando si hanno molti marcatori.