Drehen marker basierend auf der Fahrtrichtung
Ich habe einen marker in meine Google-Maps-Karte, die wie folgt aussieht:
Wenn der Benutzer fährt, ich möchte, um es zu drehen, basierend auf seiner in Fahrtrichtung. Wie kann ich das erreichen? Ich sollte wahrscheinlich mit der vorherigen Position und der aktuellen Position coords für die Berechnung, aber ich habe keine Ahnung, wie.
- Sie wissen offensichtlich, wie, die position zu finden. Vor dem ersten loop die vorherigen pos gleiche wie die aktuelle. Dann deine Schleife ständig berechnet den Abstand zwischen dem vorherigen und dem aktuellen Positionen und, wenn es ist groß genug, um gleich die Richtung mit so etwas wie
atan2(dy,dx)
an welchem Punkt setzen Sie den marker Orientierung, dann denken Sie daranprevious == current
und eine weitere Schleife. - Warum nutzen Sie nicht
bearing
desLocation
Objekt? Sie können legen Sie es auf dieCameraPosition
.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie die Nutzung von GPS für die Lokalisierung der Benutzer dann den
Location
Objekt erhalten Sie inonLocationChanged
enthält die Lager.Wenn du nur zwei Koordinaten (z.B. Sie müssen nur die Koordinaten von der network location provider), können Sie
Location.bearingTo()
zur Berechnung der Tragfähigkeit von zwei Koordinaten:Wenn Sie haben ein Lager, Sie können die rotation der marker mit
MarkerOptions.rotation()
:Müssen Sie die Anker zu der Stelle, die Sie wollen, drehen Sie sich um, und es ist auch der Punkt, Sie wollen an der position, die Sie festlegen, um den marker. (0.5, 0.5) ist die Mitte des Bildes.