Neues Tool zur GPS Track Analyse: TrackGuru

Jetzt verstehe ich es noch weniger. :slight_smile:

Track Guru kann Tracks ohne Zeitstempel jederzeit laden und anzeigen. Nur die zeitbasierten Funktionen wie Geschwindigkeitsauswertungen entfallen dann logischerweise. Das habe ich gleichzeitig mit dem Entfernen von Zeitstempeln eingebaut, wäre ja ziemlich schräg, wenn ein Tool Einweg-Tracks erzeugen würde, die es selber nicht mehr laden kann.

Oder lautet die eigentliche Botschaft, daß das Laden ohne Zeitstempel bei Euch nicht vernünftig funktioniert?

Das Korrigieren falscher Zeitstempel wäre natürlich ein sinnvoller Anwendungsfall, da sind die Zeitunterschiede ja vorhanden. Bleibt nur wie von Dir schon geschrieben die Frage ob das nicht zu speziell für ein Tool ist, das sich auf die Fahne geschrieben hat daß es einfach und gradlinig zu bedienen sein soll.

Gut, das ist ein anderer Anwendungsfall. Für die Planung ist Track Guru ausdrücklich nicht vorgesehen (dafür habe ich Routeneditor und Navigationslösung auf der RWK oder viele ähnliche dedizierte Anwendungen), ebenso sind nicht Tracks sondern Routen für die Planung gedacht, eventuell erstellt durch Vereinfachung eines Tracks wie es auch Track Guru anbietet.

Die mit dem BRouterWebClient erstellten Routen (ohne Zeitstempel) kann ich nicht laden.

z.B:

<?xml version="1.0" encoding="UTF-8"?>
<!-- track-length = 9377 filtered ascend = 146 plain-ascend = 5 cost=13579 -->
<gpx 
 xmlns="http://www.topografix.com/GPX/1/1" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd" 
 creator="BRouter-1.4.11" version="1.1">
 <trk>
  <name>brouter_hiking-beta_0</name>
  <trkseg>
   <trkpt lon="8.779442" lat="48.915131"><ele>264.25</ele></trkpt>
   <trkpt lon="8.779253" lat="48.915086"><ele>264.5</ele></trkpt>
   <trkpt lon="8.778877" lat="48.915005"><ele>263.75</ele></trkpt>
   <trkpt lon="8.779187" lat="48.914315"><ele>270.75</ele></trkpt>
   <trkpt lon="8.779452" lat="48.913716"><ele>275.0</ele></trkpt>
   <trkpt lon="8.779735" lat="48.913066"><ele>277.75</ele></trkpt>
   <trkpt lon="8.779631" lat="48.913005"><ele>278.5</ele></trkpt>
   <trkpt lon="8.779214" lat="48.912741"><ele>282.0</ele></trkpt>
   <trkpt lon="8.778225" lat="48.912147"><ele>287.0</ele></trkpt>
   <trkpt lon="8.777714" lat="48.911853"><ele>288.75</ele></trkpt>
   <trkpt lon="8.777333" lat="48.911623"><ele>290.0</ele></trkpt>
......
......

   <trkpt lon="8.776034" lat="48.914388"><ele>267.75</ele></trkpt>
   <trkpt lon="8.776857" lat="48.914630"><ele>266.25</ele></trkpt>
   <trkpt lon="8.778359" lat="48.914909"><ele>264.25</ele></trkpt>
  </trkseg>
 </trk>
</gpx>


Diese Anforderung wurde, zumindest von mir, nie gewünscht.

Kommt denn eine Fehlermeldung, oder eine Exception in der Konsole? Das würde Nop sicherlich besser weiterhelfen.

…danke für den Hinweis! Keine Routenanzeige. Keine Fehlermeldung in der GUI

Deshalb oben der “GPX” Auszug. Wenn man da in der Mitte die Punkte entfernt kann man das zum Testen nachvollziehen.

Ich kann diese GPX Files mit anderen Tools problemlosladen Oruxmaps,Gpsprune etc.

…aber in der Konsole:


E:\MyWorkDir\_MyMapTools\Trackguru\trackguru_v081\trackguru>java -jar trackguru.
jar
java.io.IOException: javax.xml.stream.XMLStreamException: Event type START_ELEME
NT specified did not match with current parser event COMMENT
        at io.jenetics.jpx.GPX$Reader.read(GPX.java:1072)
        at io.jenetics.jpx.GPX.read(GPX.java:1820)
        at nop.gpx.track.Track.loadGPX11(Track.java:115)
        at nop.gpx.track.Track.<init>(Track.java:57)
        at nop.gpx.Controller.setSelectedTrack(Controller.java:210)
        at nop.gpx.gui.TrackLister.selectTrack(TrackLister.java:169)
        at nop.gpx.gui.TrackLister.lambda$new$2(TrackLister.java:102)
        at javax.swing.JList.fireSelectionValueChanged(Unknown Source)
        at javax.swing.JList$ListSelectionHandler.valueChanged(Unknown Source)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source
)
        at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source
)
        at javax.swing.DefaultListSelectionModel.setValueIsAdjusting(Unknown Sou
rce)
        at javax.swing.JList.setValueIsAdjusting(Unknown Source)
        at javax.swing.plaf.basic.BasicListUI$Handler.mouseReleased(Unknown Sour
ce)
        at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
        at java.awt.Component.processMouseEvent(Unknown Source)
        at javax.swing.JComponent.processMouseEvent(Unknown Source)
        at java.awt.Component.processEvent(Unknown Source)
        at java.awt.Container.processEvent(Unknown Source)
        at java.awt.Component.dispatchEventImpl(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
        at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
        at java.awt.Container.dispatchEventImpl(Unknown Source)
        at java.awt.Window.dispatchEventImpl(Unknown Source)
        at java.awt.Component.dispatchEvent(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$500(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionP
rivilege(Unknown Source)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionP
rivilege(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.awt.EventQueue$4.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionP
rivilege(Unknown Source)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: javax.xml.stream.XMLStreamException: Event type START_ELEMENT specifi
ed did not match with current parser event COMMENT
        at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.require(U
nknown Source)
        at io.jenetics.jpx.CloseableXMLStreamReader.require(CloseableXMLStreamRe
ader.java:59)
        at io.jenetics.jpx.ElemReader.read(XMLReader.java:516)
        at io.jenetics.jpx.GPX$Reader.read(GPX.java:1067)
        ... 45 more

Kann es gerade nicht testen, aber so wie ich die Exception verstehe, kommt der Parser mit dem XML-Kommentar in der zweiten Zeile nicht klar und erwartet dort eben sofort das eröffnete root gpx-Tag. Lösch doch einfach mal spasseshalber die zweite Zeile komplett

<!-- track-length = 9377 filtered ascend = 146 plain-ascend = 5 cost=13579 -->

und versuche es dann noch einmal :wink:

PS: Nop nutzt ja einen 3rd JPX Reader, und ich glaube der ist noch nicht ganz ausgereift…

OK! Dann geht es. Aber ich habe sehr viele Files wo das drin ist…

Nop hat afaik Kontakt zum Maintainer des JPX Readers…

Harald hat das Problem schon sehr gut beschrieben, das ist bereits seit einer Weile bekannt.

Der Bug ist bei JPX gemeldet aber bisher ist noch nichts passiert.

Das ist halt der Pferdefuß bei packages: Das spart viel Arbeit, da man das Rad nicht nochmal erfinden muss, aber man muss sie so nehmen, wie sie im Moment gerade sind.

Ich lese auch Tracks ein, mache das aber mit primitiven String-Funktionen und betrachte alles oberhalb des ersten -Tags als Header, egal wie kaputt (malformed) der ist. Für ein “seriöses” Tool ist das vielleicht zu brutal, aber dafür kann ich (fast) alles verarbeiten, solange die trkpt-, ele- und time-Angaben vorhanden sind.

Hallo !

Ich bin gerade über Trackguru gestolpert und wollte es mal Ausprobieren. Leider startet das Programm nicht. Ich erhalte vom Java Virtual Machine Launcher die Fehlermeldung ‘Could not find the main class. program will exit’ ??

Windows 7-64 Pro, Java 8.221.

Start durch Doppelklick oder command line macht keinen Unterschied. Hat jemand 'ne Idee ?

Update 30.07.2019: Mit Version 0.83 funktioniert nun alles. Vielen Dank. :slight_smile:

Hallo @Nop,

vor einiger Zeit hast Du auf meinen Wunsch hin eine “customMap.source” eingebaut, wo man einen eigenen KartenServer konfigurieren kann. Dafür nochmals herzlichen Dank!

Ist es eventuell möglich und machbar (zumutbar?) in einer künftigen Version, dass man einen eigenen Pfad zum Tilecache
zB. X:\MyWorkDir\xyz\GpsPrune\Karten\womisa.org
angeben kann?

Vielen Dank
Achim

Ps.: Ich habe eben auch gesehen, dass es eine neue Version 0.83 gibt. Jetzt kann ich auch meine GPX mit den Anfangskommentaren lesen.
Vielen Dank

Jain. Es wäre möglich, den obersten Ordner des Tile Caches anzugeben, aber den Rest generiert die MapViewer-Bibliothek aus der URL.

D.h. Du könntest Deinen Tilecache auf ein anderes Laufwerk schieben, aber nicht mit anderen Applikationen teilen falls es das ist worauf zu hinaus willst.

OK! Ich wollte erreichen, dass sich mehre Tools den Cache teilen. Vielen Dank für das Tool!

Windows kann seit win2000 symbolic links, damit sollte es gehen. Mit Win10 wahrscheinlich auch bequem.

Also so das der Ordner der TrackGuru erwartet nur ‘scheinbar’ dort ist sondern ein symbolic link und der in den anderen Ordner zeigt. Muß der Benutzer halt einrichten.

Richtig, damit sollte man den Pfad umbiegen können.

Und es erfordert keine Änderung in TG.

OK! Vielen Dank für den Tipp.

Ein paar Updates zum Track Guru.

Aktuell ist die V0.85. Die 0.8er Versionen bringen neben ein paar Fehlerbehebungen die Fähigkeit Tracks zu vereinfachen und zu anonymisieren. Für letzteres werden alle Zeitstempel auf ein willkürliches Startdatum umgerechnet während die Geschwindigkeiten erhalten bleiben.

Nachdem immer wieder mal User Probleme hatten die Java App zu starten, ist ganz frisch unter Windows ein Launcher hinzugekommen, der sich als normale .exe starten läßt.

Wer lieber Videos guckt als Webseiten zu lesen für den gibt es jetzt zwei Einführungsvideos zu Analyse von Tracks und Nachbearbeitung von Tracks mit Track Guru. Es werden nur die wichtigsten Features vorgestellt, die Doku zu lesen lohnt sich trotzdem noch. :slight_smile:

Hi.

Ich habe mir gerade dein Programm runtergeladen und entpackt, dann die exe Datei aufgerufen.
Danach machte es Piep, und die exe war im Quarantändeverzeichnis von Avira verschwunden.

Avira meldet: Muster HEUR/APC (Cloud) [HEUR/APC] in Datei

Spinnt mein Avira, oder hat sich da jemand bei dir eingeschlichen?

Ach so: Windows 10 Pro, neueste Version

LG … Rainer

Hab’s paranoiahalber nochmal überprüft, das EXE ist sauber. Wenn man nach der Meldung im Netz sucht, scheint es diesen Fehlalarm relativ oft zu geben.

Es ist ein kleiner, mit Nullsoft gebauter Launcher. Vielleicht regt sich der Virenscanner drüber auf, daß er runtergeladen wurde und eine andere Anwendung startet?

Tipp: Das zip File auf virustotal.com hochladen, da wird es von mehr als 50 Programmen gecheckt.

Aktuell glauben 3 der Rateprogramme dort einen Virus erkennen zu können.