Laden Sie Marker in Google Maps API neu

8

Hier ist mein Code (der meiste Code von der API-Seite von Google).

%Vor%

Was ich einfach tun möchte, ist nur die Marker neu zu laden. Ich habe versucht, die Karte mit Initialisierungsfunktion neu zu laden, aber es hat nicht funktioniert. Dann habe ich versucht, mit setMarkers Funktion neu zu laden und immer noch kein Glück ...

Danke für Ihre Hilfe.

    
Fred 31.03.2014, 22:46
quelle

4 Antworten

22

Wenige Dinge, die Sie tun sollten / Dinge, die ich von Ihrem ursprünglichen Code geändert habe:

  1. Verwenden Sie gültige Breitengrad- / Längenkoordinaten für Ihre Marker (1121.28747820854187 ist zum Beispiel kein gültiges lng)
  2. Erstellen Sie eine globale Variable für Ihre Karte (einfacher in Ihrem Skript zu referenzieren)
  3. Erstellen Sie ein Array für Ihre Marker
  4. Ich habe Ihren Markierungen eine Markierungsanimation animation: google.maps.Animation.DROP, hinzugefügt, so dass Sie sehen können, wann sie neu geladen werden, und eine Markierungen neu laden , um die Funktion zum erneuten Laden aufzurufen.

Was Sie im Grunde tun möchten, ist:

  1. Erstellen Sie jeden Marker innerhalb der Funktion setMarkers
  2. Drücken Sie jeden Marker auf das markers -Array
  3. Wenn die Marker neu geladen werden, durchlaufen Sie Ihr Marker-Array und rufen setMap(null) auf jedem Marker auf, um es aus der Map zu entfernen
  4. Wenn Sie fertig sind, rufen Sie setMarkers erneut auf, um Ihre Marker erneut zu zeichnen

Aktualisierter Code:

%Vor%

Arbeitsbeispiel:

JSFiddle-Demo

    
MrUpsidown 16.10.2014 15:36
quelle
2

Um die Marker neu zu laden, drücken Sie sie beim Erstellen auf ein Array.

Dann erstellen Sie eine Funktion, in der Sie das Array durchlaufen und die Marker-Map als null setzen. Danach löschen Sie das Array.

Bearbeiten: Ich gehe davon aus, dass Sie ein JSON mit der folgenden Struktur auf Ihrem PHP zurückgeben werden

%Vor%

Ich nehme auch an, dass Sie jQuery verwenden werden (nur um den Ajax-Aufruf und die Json-Iteration zu vereinfachen)

%Vor%

Grundsätzlich, jetzt, alle 5 Sekunden Ihr Javascript eine Ajax Anfrage an Ihre PHP, Ihre PHP wird eine aktualisierte JSON mit den neuen Stränden, Sie werden die alten Markierungen entfernen, füllen Sie das Array mit den neuen Standorten und generieren Sie die neue Markierungen.

    
Vinicius Souza 01.04.2014 00:16
quelle
0

Dies mag nicht der anfängliche Zweifel sein, aber um die Marker und andere Komponenten der Karte zu löschen, setzen Sie kurz vor dem Laden der Karte und ihrer Komponenten:

%Vor%     
Fernando Ewald 03.05.2017 13:57
quelle
-1

Ich hoffe, dass dieser Code Ihnen helfen kann.

%Vor%     
Anand Deep Singh 01.04.2014 06:21
quelle