Frage

Hintergrund:

Ich arbeite mit Transportrouten und Google stellt Routenpunkte bereit, die weit genug voneinander entfernt sind, um „Formen“ zu erstellen.Dies sind die Bus-/Bahnlinien, die Sie in Google Maps sehen.

Meine Anforderung:

Die Punkte von Google sind weit genug entfernt, um gerade Linien zu erstellen.Allerdings möchte ich alle, sagen wir, alle 5 Meter einen Punkt.

Problem:

Angenommen, ich habe zwei Punkte [lat,long]:

[-33,8824219918503,151,206686052582] und [-33,8815434600467,151,206556440037]

Anhand dieser beiden Punkte kann ich den Abstand zwischen ihnen berechnen.Sagen wir der Argumentation halber, es sei 1 km.

Wir können uns also eine imaginäre gerade Linie zwischen diesen beiden Punkten vorstellen.

Wie erzeuge ich beispielsweise alle 5 Meter Koordinaten für diese imaginäre Linie?

Andere Tipps

Schritt 1 - Holen Sie sich den Gesamtabstand

Umfassende Antwort finden Sie hier: http://www.movable-type .co.uk / skripts / latlong.html

tl; dr:

Hiermit wird die Formel 'HAVERSIN' verwendet, um den Großen Kreis zu berechnen Abstand zwischen zwei Punkten - das heißt, die kürzeste Entfernung über der Die Oberfläche der Erde - den Abstand "As-the-Crow-Fliegen" zwischen dem Punkte (ignorieren Sie natürlich alle Hügel!).

generasacodicetagpre.

Schritt 2 - Holen Sie sich den prozentualen Reisen.

Jetzt haben Sie die Entfernung für diese gerade Linie, Sie können dann einen Prozentsatz des Gesamtabstands für jeweils 5 Meter ausarbeiten.

Schritt 3 - Wenden Sie den an den Unterschied zwischen dem Breitengrad und Längengrad

zurückgelegten Prozentsatz an

Ermitteln Sie den Unterschied zwischen dem Startlatitude und dem letzten Breitengrad. Mit dieser Nummer multiplizieren Sie es mit dem von Ihnen zurückgelegten Prozentsatz (als Dezimalzahl). Dies kann dann wieder in den Start-Latitude hinzugefügt werden, um den aktuellen Breitengrad dieses Punktes zu finden. Wiederholen Sie den Längengrad.

Die folgende Lösung ist nicht genau das, was Sie angefordert haben, könnte aber für Ihre Zwecke ausreichend sein ...

Überprüfen Sie die offiziellen Dokumente (https://developers.google.com/maps/documentation/javascript/reference) für die interpolate Methode.Aus den Dokumenten:„Gibt den LatLng zurück, der den angegebenen Bruchteil des Weges zwischen dem Ursprungs-LatLng und dem Ziel-LatLng liegt.“

Wenn Sie also wissen, dass Ihre ursprünglichen Punkte beispielsweise 100 m voneinander entfernt sind, und Sie 0,05 als Bruch angeben, gibt die Methode alle 5 m den Breitengrad/Längengrad entlang dieser Linie zurück.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top