JS die Google Maps API v3 Animieren Marker Zwischen den Koordinaten
Ich habe ein einfaches javascript-maps Anwendung, an der ich arbeite, die mich verpflichtet, zu animieren, die Bewegung von mehreren Markern zwischen verschiedenen Koords. Jeder marker frei zu bewegen auf Ihre eigenen und alle Markierungen werden in einem array gespeicherten Liste. Allerdings habe ich Probleme damit Sie reibungslos übergang-Standorte.
Ich habe eine Tonne von Forschung und trial/error, aber kein Glück, noch wer kein Glück mit diesem?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meine quick-and-dirty-Ansatz bezieht sich nicht auf eine Tonne der Forschung 🙁
Hier ist die demo: http://jsfiddle.net/yV6xv/4/ Klicken Sie auf einen marker zu bewegen beginnen, nachdem es angehalten wird, können Sie klicken Sie erneut, um zurück zu seinem Ausgangspunkt. Anklicken während Sie in Bewegung ist, gibt merkwürdige Ergebnisse.
Start-und Endpunkte sind bereits im
initialize()
. Die animation ist definiert durch die Aufteilung der start-und Endpunkte in 100 Segmente, und die Platzierung der marker an diese Punkte mit einem bestimmten Intervall. Also die animation mal ist fixed: Marker längere Strecken unterwegs sind "schneller" als kürzere Entfernungen.Ich nicht viel testen, ich weiß Klick auf einen bewegten marker geben unerwartete Ergebnisse (start-und Endpunkte vermissen)
Dies ist der "interessante" Teil der demo:
Können Sie marker-animieren-unauffällig Bibliothek zu machen, Marker
reibungslos den übergang von einem Ort zum anderen.
Könnten Sie initialisieren Sie Ihre marker so:
Mit diesem definiert Ihre Marke wird problemlos an eine neue position verschieben innerhalb 1 Sekunde, rufen Sie einfach den marker.setPosition().
Wenn Sie möchten, animieren Sie die Markierung hin und her, wechseln Sie einfach setPosition jede Sekunde.
P. S. ich bin der Autor der Bibliothek.
Ich bin mir nicht sicher, ob es das ist, was Sie suchen, aber ich Teile es trotzdem : ich schrieb diesen code simulieren die Bewegung eines Autos mit einer bestimmten Geschwindigkeit in km/h. Sie müssen nur geben Sie die Koordinaten für jeden Punkt, den Sie möchten, dass der marker/Auto zu gehen (dann wird es animieren, den marker zwischen den Koordinaten).
Ich geändert rcravens Antwort, um diese zu erhalten:
jsfiddle - DEMO
Beachten Sie, dass Sie brauchen, um hinzuzufügen, "geometrie" in der Bibliothek, wenn Sie google maps nutzen zu können
google.maps.geometry.spherical.computeDistanceBetween
:http://maps.google.com/maps/api/js?sensor=true&Bibliotheken=geometrie
Hoffe, es hilft!
response.routes[0].overview_path
was wäre das äquivalentcoords
in diesemanimateMarker
Methode. Hoffe, es hilft.Alternative ist die Verwendung von CSS-übergängen. Der wichtige Teil ist die Identifizierung der DIVs Google Maps ist die Verwendung für Ihre Marke (Es gibt 2 einer ist transparent für touch-Ereignisse) Die Untersuchung wurde für Sie getan und Sie wirklich nur haben, um es zu verstehen einmal.
Vollständige Beispiel finden Sie hier Sehen, wie glatt Hänsel und Gretel über die Karte bewegen! Und der übergang Zeiten verschmelzen, wenn es irgendeine Verzögerung.
Alle den code für meine Brotkrumen Ultimate Web App finden hier werden Sie hauptsächlich daran interessiert, die HandleMap.js Datei, aber es ist ein aaa_readme.txt
Hier ist ein Teil des Codes: -