... the user friendly GPS tool


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Track Aufzeichnung in eine Route konvertieren
#1
Hi Administrator,

erst einmal vorne weg, der RouteConverter ist ein tolles Programm und das erste Programm mit dem ich meine aufgezeichneten Tracks vom Navi (iGO) später auf dem Rechner angezeigt bekomme.

Jetzt kann ich als Motorradfahrer mir die gefahrenen Touren später am Rechner anschauen und in ein anderes Format konvertieren. Dabei werden bei der Trackaufzeichnung jede Menge Daten aufgezeichnet, z.B. eine Tagestour mit 15000 Poi´s, diese gilt es jetzt zu reduzieren, aber wie. In eurem Programm kann man die Poi´s nur über Entfernungen entfernen. Ich habe mir selber auch schon ein Programm gebastelt, mit dem man die Rohdaten einer Track-Aufzeichnung reduzieren kann. Die erste Idee war, über die Richtung einer Bewegung und einer Toleranz ( z.B. 5°) die Poi´s zu reduzieren. Ergebnis war schon sehr gut und nur noch 1/6 groß, aber immer noch zu groß für den Motorradtourenplaner. Der zweite Einfall war über die Geschwindigkeit die Poi`s zu kürzen. Jetzt berechne ich die Geschwindigkeit und immer wenn sich die Geschwindigkeit auf über 50 km/h beschleunigt, wird ein Poi gespeichert ( nach jedem Abzweig wird beschleunigt). Jetzt bleiben von den 15000 Poi`s nur noch 94 Poi`s übrig.

Vielleicht hilft euch die Information weiter, um das Programm noch besser zu machen.

Einen kleinen Fehler habe ich entdeckt und zwar kann man den Typ Track im Pulldown-Menü nicht direkt auf Route umstellen, sondern erst auf Wegepunkte und dann mit der Pfeiltaste zweimal nach oben.

Für den Motorradtourenplaner *.bcr musste ich unter [DESCRIPTION] einige Änderungen vornehmen, damit der Start und Zielort angezeigt wurden.

PS.: Ich selber Programmiere unter .NET.
Gruß
Harri
Reply
#2
RS955 Wrote:In eurem Programm kann man die Poi´s nur über Entfernungen entfernen.

Und grobschlächtig "Alle bis auf jeden X." ;-)

RS955 Wrote:Ich habe mir selber auch schon ein Programm gebastelt, mit dem man die Rohdaten einer Track-Aufzeichnung reduzieren kann. Die erste Idee war, über die Richtung einer Bewegung und einer Toleranz ( z.B. 5°) die Poi´s zu reduzieren. Ergebnis war schon sehr gut und nur noch 1/6 groß, aber immer noch zu groß für den Motorradtourenplaner. Der zweite Einfall war über die Geschwindigkeit die Poi`s zu kürzen. Jetzt berechne ich die Geschwindigkeit und immer wenn sich die Geschwindigkeit auf über 50 km/h beschleunigt, wird ein Poi gespeichert ( nach jedem Abzweig wird beschleunigt). Jetzt bleiben von den 15000 Poi`s nur noch 94 Poi`s übrig.

Vielleicht hilft euch die Information weiter, um das Programm noch besser zu machen.

Danach wurde bereits einmal hier im Forum gefragt. Interessant wäre den Algorithmus zu kennen und wie Du die Winkel berechnet hast.

RS955 Wrote:Einen kleinen Fehler habe ich entdeckt und zwar kann man den Typ Track im Pulldown-Menü nicht direkt auf Route umstellen, sondern erst auf Wegepunkte und dann mit der Pfeiltaste zweimal nach oben.

Ist mir auch schon aufgefallen. Der Fehler liegt dummerweise in der Auswahlbox - bei mir im Programm kommt am Anfang kein Event an :-(

RS955 Wrote:Für den Motorradtourenplaner *.bcr musste ich unter [DESCRIPTION] einige Änderungen vornehmen, damit der Start und Zielort angezeigt wurden.

Welche? Das würde ich gerne übernehmen.

RS955 Wrote:PS.: Ich selber Programmiere unter .NET.

Kein Problem, oder? Hast Du Dir schon einmal meine Source angeschaut?
--
Christian
Reply
#3
Hallo Christian,

Die Winkelberechnung mit der Funktion:
Function calcBearing(ByVal lat1 As Double, ByVal lon1 As Double, ByVal lat2 As Double, ByVal lon2 As Double) As Double

' Input sind Breite/Laenge in Altgrad
' Der Fall lat/lon1 == lat/lon2 sollte vorher abgefangen werden,
' zB. ueber die Abfrage der Distanz, dass Bearing nur bei Distanz > 5m
' geholt wird, sonst = " - " gesetzt wird...
Dim rad_lat1 As Double
Dim rad_lon1 As Double
Dim rad_lat2 As Double
Dim rad_lon2 As Double
Dim delta_lon As Double

' $pi = 3.141592653589793238462643383279502884197;
rad_lat1 = lat1 / 180.0 * System.Math.PI
rad_lon1 = lon1 / 180.0 * System.Math.PI
rad_lat2 = lat2 / 180.0 * System.Math.PI
rad_lon2 = lon2 / 180.0 * System.Math.PI
delta_lon = rad_lon2 - rad_lon1
calcBearing = System.Math.Atan2(System.Math.Sin(delta_lon) * System.Math.Cos(rad_lat2), _
System.Math.Cos(rad_lat1) * System.Math.Sin(rad_lat2) - _
System.Math.Sin(rad_lat1) * System.Math.Cos(rad_lat2) * _
System.Math.Cos(delta_lon))
calcBearing = 180.0 * calcBearing / System.Math.PI
' Output Richtung von lat/lon1 nach lat/lon2 in Altgrad von -180 bis +180
' wenn man Output von 0 bis 360 haben moechte, kann man dies machen:
If (calcBearing < 0.0) Then
calcBearing = calcBearing + 360.0
End If
End Function

Beim Algorithmus bin ich noch einwenig am Probieren. Im Moment bin ich bei einer Abweichung der Himmelsrichtung von 40° bis 50° und die Entfernung der POi´s sollte 2 Km nicht überschreiten. Das Ergebnis ist abhängig von der Trackaufzeichnung, wieviel aufgezeichnet wird. Bei meinem Navi kann ich die Zeit, jede Sekunde, einstellen.

Zum Motorradtourenplaner in der Rubrik [DESCRIPTION] bekommt der Erste und der Letzte Eintrag einen zusätzliche Erweiterung (",,,0,").
z.B. STATION1=Position 1,,,0,
Map&Guide hat an dieser Stelle eine kleine Änderung der BCR-Datei vorgenommen. Früher war im Falk Navigator2 diese Erweiterung nicht vorhanden.

Die Rubrik [Route] braucht nicht belegt zu sein. Hier steht z.B. der Fahrzeug Type drin oder Routen nach schöner Landschaft.

So wie ich gelesen habe, hast Du aber der Motorradroutenplaner 2006/2007 auch.

Eine Trackaufzeichnung von mir.

.zip   Routenaufz. 001.zip (Size: 57.67 KB / Downloads: 668)
Gruß
Harri
Reply
#4
RS955 Wrote:Zum Motorradtourenplaner in der Rubrik [DESCRIPTION] bekommt der Erste und der Letzte Eintrag einen zusätzliche Erweiterung (",,,0,").
z.B. STATION1=Position 1,,,0,
Map&Guide hat an dieser Stelle eine kleine Änderung der BCR-Datei vorgenommen. Früher war im Falk Navigator2 diese Erweiterung nicht vorhanden.

Lesen sollte die Erweiterung die aktuelle Prerelease Version können.
--
Christian
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)