2016-04-04 12 views
0

Ich möchte einen Marker aus meiner Google Map entfernen, aber ich kann es nicht funktionieren lassen. Ich finde verschiedene Antworten, die mir alle sagen, dass ich .setMap(null) auf dem Marker verwenden soll, aber ich kann nicht scheinen, dass es funktioniert.Löschen/Verschieben von Google Maps-Markierungen (jquery-ui-maps)

$map_canvas = $('#map_canvas'); 
var youreHere_Marker; 
function centerMapToAddress(address) { 
    geocoder.geocode({ 'address': address}, function(results, status) { 
     if (status == google.maps.GeocoderStatus.OK) { 
      if(typeof youreHere_Marker!=="undefined"){ 
       youreHere_Marker.setMap(null); 
      } 
      youreHere_Marker = $map_canvas.gmap('addMarker', {'position': results[0].geometry.location.lat()+','+results[0].geometry.location.lng(), 'bounds': true}); 
     } 
    }); 
} 

Ich bekomme TypeError: youreHere_Marker.setMap is not a function. Nach meinem Wissen bedeutet dies, dass die Variable youreHere_Marker nicht die Methode .setMap() hat, aber wenn ich console.log(youreHere_Marker) mache und das Objekt inspiziere, kann ich die Methode sehen.

Ich habe mehr Markierungen auf meiner Karte, über die MarkerClusterer. Diejenigen sollten unberührt bleiben

Ich habe das Gefühl, ich bin in der Nähe, könnte mir jemand in die richtige Richtung zeigen?

Edit: Ich habe auch versucht .setPosition(), gleichen Fehler. Ich gehe davon aus, dass ich die Variable falsch verwende, aber ich weiß nicht, wie ich mich richtig darauf beziehen soll.

+0

können Sie eine Geige machen? –

+0

Nicht wirklich, das ist ein größeres Projekt, das ist der relevante Teil. Dies fügt die eine Markierung hinzu, die ich entfernen möchte. – Martijn

Antwort

0

Nun, ich war die Arbeit mit Google Maps ohne jQuery, aber ich denke, (ich bin nicht sicher, aber Sie können versuchen), die Sie Ihre Markierung mit dem folgenden Code erhalten sollen:

youreHere_Marker = $map_canvas.gmap('get', 'markers')[0]; 
youreHere_Marker.setMap(null); 

I‘ M wirklich nicht sicher, dass es tun wird, was Sie wollen, aber es gibt eine Möglichkeit, dass dies funktioniert:)
Ich hoffe, dass Sie Probleme lösen werden.
Danke. :)

+0

Nicht wirklich sicher warum, aber das hat seinen Zweck erfüllt. Habe ich recht, wenn ich annehme, dass '.gmap ('get', 'markers') [0]' den zuletzt hinzugefügten Marker zurückgibt? – Martijn

+0

@Martijn Ich konnte keine Dokumente für jquery-ui-map finden, aber ich fand einige Quellen und dachte, dass gmap ('addMarker', .... den bereits erstellten Marker nicht zurückgibt, und um es zu bekommen, wir sollte eine andere Methode verwenden (wie gmap ('get', 'markers'), aber die letzte Methode gibt alle Markierungen zurück, deshalb nehmen wir einfach die erste:) –

+0

Markierte Antwort als Lösung, wenn Sie irgendeine Dokumentation finden, oder können erkläre es dir selbst genug, du wirst mehr Upvotes bekommen :) – Martijn