2017-05-31 1 views
-1

Lorsque je recherche un emplacement avec le code postal, je centre le googlemap avec le code postal et j'ajoute un marqueur. Quand je fais une nouvelle recherche, je supprime l'ancien marqueur.Supprimer un marqueur dans googlemap api v3

 $('body').on('blur', '#CodePostalA', function(){ 

     var zipcode = $('#CodePostalA').val(); 
     var $this = $(this); 
     var geocoder = new google.maps.Geocoder; 

      geocoder.geocode({'address': zipcode}, function(results, status) { 
       if (status == google.maps.GeocoderStatus.OK) { 
        map.setCenter(results[0].geometry.location); 
        map.setZoom(20); 

       } 

       if ($('#adresse').length > 0) { 
        newMarker = new google.maps.Marker({ 
         position: results[0].geometry.location, 
         map: map, 
         icon: new google.maps.MarkerImage(
          'images/marker-new.png', 
          null, 
          null, 
          null, 
          new google.maps.Size(36, 36) 
         ), 
         draggable: true, 

         animation: google.maps.Animation.DROP, 
        }); 



        google.maps.event.addListener(newMarker, "mouseup", function(event) { 
         var latitude = this.position.lat(); 
         var longitude = this.position.lng(); 


         geocoder.geocode({'location': this.position}, function(results, status) { 
          if (status === google.maps.GeocoderStatus.OK) { 
           if (results[1]) { 
            $('#adresse').val(results[0].formatted_address); 
           } else { 
            console.log('Aucun résulat trouvé'); 
           } 
          } else { 
           console.log('Echec géolocation: ' + status); 
          } 
         }); 
        }); 

       } 




      }); 



    }); 



    addMarkers(props, map); 
}, 300); 
+0

newMarker.setMap (null); essayer ceci avant de créer un nouveau marqueur –

+0

ok je comprends mais quand j'ajoute newMarker.setMap avant newMarker = new google.maps.Marker ({}), j'ai une erreur dans ma console => Uncaught TypeError: newMarker.setMap n'est pas une fonction – phpnewbie

+0

duplicata de [Géocodage avec l'API Google Maps - mise à jour du marqueur existant plutôt que d'en ajouter un autre] (https://stackoverflow.com/questions/12628994/geocoding-with-google-maps-api-updating-existing-marker-rather-than- add-ano) – geocodezip

Répondre

0

Gardez une trace de votre marqueur avec une variable, et quand il est temps de le supprimer, le retirer de la carte avec marker.setMap(null).

Une fois que toutes les références ont été supprimées, l'ancien objet marqueur sera collecté dans les coulisses.

Vous pouvez également envisager de réutiliser l'objet Marqueur plutôt que d'en créer un nouveau à chaque fois.