Ich mache eine Anwendung, die den Standort und den Weg eines Benutzers in Echtzeit aktualisiert und auf einer Google-Karte anzeigt. Ich habe eine Funktionalität, die es ermöglicht, mehrere Benutzer gleichzeitig zu verfolgen, indem ich ein Objekt verwende, das jede Sekunde aktualisiert wird.
Wenn ein Benutzer eine Taste in der Android-App drückt, werden die Koordinaten an eine Datenbank gesendet, und jedes Mal, wenn sich der Standort ändert, wird eine Markierung auf der Karte aktualisiert (und eine Polylinie gebildet).
Da ich mehrere Benutzer habe, sende ich eine eindeutige und zufällig generierte alphanumerische Zeichenfolge, damit ich für jeden Benutzer einen individuellen Pfad anzeigen kann. Wenn das JS diese Daten aus der Datenbank abruft, prüft es, ob der Benutzer existiert, und wenn nicht, erstellt es einen neuen Schlüssel, dessen Wert eine Liste ist. Es würde etwa so aussehen:
loc = {f096012e-2497-485d-8adb-7ec0b9352c52: [new google.maps.LatLng(39, -86),
new google.maps.LatLng(38, -87),
new google.maps.LatLng(37, -88)],
44ed0662-1a9e-4c0e-9920-106258dcc3e7: [new google.maps.LatLng(40, -83),
new google.maps.LatLng(41, -82),
new google.maps.LatLng(42, -81)]}
Was ich tue, ist das Speichern einer Liste von Koordinaten als Wert des Schlüssels, der die ID des Benutzers ist. Mein Programm aktualisiert diese Liste jedes Mal, wenn der Standort geändert wird, indem es der Liste hinzugefügt wird (dies funktioniert ordnungsgemäß).
Ich muss den Standort der Markierung jedes Mal aktualisieren, wenn sich der Standort ändert. Ich möchte dies tun, indem ich das letzte Element im Array auswähle, da dies der letzte bekannte Standort wäre. Im Moment wird jedes Mal, wenn der Standort geändert wird, eine neue Markierung zur Karte hinzugefügt (jeder der Punkte im Beispiel würde eine Markierung an diesem Standort anzeigen), sodass weiterhin Markierungen hinzugefügt werden.
Ich würde eine "for (x in loc)`-Anweisung jedes Mal, wenn der Ort aktualisiert, um den letzten Ort aus der Liste zu greifen und verwenden, um die Markierung zu aktualisieren. Wie wähle ich dieses letzte Element aus dem Array innerhalb des Hashes aus?