... the user friendly GPS tool


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Diverse Fragen: Implementierungsdetails, Features & SW Architektur
#1
Ein etwas längerer Eintrag.

Ich habe die letzten Tage ein bisschen gesurft und mich umgeschaut, was da so alles an freier GPS Software kreucht und fleucht. Es gibt da neben Routeconverter (gpsbabel, GPSTrackanalyse.NET siehe http://www.gps-freeware.de/Beschreibung.aspx, etc.) noch einige interessante Projekte, die alle alles mögliche können. Leider gibt es kein Tool, das alles auf einmal kann, was ich gerne hätte (auch das MapSource, das ich für meinen eTrex Vista HCx habe, nicht). Noch dazu gibt es das alles in C, Java, .NET etc. etc.

Auch ist es sehr schwer mit Standardsuchbegriffen allgemeine Informationen zu finden, wie man gewissen GPS-Problemen/Fragen (Berechnung der Tracklänge, Höhenmeter ausrechnen, Fehlerrechnung dazu) zu leibe rückt. Gibt's da eigentlich irgendein gutes Buch bzw. gute Links dazu?

Ich nutze das GPS hauptsächlich zum Laufen und Radfahren quasi als Tacho und auch um längere Strecken vorauszuplanen um diese dann dann abzufahren/laufen.

Was ich gerne machen würde:
  • GPX Format zum Speichern eines oder mehrerer Tracks nutzen
  • Höhenwerte für einen/mehrere Track(s) ergänzen/ändern.
  • Mehrere Dateien laden, einen/mehrere Track(s) exportieren und dabei beliebige Tracks zu neuen zusammenfügen können (vorwärts und/oder rückwärts)
  • Ein PNG Bild eines Tracks aus der Datei mit darunter liegender OpenStreetMap-Karte erzeugen.
  • Ein PNG Bild des Höhenprofils eines Tracks erzeugen.
  • Statistik für einen Track als XML-Datei ausgeben (aus den Trackpunkten berechnet): Gesamtstrecke, Fahrzeit, Standzeit, Schnitt, Höhenmeter
  • Man könnte dann mit ein paar XSLT Stylesheets für jede Datei eine HTML-Übersichtsseite erzeugen und anderes cooles Zeugs machen.

Das alles möglichst auch automatisierbar also über Kommandozeile aufrufbar. So dass man das ganze auch fix und reproduzierbar auf alte Daten loslassen kann ohne Millionen Mausklicks.

Nehmen wir zunächst an, ich stelle mir mein eigenes Toolset zusammen (was ich eigentlich nicht will). Da wollte ich den routeconverter als Autor von Routeconverter mal ganz frech fragen, ob Du mich mit dem Kopf auf die Code-Stellen stossen könntest (u.U. auch Literaturstellen), wo ich Details finde über
  • Internes Track-Datenformat von Routeconverter
  • Konvertierung ins GPX-Format
  • Track Zeichnen über Openstreetmap
  • PNG export der Karte mit dem Track drüber
  • Abfrage der Höhendaten

Das wäre echt nett und würde mir einen Haufen Sucherei ersparen (zumal ich kein Java kann).

Wäre es nicht interessant man hätte eine Toolbox bestehend aus kleinen Executables (die erstmal alle in beliebiger Sprache implementiert sein könnten)? Diese könnten verlässlich und wohldokumentiert folgende Funktionalität bieten.
  • Konvertierungsprogramm von/nach GPX (hier böte sich eine Plug-In Architektur an, wo man die Import/Export-Filter unabhängig als Dll entwickeln und dann nachladen könnte, so dass der Konvertierer erweiterbar wird, gpsbabel Filter könnte man einfach wrappen)
  • Höhendaten setzen/ändern
  • PNG-Export des Tracks mit/ohne Openstreetmap Karte
  • Addieren von Tracks über \sum_i {Richtung}_i {TrackName}_i
  • Erstellen einer Track-Statistik als XML Datei (auch hier böte sich an, die Berechnung von weiteren Werten als Plug-In zu gestalten).

Bis auf die Konvertierungs-Programme arbeitet alles auf GPX-Dateien. Diese Toolbox könnte man dann Nutzen um die Core-Funktionalität (Backends) diverser Programme abzubilden. GUIs könnte dann jeder so schreiben wie er will.

Ein koordinertes Projekt aller freien GPS-SW-Schreiber wäre IMHO das allercoolste.

Geben tut es sowas nicht schon, oder?
Reply
#2
(10.09.2009, 21:19)tk_ Wrote: Auch ist es sehr schwer mit Standardsuchbegriffen allgemeine Informationen zu finden, wie man gewissen GPS-Problemen/Fragen (Berechnung der Tracklänge, Höhenmeter ausrechnen, Fehlerrechnung dazu) zu leibe rückt. Gibt's da eigentlich irgendein gutes Buch bzw. gute Links dazu?

Wikipedia ist ein guter Startpunkt und folgendes Startpunkte zum Lesen:
Oder wenn Du Java lesen magst die Klassen Conversion und Bearing aus RouteConverter Shy
--
Christian
Reply
#3
(10.09.2009, 21:19)tk_ Wrote: Was ich gerne machen würde:
  • GPX Format zum Speichern eines oder mehrerer Tracks nutzen
  • Höhenwerte für einen/mehrere Track(s) ergänzen/ändern.
  • Mehrere Dateien laden, einen/mehrere Track(s) exportieren und dabei beliebige Tracks zu neuen zusammenfügen können (vorwärts und/oder rückwärts)
  • Ein PNG Bild eines Tracks aus der Datei mit darunter liegender OpenStreetMap-Karte erzeugen.
  • Ein PNG Bild des Höhenprofils eines Tracks erzeugen.
  • Statistik für einen Track als XML-Datei ausgeben (aus den Trackpunkten berechnet): Gesamtstrecke, Fahrzeit, Standzeit, Schnitt, Höhenmeter
  • Man könnte dann mit ein paar XSLT Stylesheets für jede Datei eine HTML-Übersichtsseite erzeugen und anderes cooles Zeugs machen.

Ich mache mal weiter mit Hinweisen auf den Quelltext zum Vertiefen:
Das meiste von dem, was Du vorhast, gibt es irgendwie also schon!

(10.09.2009, 21:19)tk_ Wrote: Das alles möglichst auch automatisierbar also über Kommandozeile aufrufbar. So dass man das ganze auch fix und reproduzierbar auf alte Daten loslassen kann ohne Millionen Mausklicks.

Du möchtest sehr viel Flexibilität und Automatisierung ("mach das Richtige"). Im Detail wird es da schwer, da Du immer Annahmen treffen mußt, wenn ein Programm nicht den Nutzer zurückfragen kann oder ihm die Entscheidung überläßt.
--
Christian
Reply
#4
(10.09.2009, 21:19)tk_ Wrote: Wäre es nicht interessant man hätte eine Toolbox bestehend aus kleinen Executables (die erstmal alle in beliebiger Sprache implementiert sein könnten)? Diese könnten verlässlich und wohldokumentiert folgende Funktionalität bieten. [..]

Das ist eine andere Stoßrichtung: Ich versuche mit RouteConverter die 80%-Lösung in eine Benutzungsoberfläche, die nicht so kompliziert ist, daß sie abschreckt. Deine Idee versucht die anderen 20% abzudecken, was naturgemäß viel mehr Knowhow und Einarbeitungszeit und -wille von den Nutzern erfordert. GPS Track Analyse geht in diese Richtung.

(10.09.2009, 21:19)tk_ Wrote: Ein koordinertes Projekt aller freien GPS-SW-Schreiber wäre IMHO das allercoolste.

Geben tut es sowas nicht schon, oder?

gpsbabel?

Da gibt es immer das Programmiersprachenproblem - vermeiden kann man das m.E. nicht daß man dieselben Algorithmen in der von Dir vorgeschlagenen Toolchain dann doch in allen Programmiersprachen kodiert.
  • gpsbabel und ITNConv nutzen C
  • Tyre und TrackCon weiß ich nicht
  • GPS Track Analyse nutzt C#
  • RouteConverter nutzt Java und ist das einzige OpenSource Programm
--
Christian
Reply
#5
(12.09.2009, 08:19)routeconverter Wrote: Ich mache mal weiter mit Hinweisen auf den Quelltext zum Vertiefen:
...
Das meiste von dem, was Du vorhast, gibt es irgendwie also schon!

Danke schön :-).
Der Link auf den Openstreetmap Zugriff (Mapnik rendering etc.) wäre noch schön.

(12.09.2009, 08:19)routeconverter Wrote: Du möchtest sehr viel Flexibilität und Automatisierung ("mach das Richtige"). Im Detail wird es da schwer, da Du immer Annahmen treffen mußt, wenn ein Programm nicht den Nutzer zurückfragen kann oder ihm die Entscheidung überläßt.

Ich habe hier diverse MapSource-Dateien mit jeweils ca. 50-100 Tracks drin. Wenn der "Workflow" zur Verarbeitung eines Tracks einmal steht (und jedesmal, wenn er sich ändert), dann möchte ich die zig anderen einfach in gleicher Weise behandeln können.

Interaktivität ist hier IMHO nicht sehr hilfreich. Wichtig ist jedoch, dass die Programme ein sauberes Fehler-Handling (und evtl. noch Warning-Handling) haben. Man will schon wissen, ob z.B. das Abholen der Höhendaten sauber geklappt hat.
(12.09.2009, 08:31)routeconverter Wrote:
(10.09.2009, 21:19)tk_ Wrote: Ein koordinertes Projekt aller freien GPS-SW-Schreiber wäre IMHO das allercoolste.

Geben tut es sowas nicht schon, oder?

gpsbabel?

Da gibt es immer das Programmiersprachenproblem - vermeiden kann man das m.E. nicht daß man dieselben Algorithmen in der von Dir vorgeschlagenen Toolchain dann doch in allen Programmiersprachen kodiert.
  • gpsbabel und ITNConv nutzen C
  • Tyre und TrackCon weiß ich nicht
  • GPS Track Analyse nutzt C#
  • RouteConverter nutzt Java und ist das einzige OpenSource Programm

gbsbabel ist auch GPL. Und kümmert sich ja "nur" um die Konvertierung zwischen verschiedenen Dateiformaten. Die darüber hinausgehende Funktionalität macht ja RouteConverter so interessant.

Der Vorschlag mit den Kommandozeilenprogrammen mit XML-IO hat IMHO folgende Vorteile:
  • Keine link-Abhängigkeiten zu der Funktionalität.
  • Beliebige Sprachen könnten benutzt werden um die einzelnen Programme zu implementieren.
  • GPL Programme können, ohne dass die aufrufende SW auch gleich unter GPL muss, verwendet werden.
  • IO-Daten über XML können in allen Sprachen erzeugt/gelesen werden und lassen sich auch sonst schön verarbeiten (XSLT, XSL-FO).
Reply
#6
(13.09.2009, 11:04)tk_ Wrote: gbsbabel ist auch GPL. Und kümmert sich ja "nur" um die Konvertierung zwischen verschiedenen Dateiformaten.

Nicht nur schau mal hier: Filter.
--
Christian
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)