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
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:
locs
Beispiel folgen. testLocs
. Ich habe den gesamten clientseitigen Code enthalten, der zum Abrufen neuer Datensätze erforderlich ist. Alles, was Sie tun müssen, ist:
url: "........",
, um auf das serverseitige Skript zu verweisen, zB url: "get_markers.php"
. ajaxObj.get();
. 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
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.