Google Maps API | Kilometerberechnung

Lil-rich

Erfahrenes Mitglied
Hallo,

ich bräuchte Hilfe mit der Google Maps API.

Und zwar will ich im Prinzip nur auf eine Straße zum Punkt "Kilometer X" navigieren. Sprich ich habe eine Bundesstraße ohne Hausnummern o.Ä. und will dort zu Kilometer 12,5 navigieren.
Nun habe ich das Problem, dass Google die Kilometerdaten nicht einpflegt und ich somit keine direkte Route mit der API starten kann.

Ich kenne die Koordinaten von Start und Endpunkt der Strecke (bzw. des Kilometrierungsblocks) und habe damit eine Route von zB 200KM. Bei 0 KM ist der Punkt Bundestraße Kilometer 0, bei 200 KM natürlich der Punkt Bundestraße Kilometer 200.
Mein Ansatz war nun, einen beliebigen Punkt auf dieser Route herzunehmen, die Kilometer zu Berechnen und dann nach der Methode der kleinen Schritte einen Näherungspunkt zu bestimmen und zu den Koordinaten diese Punktes zu navigieren.
Noch schicker wäre es natürlich, wenn man direkt einen Punkt auf der Route nach X Kilometern auswählen und die Koordinaten zurückgeben lassen könnte.

Ich finde dazu aber leider nicht viel in der Dokumentation der API (finde mich da leider auch nicht so gut zurecht) und wollte deswegen mal fragen, ob einer von euch vielleicht weiß, OB das so geht und eventuell auch wie?!

Würde mich sehr freuen, wenn mir jemand helfen könnte!
Vielen Dank!
 
Zuletzt bearbeitet:
Ich nehme mal an du lässt die Route momentan mittels DirectionsService().route(..) berechnen und kriegst als Antwort ein DirectionsResult Objekt welches du einfach an ein DirectionsRenderer Objekt zum Darstellen übergibst.

Im DirectionsResult Objekt ist jedoch auch die Komplette Route mit Wegpunkten enthalten.
(-> response.routes[0].overview_path).

Jetzt brauchst nur noch durchs Array zu Stepen und die Distanzen aufzuaddieren bis du bei der Kilometerzahl bist, die du Anzeigen möchtest und berechnest beim letzeren die genaue Position. Dafür sollte dir die Geometry Bibliothek behilflich sein.
 
Das hört sich genau nach dem an, was ich brauche! Vielen Dank dafür!
Werde ich heute Abend direkt testen!
 
Zurück