bisher habe ich es geschafft zu ermitteln, in welchem Winkel 3 GPX-Koordinaten zueinander liegen.
Das möchte ich nutzen um zu berechnen an welchem Punkt (koordinate) des Tracks ein Abbiegehinweis
eingefügt werden soll.
Ich habe leider keine Idee, wie ich die Richtung (rechts/links) ermitteln soll. Vielleicht hat hier jemand einen Geistesblitz dazu?
Winkelberechnung:
Code: Alles auswählen
import math
# Beispielkoordinaten
lat1 = 51.37246756
lat2 = 51.37253485
lat3 = 51.37140207
lon1 = 6.5132431
lon2 = 6.51523736
lon3 = 6.51518346
lat12 = (lat1 + lat2)/2*0.01745
lat23 = (lat2 + lat3)/2*0.01745
lat13 = (lat1 + lat3)/2*0.01745
dx12 = 111.3 * math.cos(lat12) * (lon1 - lon2)
dy12 = 111.3 * (lat1 - lat2)
distance12 = math.sqrt(dx12 * dx12 + dy12 * dy12)
print(distance12)
dx23 = 111.3 * math.cos(lat23) * (lon2 - lon3)
dy23 = 111.3 * (lat2 - lat3)
distance13 = math.sqrt(dx23 * dx23 + dy23 * dy23)
print(distance13)
dx13 = 111.3 * math.cos(lat13) * (lon1 - lon3)
dy13 = 111.3 * (lat1 - lat3)
distance23 = math.sqrt(dx13 * dx13 + dy13 * dy13)
print(distance13)
b = distance12
a = distance23
c = distance13
winkelalpha = math.acos((b**2 + c**2 - a**2) / (2 * c * b))
winkelbetha = math.acos((a**2 + c**2 - b**2) / (2 * a * c))
winkelgamma = math.acos((a**2 + b**2 - c**2) / (2 * a * b))
print('alpha', winkelalpha / 0.01745)
print('betha', winkelbetha / 0.01745)
print('gamma',winkelgamma / 0.01745)
Vielen Dank vorab
Sven