Zeigen Sie einen beweglichen Marker auf der Karte

7

Ich versuche, einen Marker zu bewegen ( nicht verschwinden und wieder auftauchen ), wenn sich ein Fahrzeug auf der Straße bewegt.

Ich habe zwei Werte von latLng und möchte den Marker zwischen den beiden bewegen, bis der nächste Punkt vom Fahrzeug gesendet wird. Und dann wiederhole den Vorgang noch einmal.

Was ich versucht habe: [Das ist kein sehr effizienter Weg, ich weiß]

Mein Gedanke war, das oben genannte mit der Technik in den folgenden Punkten umzusetzen:

1) Zeichnen Sie eine Linie zwischen den beiden.

2) Holen Sie sich die latLng von jedem Punkt auf 1/10 Bruchteil der Polylinie.

3) Markieren Sie die 10 Punkte auf der Karte zusammen mit der Polylinie.

Hier ist mein Code:

%Vor%

Probleme aufgetreten:

1) Der Marker wird nicht auf der Karte angezeigt, da der Vorgang des Zeichnens und Entfernens des Markers so schnell ist, dass der Marker nicht auf dem Bildschirm sichtbar ist. Ich habe setTimeOut versucht, und es hilft überhaupt nicht.

2) Wenn ich dem Browser erlaube, diesen Code länger als 5 Minuten laufen zu lassen, stürzt der Browser ab.

Hinweis: Die obige Funktion wird alle 10 Sekunden mit setInterval aufgerufen.

Was kann eine bessere Lösung sein? Bitte helfen ..

    
writeToBhuwan 02.05.2013, 13:05
quelle

5 Antworten

17

Damit sich der Marker relativ ruhig bewegt, müssen Sie

drücken
  • Aktualisieren Sie mehr als jeden 1/10 Bruchteil der Polylinie (mindestens alle paar Pixel)
  • Rufen Sie die Aktualisierungsmethode häufiger auf
  • Löschen Sie die Markierung nicht und fügen Sie sie erneut hinzu

Zum Beispiel etwas wie:

%Vor%

Ich habe ein einfaches Beispiel in Ссылка gemacht, das einen Marker zeigt, der sich auf einem geraden Pfad bewegt. Wenn dies das ist, was Sie wollen, können die meisten Ihrer Code oben in Bezug auf wo entlang der Linie, die Sie sind, wiederverwendet werden (oder überprüfen Sie Ссылка )

    
jlivni 10.05.2013, 05:47
quelle
4

Sie können die marker-animate-discontinuous Bibliothek verwenden, um Marker zu erstellen Übergang von einem Ort zum anderen (anstatt wieder zu erscheinen).

Sie könnten Ihren Marker folgendermaßen initialisieren:

%Vor%

Rufen Sie einfach bei jeder neuen Fahrzeugkoordinate marker.setPosition () auf.

P.S. Ich bin der Autor der Bibliothek.

    
viskin 19.03.2015 17:36
quelle
2

Warum nicht das vorhandene Marker / MarkerImage beibehalten und setPosition () aufrufen, um es zu verschieben, entweder bei einem Timer oder wenn sich die Position ändert?

Löschen & amp; es neu zu erstellen ist es, was bewirkt, dass es blinkt / flackert und schließlich abstürzt. Wenn Sie dieselbe Instanz behalten, aber nur verschieben, sollten Sie viel besser machen.

Siehe: Marker.setPosition ()

Ссылка

    
Thomas W 06.05.2013 13:00
quelle
1

Machen Sie animierte Moving Marker auf Google Maps mit Javascript und sehen Sie sie auf Youtube.com

    
GeekOnJava 13.10.2014 12:53
quelle
0

Versuchen Sie es mit diesem Link .. Fügen Sie zuerst zwei Markierungen an den 2 Stellen hinzu, die Sie haben. Dann können Sie eine Animation zwischen den 2 Punkten mit dem Code im Link erstellen

    
Pravin Kumar 08.05.2013 12:12
quelle