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?

Était-ce utile?

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:

Méprise sur les options 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top