Dans Google Maps API v2, j'utilisais map.clearOverlays()
pour supprimer le marqueur et le dessiner à nouveau.
Comment puis-je faire cela en utilisant Google Maps API v3?
Merci
Voir ici pour plus de détails sur les différentes options qui s'offrent à vous, mais vous devez maintenant parcourir les marqueurs et les supprimer individuellement. Votre code devrait ressembler à ceci:
var markers = [];
function clearOverlays() {
while(markers.length) { markers.pop().setMap(null); }
markers.length = 0;
}
markers.Push(marker);
google.maps.event.addListener(marker,"click",function(){});
J'ai trouvé une autre solution et cela fonctionne très bien.
gmap.overlayMapTypes.setAt( 0, null);
tandis que gmap est votre objet de carte
Vous pouvez consulter la documentation de Google Maps, qui présente une méthode simple deleteOverLays http://code.google.com/apis/maps/documentation/javascript/overlays.html
// Deletes all markers in the array by removing references to them
function deleteOverlays() {
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
markersArray.length = 0;
}
}
Celui-ci, ça va? Je ne veux pas utiliser le .setMap (null), car je ne connais pas le meilleur moyen de lancer à nouveau polyShape.
polyShape = new google.maps.Polygon(
{
strokeColor : '#000000',
strokeOpacity : 0.3,
strokeWeight : 1,
fillColor : "#000000",
fillOpacity : 0.26,
geodesic : true
});
Ensuite, parcourez le chemin pour le supprimer.
var path = new google.maps.MVCArray;
/**
* Delete all points inside Map
*/
function clearMap()
{
//clear markers
for (var i = 0; i < markers.length; i++)
{
markers[i].setMap(null);
}
markers = [];
//clear polygon, still finding more elegant way
while (polyShape.getPath().length)
{
path.removeAt(0);
}
}
Vous pouvez trouver un bon exemple fourni par Google ici: http://code.google.com/p/gmaps-samples-v3/source/browse/trunk/clear-all-overlays/clear-all- overlays.html
Fondamentalement, l'idée est la suppression