Google Map v3 automatische Aktualisierung nur für Markierungen

7

Ich verwende Google Maps V3, um einige Pins anzuzeigen. Ich möchte in der Lage sein, Marker zu aktualisieren, ohne die Position auf der Karte oder die Zoomstufe zu beeinflussen. Ich möchte, dass die Markierungen alle x Sekunden aktualisiert werden.

Wie würde ich das machen? Ich habe nicht viel Erfahrung mit jQuery / ajax.

Ein Arbeitsbeispiel meiner Karte ist unten.

Ссылка

%Vor%

Danke

    
chillers 08.02.2013, 11:20
quelle

1 Antwort

22

OK, ich habe etwas in Arbeit - größtenteils eine starke Umgestaltung Ihres ursprünglichen Codes - Sie werden verschiedene Stücke erkennen.

%Vor%

Am Ende des Codes finden Sie ein testLocs -Dataset, das die Möglichkeiten zum Hinzufügen / Entfernen / Aktualisieren von Markern nach der Anwendung des ersten Datasets demonstriert.

Ich habe den Ajax nicht vollständig getestet, aber ich habe ihn mit dem testLocs -Datensatz simuliert.

Siehe DEMO

Nach 10 Sekunden wird testLocs angewendet und Sie sehen verschiedene Änderungen an den Markierungen (und den im Infofenster angezeigten Informationen). Beachten Sie insbesondere, dass Aktualisierungsdaten nicht vollständig sein müssen - geben Sie nur die Änderungen an.

Sie müssen Ihren Server veranlassen, Folgendes zu tun:

  • Erstellen Sie den ersten Datensatz, indem Sie meinem locs Beispiel folgen.
  • gibt JSON-codierte Datasets zurück und folgt dabei dem allgemeinen Format meines Beispiels testLocs .

BEARBEITEN 1

Ich habe den gesamten clientseitigen Code enthalten, der zum Abrufen neuer Datensätze erforderlich ist. Alles, was Sie tun müssen, ist:

  • Erstellen Sie ein serverseitiges Skript (zB "get_markers.php"), das einen json-codierten Datensatz im richtigen Format (wie bereits explantiert) zurückgibt.
  • Bearbeiten Sie die Zeile url: "........", , um auf das serverseitige Skript zu verweisen, zB url: "get_markers.php" .
  • aktiviere den zyklischen Ajax-Prozess durch Auskommentieren der Zeile ajaxObj.get(); .
  • Stellen Sie sicher, dass der Codeblock "simulated ajax" auskommentiert oder entfernt wird.

BEARBEITEN 2

Ich habe einen booleschen "Verhaltensschalter" namens auto_remove hinzugefügt. Wenn dieser Wert auf "true" gesetzt ist, wird ein kleiner zusätzlicher Codeblock ausgeführt, der dazu führt, dass alle Marker für nicht gemeldete Locs entfernt werden.

Damit können Sie alle aktiven Markierungen bei jeder Iteration melden. Umzüge erfolgen automatisch, ohne dass sie aktiv gesteuert werden müssen.

Der Code, der auf { remove: true } antwortet, ist immer noch vorhanden. Daher kann (mit auto_remove auf false gesetzt) ​​das Entfernen ausdrücklich angewiesen werden, wenn Sie dies jemals tun müssen.

Aktualisierte DEMO

EDIT 3

Das PHP-Skript sollte ein Array der folgenden Form erstellen:

%Vor%

Ich bin mir nicht sicher, ob PHP mit numerischen Schlüsseln umgehen wird. Wenn nicht, dann probiere Strings, '1' , '2' usw. Es ist wahrscheinlich am sichersten, allen Schlüsseln ein alphabetisches Präfix zu geben, z. 'loc1' , 'loc2' usw. Stellen Sie sicher, dass die Schlüssel im JavaScript locs -Objekt vom selben Typ und derselben Zusammensetzung sind.

    
Beetroot-Beetroot 09.02.2013, 03:45
quelle

Tags und Links