Menuekopf

Montag, 22. April 2024

FAQ zu WRPElevationChart

WRPElevationChart

WRPElevationChart ist eine sehr leichtgewichtige GPS Viewer App für Android Smartphones.

Die App ist bewusst sehr einfach gehalten und nicht mit Funktionen überladen, was einer einfachen Bedienbarkeit sehr entgegenkommen dürfte. Aber natürlich gibt es auch bei dieser App immer mal wieder die ein oder andere User-(An)frage.


Diese FAQ soll daher - zusätzlich zum offiziellen deutschprachigen Manual - eine kleine Hilfestellung, vor allem bzgl. immer wieder auftretender Fragen, sein. Eine weitere Hilfestellung wäre dann auch noch dieser englischsprachige Blogbeitrag: What can you do with WRPElevationChart (a lightweight GPS viewer app for Android)


Vorweg: Einige Fragen und Fehlerquellen lassen sich nicht vermeiden, weil jeder Programmierer von seinem spezifischen Blickwinkel beeinflusst wird und manche Fragestellungen einfach nicht auf seinem inneren Monitor hat. Andere Fragen sind vom Fragesteller wohl bewusst provokativ gehalten, (fast) jeder Entwickler wird das kennen. Ich habe jetzt einmal alles aufgeschlüsselt, was im Laufe der Zeit so an Fragen angefallen ist (auch die 'Unangenehmen' , wobei einige auch schon mal in Richtung aktives 'Trollen' gehen dürften. Letzteres könnte man ignorieren, ist aber auch ein Zeitfaktor, weil ich diese Mails/Anfragen ja erst einmal lesen muss, um den womöglichen 'Troll'-Charakter zu erkennen):

  • erstens, um dem Vorwurf entegegenzutreten, ich würde (unangenehmen) Fragen aus dem Weg gehen 
  • zweitens, um einmal zu skizzieren, mit welchen Sachverhalten man sich manchmal auseinandersetzen muss 
  • und drittens, um vielleicht zukünftig zu verhindern, dass weiterhin Anfragen bzgl. einer 'Kooperation' an mich herangetragen werden, die letztlich nur dazu dienen sollen, eine kostenlose App - gegen Bezahlung - zu vermarkten.

[Achtung]: Mitunter sind in diesem Beitrag auch einige YouTube Videos verlinkt. Ruft man diese Videos auf, so landet man direkt auf der YouTube Plattform und kann von YouTube getrackt werden! 


FAQ (Frequently Asked Questions)


Allgemeine Fragen:


Frage: Warum hat die App so einen merkwürdigen Namen?

Antwort: Weil mir anfangs kein besserer Projektname eingefallen ist und eine nachträgliche Änderung des App-Namens im Google Play Store relativ kompliziert ist. Auch macht es keinen Sinn, die App GPS Viewer XY zu nennen, weil es davon bereits genügend im Play Store gibt.
Am Rande erwähnt: alle meine eigenen im Play Store gelisteten Apps fangen derzeit mit der Wortkennung WRP an.

GPS Daten Browser
Frage: Es gibt bereits sehr viele GPS Viewer Apps. Warum soll ich gerade diese nutzen?

Antwort: Vielleicht, weil etwas Abwechslung - im Leben - manchmal gut tut :-) Ja, es gibt sehr viele dieser Apps im Google Play Store und alle sind auf ihre Weise auch sehr gut. 
Diese App wurde primär an meinen eigenen Workflow angepasst, ursprünglich stand die Browserfunktion im Mittelpunkt der Entwicklung, da ich eine Möglichkeit suchte, unkompliziert in die vielen GPS-Dateien auf meinem Smartphone hineinzuschauen. Das macht diese App sehr gut, da der GPS-Daten Browser ein Hin- und Herblättern durch die vorhandenen GPS-Dateien in einem frei zuordenbaren Verzeichnis ermöglicht. Darüber hinaus erlaubt mir diese App auch eine mobile GPS Track Analyse. Normalerweise mache ich das Zuhause auf dem PC, aber das Smartphone ist halt fast immer greifbar und daher zum schnellen Analysieren bestens geeignet.


Frage: Ich hätte die App gerne in meiner Landessprache übersetzt.

Antwort: WRPElevationChart ist derzeit in deutsch, englisch und dank eines polnischen Users auch in polnisch lokalisiert. Weitere Sprachen kann und würde ich gerne aufgreifen, allerdings müssten User die Übersetzungen kostenfrei beisteuern. Gerne könnt ihr mich anmailen, falls ihr das in Angriff nehmen wollt. Da ich mit der App aber kein Geld verdiene und es ein reines Hobbyprojekt ist, kann ich für die Übersetzungsarbeiten leider keinen Obolus entrichten. Auf Anfragen professioneller Übersetzungsbüros - die es bereits gab - werde ich daher weiterhin nicht antworten.

Wer mir bei der Übersetzung helfen will/kann, die Datei mit den englischen Strings kann hier eingesehen und heruntergeladen werden: https://www.hrmprofil.de/Down/strings_eng.xml

Frage: Die App wird als Freeware deklariert. Warum ist dann der Source Code nicht einsehbar?

Antwort: Weil Freeware nicht zwangsläufig Open Source bedeutet. Diese App nutzt einige Funktionen aus einem eigenen kommerziellen Projekt und ich kann/will den Source Code deswegen nicht offenlegen. Freeware bedeutet ja nicht zwangsläufig Open Source.
Siehe auch den Wikipedia Artikel bzgl. Freie Software vs. Freewarehttps://de.wikipedia.org/wiki/Freie_Software

Frage: Dann kommt die Nutzung dieser App für mich nicht in Frage, da ich nur Apps verwende, bei denen ich mich selbst davon überzeugen kann, dass sie sauber sind. Das geht nur bei Open Source Software!

Antwort: Die App ist frei - kostenfrei als auch werbefrei - und wird frei bleiben - da ein reines Side Projekt - bei dem ich aber, wie bereits gesagt, auch eigenen Code aus einem größeren 'kommerziellen' Projekt verwende. Insofern ist die Offenlegung des Sourcecodes auf github für mich derzeit kein Thema, das ich aufgreifen kann/will. Bei F-Droid, das mir von einem User, der diese Frage an mich herangetragen hat, empfohlen wurde, verhält es sich ähnlich. 
Mehr will/kann ich dem User derzeit nicht entgegenkommen. Wenn diese App dem ein oder anderen User hilfreich ist, so freut mich das natürlich, falls nicht, so ist das aber auch okay. Ich danke für Euer Verständnis.

Frage: Warum investierst Du soviel Zeit in dieses - wirtschaftlich betrachtet (sinnlose) - Projekt? Wo ist der Haken?

Antwort: Weil's mir Spaß macht und ich die App selbst sehr gut nutzen kann. Ob es sinnvoll ist, in die Dokumentation und in diese FAQ sonderlich viel Energie zu verschwenden, ist sicherlich eine berechtigte Frage. Dazu kann ich nur entgegnen, wenn man etwas tut, dann sollte man es schon richtig machen. Android Programmierung ist generell relativ zeitaufwendig, gerade dann, wenn man Apps im Google Play Store veröffentlicht. Dann fällt es aber auch nicht mehr groß ins Gewicht, wenn man für diese administrativen Dinge noch etwas zusätzliche Zeit aufbringen muss. Es muss halt im gesunden Rahmen bleiben.

Frage: Stichwort 'Haken', woher weiß ich denn, dass die App wirklich sauber ist und auf meinem Smartphone keine bösen Sachen macht?

Antwort: Diese Frage geht schon wieder in eine bestimmte - vorwurfsvolle - Richtung und wurde von mir bereits in der Antwort zum Thema Open Source thematisiert. Wenn ich mich wirklich für das Bereitstellen dieser App rechtfertigen soll, dann ist das für Dich einfach nicht die richtige App!

Dennoch möchte ich das Folgende noch anmerken. Auf meiner Habenseite steht vor allem meine Projektseite (https://www.hrmprofil.de/), die bereits seit Ende der 90'ziger Jahre (!) unter dieser Adresse im Netz präsent ist. Ich bin daher nicht anonym, sondern stehe mit meinem guten Ruf und meinem Namen hinter den von mir veröffentlichten Programmen und Apps (auch habe ich viele Jahre mit einigen namenhaften Firmen aus der Sportbranche zusammengearbeitet). Falls das als Legitimation für die Veröffentlichung einer App nicht ausreicht, dann kann ich es leider nicht ändern (so leid mir das auch tut)!

Frage: Wieso fordert diese App soviele unnötige Rechte ein?

Antwort: Wie bereits im Google Play Store - und an vielen weiteren Stellen - vermerkt, fordert diese App jene Rechte ein:
  • Schreib - und Leserechte [WRITE_EXTERNAL_STORAGE, READ_EXTERNAL_STORAGE]
    a) zum optionalen Speichern der Höhenprofildaten,
    b) zum Anfertigen einer optionalen Screenshot-Grafik benötigt, falls man die Teilen Funktion nutzen möchte, die nichts anderes macht, als eine Screenshot-Grafik Datei an eine andere App zu übergeben
    c) für das Cachen der Karten-Tiles (OSMDroid Library)
    d) für eine soweit möglich reibungslose Funktion des Browsermodus (im Browsermodus muss die App auf ganze Verzeichnisse zugreifen können - unter anderem auch auf den externen Speicher - sonst ergibt dieser Browsermodus nämlich keinen Sinn)

  • Standortdaten [ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION]
    Werden NUR benötigt, falls man die 'JumpTo'-Home Funktion in der Kartenansicht nutzen will, die nichts anderes macht, als die Karte auf die zuletzt bekannte Lokation zu zentrieren! Diese App beinhaltet (derzeit) KEINE GPS-Logging (Tracking) Funktionaliät!

  • Netzwerkrechte [INTERNET, ACCESS_NETWORK_STATE]
    Werden zum Herunterladen der Karten Tiles benötigt.

ACHTUNG: bei Verwendung der Kartenansicht werden DATEN (Kartenauschnitte, sogenannte Tiles) vom Internet HERUNTERGELADEN. Dies kann bei Verwendung einer mobilen Datenverbindung zu entsprechenden Kosten führen. Eine WLAN-Verbindung bzw. eine mobile Datenflat wird daher dringlichst empfohlen!

Je nach verwendeter Android Version kann man der App diese Rechte auch entziehen und je nach Anwendungsfall wird die App auch ohne diese Rechte - zumindest eingeschränkt - funktionieren. Netzwerkzugriffe sind aber zwingend, da die Karten(Tiles) über das Internet heruntergeladen* werden müssen.

* Die Kartentiles werden zwar intern gecached, sodass die App nach dem Herunterladen der Kartentiles eine Zeit lang offline genutzt werden kann. Nach einiger Zeit werden diese Cachedaten von der App aber wieder gelöscht, da die meisten Anbieter keine dauerhafte Speicherung der Tiles zulassen, sondern nur ein temporäres Cachen der Tiles gewünscht wird!

Frage: Mir gefällt die App sehr gut, auch weil sie keinerlei störende Werbung enthält und sehr kompakt ist. Gibt es eine Möglichkeit, das Projekt in irgendeiner Form zu unterstützen?

Antwort: Das freut mich zu hören. Ja, es gibt natürlich schon einige Möglichkeiten, dem Projekt etwas Unterstützung zukommen zu lassen. Hier ein paar Anregungen:
  • eine Übersetzung beisteuern (falls ihr eine Sprache sprecht, die die App bisher nicht unterstützt). Den Zeitaufwand dafür würde ich für einen Muttersprachler, der in der Lage ist, die englischen Strings, ohne Hilfe von Außen, zu übersetzen, auf ca. maximal 1-2 h einschätzen!
    Hier kann die Datei mit den englischen Strings eingesehen und heruntergeladen werden: https://www.hrmprofil.de/Down/strings_eng.xml

  • die App mittels Mundpropganda etwas bekannter zu machen
    Ich verfolge mit dieser App kein konkretes Ziel, aber natürlich macht das öffentliche Bereitstellen einer App mehr Spaß, wenn das userseitig irgendwie erwidert wird.

  • die App im Google Play Store positiv bewerten (eine echte Rezension wäre natürlich noch besser)
    Aber Achtung, Bewertungen unterstützen uns App-Entwickler nur, wenn sie wirklich positiv ausfallen (am besten volle Punktzahl). Sollte Euch die App weniger überzeugen, aber auch nicht so schlecht sein, dass ihr andere davor warnen müsst, dann wäre es besser, gar keine Bewertung abzusetzen, da durchschnittliche Bewertungen vor allem bei kleineren Nischen-App-Projekten massivst Einfluß auf die Trefferquopte bei der Suche haben. Muss jeder mit sich selbst ausmachen.

  • Ggfs. könnt ihr auch mal einen Werbebanner auf meiner Projekt-Webseite anklicken oder bei Amazon einen Einkauf tätigen.
    Heißes Thema, I know. Ich werde die App auch weiterhin werbefrei halten, es gab aber schon kritische Stimmen, die meinten, dass die App zu sehr mit meiner 'kommerziellen' Webseite verzahnt wäre und daher gar nicht werbefrei sei. Wie auch immer, ich bin jetzt mal so frei, auf meine Projektseite* hinzuweisen: Unterstützung des TrainingLab Projekts

    * Das TrainingLab Projekt würde ich als ein ambitioniertes Hobbyprojekt beschreiben, inwieweit man das als kommerziell abtun kann, da kann man sicherlich unterschiedlicher Meinung sein. Ich will's aber auch nicht unter den Teppich kehren.

Distribution:


Google Play Store
Frage: Warum wird die App nur im Google Play Store bereit gestellt? 

Antwort: Weil der Google Play Store nun einmal die offizielle Bezugsquelle für Android Apps ist. Ich habe gesehen, dass die App auch auf diversen alternativen APK-Archiven angeboten wird. Ich selbst kann das aber nicht managen und möchte auch nichts aktiv auf diese APK-Archive hochladen, weil ich dann gar keine Kontrolle mehr habe. Ich kann daher nur meine offiziellen Apps, die über den Google Play Store bezogen wurde, aktiv supporten.

Frage: Ich kann und will den Google Play Store nicht nutzen.

Antwort: Siehe oben. Wir drehen uns in dieser Frage leider im Kreis.

Frage: Wir bieten ihnen (günstig) an, ihre App bekannter zu machen.

Antwort: Diese App ist Freeware (man kann auch sagen, es ist ein reines Hobbyprojekt). Ich glaube nicht, dass es unter diesen Umständen für mich sinnvoll wäre, Geld zu investieren, um dieses Hobbyprojekt bekannter zu machen. 
Mehr möchte ich dazu gar nicht schreiben, außer, dass es in letzter Zeit einige sehr krude Anfragen gab (mit dem vermeintlichen Ziel, dieses Projekt bekannter zu machen).
 
Natürlich hätte ich nichts gegen positive Mundpropaganda einzuwenden und ich wäre auch nicht abgeneigt, wenn der ein oder andere User oder Blogger auf dieses kleine Projekt in seinem Blog hinweisen würde. Allerdings will ich mit dieser App nicht die Welt verbessern, insofern kann/muss ich damit leben, dass dieses Projekt auf Dauer vielleicht etwas underrated* bleiben wird. 
Daran ändert übrigens auch der Sachverhalt nichts, dass meine kostenlosen und werbefreien Apps zusätzlich auf meiner privaten TrainingLab Projektseite aufgelistet sind und damit - laut Aussage Dritter - einen kommerziellen Charakter aufweisen (Aha!).

* laut Aussage einer Agentur, die mir ihre Dienste - gegen eine Vergütung versteht sich - angeboten hat.

Und ja, mir ist bewusst, dass die Downloadzahlen dieser App im Google Play Store relativ überschaubar sind, auch was die Anzahl der Rezensionen betrifft. Würde ich das zum Gradmesser machen, dann würde ich dieser App aber sicherlich in gänzlich anderer Form unterhalten und vermarkten - oder es wahrscheinlich ganz sein lassen.

Mit anderen Worten, die App nutze ich selbst und wenn andere daran Gefallen finden und vielleicht auch mal eine positive Bewertung zum Besten geben, dann freut mich das -> das ist/war aber sicherlich nicht die Antriebsfeder für dieses Projekt und ich habe bestimmt nicht vor, diese App mittels bezahlter Werbung künstlich zu pushen!

Frage: Wir sind eine Agentur, die sich auf die Distribution von Apps spezialisiert hat und möchten ihre App gerne in unser Portfolio aufnehmen.

Antwort: Siehe oben. Wenn ihr einer kostenlosen App kostenfrei etwas unter die Arme greifen wollt, dann können wir uns gerne in Verbindung setzen. Wenn ich allerdings für diese Dienstleistung zahlen, die Verwertungsrechte dieser App im Gegenzug abtreten oder quasi als Gegenleistung Werbetracker implementieren soll, dann besteht meinerseits kein Interesse an einer Kontaktaufnahme!

Einer explizten Auftragsprogrammierung gegenüber bin ich immer offen, nur trägt im Normalfall der Auftrageber die Entwicklungskosten und nicht der Auftragnehmer!

Importe:


Frage: Meine Daten können nicht korrekt importiert werden (hier wurde sich zwar auf GPX Dateien bezogen, aber prinzipiell kann das alle Importformate betreffen).

Antwort: Das kann leider viele Ursachen und Gründe haben. Letztlich kann ich dazu nur etwas sagen, wenn ihr mir die betreffenden GPS-Daten zukommen lasst und ich mir das Zusammenspiel mit diesen Daten im Debugger ansehe. Im Allgemeinen sind die Import-Parser sehr robust und leistungsstark, aber es kann immer mal Importdateien geben, die aus welchen Gründen auch immer - nicht korrekt geparst werden können. Hier muss dann der Debugger ran!

Frage: Meine Indoor Aufzeichnung (Fit Activity File) kann nicht importiert werden. Die App wird als Fit File Viewer beworben.

Antwort: WRPElevationChart ist primär eine GPS Viewer App. Zwar kann die App Fit Files importieren, allerdings nur, wenn diese GPS-Koordinaten enthalten. Das ist bei reinen Indoor-Aktiviäten nicht der Fall. Das gilt auch für ältere Sportuhren, die Aktivitäten ohne GPS-Koordinaten protokollieren! Mit anderen Worten, WRPElevationChart ist keine Fit File Viewer App im engeren Sinne, sondern eine GPS Viewer App, die auch GPS basierte Fit Files importieren kann: GPS Koordinaten sind daher essentiell!

Ich spiele mit dem Gedanken, vielleicht irgendwann eine reine Sportanalyse-App zu entwickeln (die sich etwas an das TrainingLab Projekt anlehnen wird). Das sind derzeit aber noch ungelegte Eier und das wird auf eine vollkommen neue, deutlich anders gestaltete App hinauslaufen.
WRPElevationChart wird weiterhin eine reine, einfach gehaltene GPS Viewer App bleiben (mit allen sich daraus ergebenden Vor- und Nachteilen).

Frage: Ich habe einige GPX-/TCX-Dateien, die mehrere Tracks enthalten. Leider kann ihre App immer nur einen Track importieren.

Antwort: Das ist derzeit leider per Design so programmiert. Derzeit wird immer nur ein Track bzw. eine Route importiert. Sofern mehrere Tracks/Routen in einer Importdatei eingebettet sind, wird daher nur der/die jeweile erste Track/Route importiert. 
Ob ich die App dahingehend erweitern werde, dass sie auch Multi-Track-Importdateien korrekt handhaben kann, vermag ich derzeit noch nicht zu sagen.

Exporte:


Frage: Wenn ich meine zuvor importierten Daten exportiere, werden einige Datenreihen nicht berücksichtigt bzw. nicht exportiert. Was mache ich falsch?

Antwort: WRPElevationChart ist eine GPS Viewer App, aber keine GPS-Datenkonverter App. Intern werden derzeit nur bestimme Datenreihen verwendet, andere werden nicht genutzt und daher beim Export auch nicht berücksichtigt:

Bei FitFile Exporten werden jene Datenreihen in die Recorder Messages geschrieben:
RecordMesg recordMesg = new RecordMesg();
recordMesg.setTimestamp(new DateTime(timestamp));
recordMesg.setPositionLat(latitude);
recordMesg.setPositionLong(longitude);
recordMesg.setDistance(distance * 1000);
recordMesg.setSpeed(speed);
recordMesg.setAltitude(altitude);
encode.write(recordMesg);
Bei GPX-Exporten verhält es sich ähnlich. Du machst also nichts falsch! 

Frage: Was ist der Unterschied zwischen dem Garmin Course (FIT) Export und dem Garmin Course erzeugen Export?

Anwort: Die erstgenannte Exportfunktion (Garmin Course) ist nur verfügbar, wenn sogenannte Course-Files - also Importdateien, die Turn-by-Turn Anweisungen enthalten - importiert wurden. Diese werden dann bei einem Export quasi eins zu eins weitergereicht.

Mit der zweiten Variante (Garmin Course erzeugen) können Turn-By-Turn Anweisungen automatisch generiert werden, die dann als Fit Course-File exportiert werden. Dies kann bei älteren Bike-Computern sinnvoll sein, die noch keine echte Navigation unterstützen, sondern nur vorgefertigte Routen mit eingebetteten Turn-by-Turn Anweisungen abspielen können.
Da die Course-Anweisungen rein rechnerisch anhand der Winkelgeraden zwischen zwei Punkten berechnet werden und aktuelle Bike-Computer mittlerweile fast durch die Bank eine echte Navigation ermöglichen, ist der Praxisbezug dieser Funktion heutzutage sehr begrenzt. Siehe auch: https://wrpsoft.blogspot.com/2023/03/brouter-basierte-gpx-routen-mit-turn-by.html

Kartenansicht:


Frage: Auf meinem Smartphone werden keine Karten angezeigt, die Karte bleibt leer und es ist nur der Track zu sehen.

Antwort: Auch das kann viele Gründe haben. Unter Umständen kann es helfen, in den Karteneinstellungen manuell einen Pfad zuzuweisen. Weiteres bitte der offiziellen Anleitung entnehmen: Bekannte Probleme (known issues)

Frage: Auf meinem Smartphone wird nur die Mapnik Karte angezeigt, die OpenTopo und CyclOSM Karten bleiben leer. Demnach schließe ich ein Problem mit der Zuordnung des Verzeichnisses, das die Tiles enthält, aus.

Antwort: Das kann auf Smartphones auftreten, auf denen ein zu altes Android werkelt. Ich konnte das Phänomen auf Geräten mit Android <= 7 reproduzieren. Besagte Karten nutzen das TSL 1.3 Protokoll, das von Android 7.x meines Wissen nicht offiziell unterstützt wird. Kurz: auf diesen Geräten funktionieren diese beiden Karten nicht und es kann gut sein, dass zukünftig auch die Mapnik Karte auf diesen Geräten nicht mehr funktionieren wird. Mir sind da leider die Hände gebunden.

Frage: Ich benötige weitere Kartenansichten. Andere Apps können z.B. auch Google Maps, Bing und viele anderen Karten darstellen. Warum kann das diese App nicht?

Antwort: Die Einbettung von Google Maps und Bing Karten ist leider nicht möglich, da ab einer bestimmten Nutzungsrate, Kosten anfallen. Die App ist wie gesagt kostenfrei, daher kann ich keine Karten einbetten, deren Nutzung irgendwann Kosten verursachen würden.
Der Einbettung anderer freier Kartendienste bin ich nicht abgeneigt, allerdings müssen diese wirklich frei zugänglich sein. 
Die Implementierung einer frei konfigurierbaren Tile Server Einbindung steht derzeit nicht auf meiner ToDo-Liste. Unter anderem, weil es damit möglich wäre, auch kommerzielle Kartenservices einzubetten und das Herunterladen dann dem WRPElevationChart Projekt zugeordnet würde, weil die App eine entsprechende UserAgent Kennung beim Herunterladen der Tiles im Header des HTTP Requests mitsendet. 
Womöglich werde ich zukünftig die Einbindung lokaler Mapsforge Karten ermöglichen, sodass es möglich sein wird, ohne Internetzugriff (Offline)Karten einzusehen. Im Moment sprechen allerdings noch einige Gründe dagegen.

Handling:


Frage: Die neue Zoom-Funktion ist eine tolle Sache, bricht aber mit so ziemlich allen Android Stil- und Bedienkonventionen. Warum ist das so?

Antwort: Dazu habe ich mich im offiziellen Benutzerhandbuch eigentlich schon recht ausführlich geäußert: Zooming
Der Kunstkniff über die beiden Statistikfelder, die als eine Art virtuelle Buttons fungieren, hat den Vorteil, dass ihr relativ einfach den Zoomprozess anstoßen könnt (sogar in der 3D Ansicht, da man auch in der Kartenansicht, Punkte mittels Anklicken des Tracks markieren kann).

Ich habe wirklich einige Zoom-Varianten angetestet - und einiges an Zeit investiert - , auch das klassische Android Zoomen via Swipe-Geste. Letzteres war nicht so performant, da die Grafik dann on-the-fly immer wieder neu aufgebaut werden müsste, um einen flüssigen Effekt zu erzeugen. Auch war ein genaues Zoomen (Bereich) damit schwer umsetzbar und zuletzt wäre dann das Zoomen in der 3D Grafik entfallen, da man in der 3D Darstellung mit den Fingern keinen Bereich eingrenzen kann.

Kurzer Rede, langer Sinn: am Ende war das für mich der beste Kompromiss. Markieren der Zoom-Punkte mit dem Marker und Ausführen des Zoom-Prozess mit einer langen Touchgeste auf eines der beiden Statistikfelder. Unzoom mittels langer Touchgeste auf den Kartenauswahl-Button in der Kartenansicht. Sicherlich ein Bruch mit den Android-Konventionen, aber relativ eingängig, wenn man die Funktion erst einmal erschlossen hat.
 
Frage: Warum gibt zwei Share Funktionsblöcke in der App?

Antwort: Gute Frage, genaugenommen gibt es sogar drei dieser Funktionen :-) 
Einmal die Teilen als Screenshot Funktion (Aufruf über das linksseitige Hamburger-Menü), mit der man ganz einfach einen Screenshot des aktuellen Bildschirms erzeugen kann, um diesen z.B. per Whatsapp zu teilen.

Zweitens das Teilen über das entsprechende Share-Icon oben rechts in der Iconleiste. Damit kann man eine sehr einfache GPX-Datei erzeugen, die man direkt mit einer anderen App teilen kann.

Und drittens den dateibasierten Export (Auruf über das rechtsseitige Optionsmenü), der auch zum Teilen genutzt werden kann. 

Je nach Aufgabenstellung ergeben diese drei unterschiedlichen Share-Funktionen einen Sinn. Das direkte Teilen mit anderen Apps ist normalerweise die Funktion, die man am Häufigsten nutzen wird, daher ist dieses Share-Icon auch oben rechts fest in der Icon-Bar verankert und immer zugänglich. 

Frage: Ich würde gerne wissen, wie ich die Abspielgeschwindigkeit der Animation verlangsamen kann, wenn ich mir eine gefahrene Route ansehe. Die Animation ist viel zu schnell.

Antwort: Du kannst die Geschwindigkeit der Animation mit der SeekBar (Schieberegler) links neben der Wiedergabetaste anpassen. Wenn Du den Schieberegler nach rechts bewegst, verringert sich die Geschwindigkeit. Die aktuelle Schiebereglerposition wird gespeichert, wenn Du die Animation durch erneutes Drücken der Wiedergabetaste stoppst (nur dann!). 
Da GPS-Daten in der Regel sehr inkonsistent sind, kann die App die Animationsgeschwindigkeit leider nicht automatisch anpassen, sondern das Abspieltempo muss - je nach Art der GPS Daten - mittels der SeekBar Komponente manuell justiert werden. 


Frage: Was hat es mit dem Menüpunkt Geschwindigkeitskonvertierer auf sich?

Antwort: Das ist eine sehr spezielle Tool-Funktion, die in bestimmten Situationen sinnvoll sein kann. Nämlich dann, wenn die Speed Werte falsch importiert wurden.
Das betrifft in der Regel nur TCX und GPX Importe und hat den Hintergrund, dass laut Spezifikation dieser beiden Formate, die Geschwindigkeitswerte (speed) in Form von m/s (metres per second) abgespeichert werden müssen, einige Geräte als auch Anwendungen die Werte aber in kph (km/h) in die GPX oder TCX Dateien schreiben.
Da der in WRPElevationChart werkelnde Parser nicht erkennen kann, in welcher Form diese Parameter in den Importdateien geschrieben wurden, kommt man manchmal nicht umhin, die Werte mittels einer der beiden Konvertierungsfunktionen manuell zu konvertieren (um sinnige Geschwindigkeitswerte aufgeschlüsselt zu bekommen).
Bei Fit File Importen, die Speed normalerweise immer in Form von m/s speichern, ist diese manuelle Konvertierung daher nicht nötig.
Dieser Menüpunkt ist nur enabled, wenn der Importdatei Geschwindigkeitswerte entnommen werden konnten -> sofern die App die Speed-Werte anhand der GPS-Koordinaten und Zeitstempel selbst berechnet hat, ist eine Konvertierung nicht nötig und dieser Menüpunkt daher deaktiviert (also ausgegraut).

Charts  (2D und 3D Höhenprofile):


Frage: Ich würde das Höhenprofil gerne in Form einer Zeitachse einsehen.

Antwort: Das ist über eine Geste möglich. Am besten einmal den Menüpunkt Unterstützte Gesten im Navigationsmenü auf der linken Seite aufrufen. Mittels einfacher Gesten können die beiden Chart-Varianten (2D und 3D) relativ einfach justiert werden. 
Um den Achsenmodus umzuschalten, genügt eine lange Touchgeste (langes Antippen) auf der Höhenprofilgrafik. Der Zeitachsenmodus kann nur aktiviert werden, wenn die Importdaten Zeitstempel beinhalten, was bei protokollierten GPS Daten immer der Fall ist. Manuell erstellte Routen beinhalten hingegen häufig keine Zeitstempel, sondern nur die GPS-Koordinaten (Latitude und Longitude). Dann kann aufgrund der fehlenden Zeitstempel natürlich auch keine Zeitachse dargestellt werden.

Frage: Das 3D Chart ist auf meinem alten Handy nicht sonderlich performant. Kann man da etwas tweaken?

Antwort: Es ist möglich, die Performance ein klein wenig zu verbessern, in dem man die Datenpunkte der 3D Grafik etwas reduziert. Wunder kann diese Datenreduktion allerdings nicht vollbringen. Aktuelle Mittelklasse Smartphones sollten in der Lage sein, die meisten normalen Tracks einigermassen flüssig in 3D abzubilden. Siehe Erläuterungen im offiziellen Benutzerhandbuch: 3D Modus

Frage: Das 3D Chart wird manchmal, trotz aktivierter Option 'Seitenverhältnis beibehalten', perspektivisch verzerrt dargestellt.

Antwort: Hier müsste ich jetzt sehr weit ausholen. Das 3D Chart dient primär der Illustration. Es ist eine abstrahierte 3D Skizze, die auf eine quadratische Fläche projiziert wird. Da das Verhältnis zwischen den Längen eines Breitengrads und eines Längengrads aufgrund der Kugelform der Erde variiert, ist es je nach Trackausprägung manchmal nicht möglich, einen komplexen Track auf einer quadratischen Fläche perspektivisch platzsparend abzubilden.

Natürlich könnte man die jeweiligen korrekten Seitenverhältnisse berechnen und die 3D Grafik entsprechend ausrichten, aber das würde mitunter dazu führen, dass die 3D Grafik sowohl auf X- als auch auf Y-Achse manchmal sehr gestaucht oder gestreckt werden müsste. Kurzum, je nach Track-Dimensionen würde man bei einer quadratischen Grundfläche manchmal sehr viel Projektionsfläche einbüßen, was bei einem doch eher kleinen Smartphone-Bildschirm nicht immer erstrebenswert ist.

Daher habe ich mich entschieden, selbst bei aktivierter Option Seitenverhältnis beibehalten, das Seitenverhältnis auf die absoluten Breiten- und Längengrad Dimensionen des Tracks zu beschränken. Es wird also bewußt in Kauf genommen, dass dieses 3D Höhenprofil auch etwas verzerrt dargestellt werden kann (je nach Trackausprägung, also Verhältnis Breiten- zu Längengrad).

Für den angestrebten Anwendungszweck dürfte das m.E. auch völlig in Ordnung gehen, zumal diese Verzerrung auch nur auffällt, wenn man auf das 3D Höhenprofil direkt von oben in der Vogelperspektive herabblickt (dafür braucht's dann aber auch kein 3D Höhenprofil :)). Es ist derzeit nicht angedacht, das zu ändern (auch wenn es im Code bereits einige entsprechende - aber (noch) auskommentierte -Berechnungsfunktionen gibt), weil das andere unschöne Seiteneffekte haben kann.
 
Nicht alles, was technisch möglich ist, ist in der Praxis dann auch wirklich sinnvoll bzw. praxisrelevant oder anders ausgedrückt, ich strebe mit dieser 3D Höhenprofilgrafik keine wissenschaftliche Korrektheit an, zumal diese 3D Grafik sowieso immer perspektivische Verzerrungen bedingen (WRPElevationChart ist keine CAD Software!).


Diverses:


Frage: Die App gefällt mir sehr gut. Was jetzt noch fehlt, ist eine Tracking bzw. Datenlogger Funktionalität. Wird die App dahingehend erweitert?

Antwort: Wie ich bereits an einigen Stellen erwähnt habe, ist nicht geplant, die App in einen GPS Datenlogger umzufunktionieren. Es gibt wirklich viele sehr gute GPS Logger Apps, die alles mitbringen, was des Datenloggers Herz begehrt. Einige Apps sind reine GPS Datenlogger, andere Universal-Apps, die sowohl als GPS Logger als auch als GPS Viewer Apps fungieren.

Da man Android Apps aufgrund der internen Schnittstellen sehr gut miteinander verknüpfen kann, ohne dass der Workflow darunter leidet, bin ich ein Freund dedizierter Apps.

Sehr gute GPS Datenlogger sind z.B.:

  • (BasicAirData) GPS Logger
    (Diesen GPS Logger nutzen wir in der Familie sehr gerne. Selbst meine schon etwas ältere Mutter nutzt ihn, um ihre Wandertouren damit zu protokollieren. Diese App weist eine bewusst einfach gehaltene Oberfläche auf und ist daher ohne größere Einarbeitung sehr angenehm zu bedienen.
    Link zur Projektseite: https://www.basicairdata.eu/projects/android/android-gps-logger/)

  • GPSLogger (Mendhak)
    (Wenn ihr bestimmte Aufgaben automatisieren wollt, dann ist dieser GPS Logger sehr gut)

  • Geo Tracker - GPS tracker
    (Wenn ihr einen Logger und einfachen Viewer in einer App gebündelt haben wollt, dann bietet sich der Geo Tracker an -> dann braucht ihr WRPElevationChart auch nicht weiter verwenden :-)
    Link zur Projektseite: https://geo-tracker.org/de)

  • GPSLogger II - AIO
    (Ein GPS Logger, der laut eigener Einstufung, sehr auf Datenschutz bedacht ist. Sehr viele nützliche Funktionen, allerdings etwas verspielt, sodass man sich mit der App vertraut machen muss. Mich hat ein User vor kurzem darauf aufmerksam gemacht und das Projekt kommt sehr sympathisch rüber. Ich werde mir die App noch genauer ansehen.
    Link zur Projekseite: https://emacberry.com/)

Ich kann nur empfehlen, Euch mit einer dieser Apps anzufreunden (wobei es natürlich noch sehr viele andere GPS Logger Apps gibt). Diese Apps sind allesamt sehr gut und es steckt einiges an Knowhow und Erfahrungen in diesen Apps. Wollte ich diese Funktionalität aufgreifen, würde das auf einen Kopierprozess hinauslaufen (Open Source kann ja auch dazu verleiten, sich bestehenden Code auszuborgen).

Dann ist es doch besser, beim jeweiligen Original zu bleiben! 

Again, man kann diese Apps sehr gut miteiander verdrahten (den oben erwähnten BasicAirData GPS Logger kann man sogar mit dem GPS Viewer seiner Wahl verheiraten :-) ) 

Mit anderen Worten: WRPElevationChart wird ein reiner GPS Viewer bleiben, der sich weiterhin bewusst auf die Kernfunktionen einer GPS Viewer App konzentrieren wird.


To be continued...

Keine Kommentare: