Est-ce que c'est bon? clearOverlays () API dans GMap V2 API Google Maps V3?
-
11-09-2019 - |
Question
J'utilise l'API Google Maps V3.
J'émigre Mon site GMap API V2 -> V3. mais parce que je fait face la méthode clearOverlays () pour supprimer un objet existant à la fois dans la V2, et il a supprimé un objet dans ce qui avait été supprimé en V3 individuellement.
V2
map.clearOverlays();
V3
map.set_visible(false);
popup.close();
est-il OK? ou d'autres solutions?
La solution
Je ne pouvais pas trouver quoi que ce soit dans le V3 référence qui explicitement effacer les superpositions créées sur la carte et je could't trouver des exemples de code qui font soit.
Je pense qu'il est important de souligner l'API V3 est une version de développement très tôt et ne contient que très basique ensemble de fonctionnalités. Il est tout à fait possible qu'ils ont tout simplement pas eu à cette fonctionnalité encore. Si vous travaillez sur un système en direct, je vous suggère de coller avec V2 jusqu'à ce que V3 est plus mature.
Il y a un poste sur le groupe de développeur qui pose la question sur la façon dont l'API doit être utilisé avec une réponse très utile du gestionnaire de produit V3:
EDIT:
OK, il semble que cette fonctionnalité est absente de l'API délibérément afin de le garder léger. Vous devez garder une trace de votre superposition vous-même des objets et appeler:
object.set_map(null);
pour les supprimer.
Autres conseils
Voici ce que je fais:
créer un tableau vide littéral, pousser les marqueurs que vous les faites, puis de les expulser au besoin
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();
Hongwei mentionne correctement, la fonction est appelée setMap (), non set_map ().
Voir http://code.google.com/ apis / maps / documentation / v3 / overlays.html # MasquerVoir
Le problème est que setMap(null)
peut être lent lorsque vous avez beaucoup de marqueurs.