Die App ist bewusst sehr einfach gehalten und nicht mit (zu vielen) 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.
FAQ (Frequently Asked Questions)
Allgemeine Fragen:
Am Rande erwähnt: alle meine eigenen im Play Store gelisteten Apps fangen derzeit mit der Wortkennung WRP an.
- 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.
Datenschutz:
- 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)
e) für das unkomplizierte Einbinden optionaler Mapsforge Karten und Themes (*.map und *.xml Dateien).
- 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.
* 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!
- Deine Pflicht: Im Data Safety Formular (Datensicherheit) der Google Play Console musst du angeben, ob Daten gesammelt oder geteilt werden.
- Googles Definition: Wenn deine App native Web-Abfragen an die OSM-Server schickt, um Kacheln zu laden, gilt die IP-Adresse im Google-Sinn oft als "gesammelt/übertragen".
- Die Gefahr: Wenn ein automatisierter Google-Prüfbot beim Scannen deiner App sieht, dass die App im Hintergrund HTTP/HTTPS-Verbindungen zu externen Tile-Servern aufbaut, das Data Safety Formular aber auf "Die App sammelt oder teilt keine Nutzerdaten" steht, kann das zu einer Ablehnung des Updates (Reject) wegen widersprüchlicher Angaben führen.
- Lösung: In der Play Console unter Datensicherheit den Punkt "IP-Adresse" (unter Gerätekennungen/Sonstige Daten) als erhoben/übertragen deklarieren und angeben, dass dies ausschließlich für die App-Funktionalität (das Laden der Karten) notwendig ist."
Distribution:
Importe:
Exporte:
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);
Das GPX-Format unterstützt bei Wegpunkten (wpts) - neben den GPS-Koordinaten und einigen anderen Daten - nur das Speichern eines Zeitstempels (aber keine mit dem Wegpunkt assozierten Distanzwerte). Das hat zur Folge, dass bei Reimporten aufgrund des fehlenden WPT-Distanzwertes, bei GPS-Daten ohne Zeitstempel, kein Bezug mehr hergestellt werden kann und die Wegpunkte daher nicht mehr korrekt positioniert werden können. Anders ausgedrückt: Zwischenzeiten Marker können ohne dazugehörende Zeitstempel nicht in einfache GPX-Wegpunkte transferiert werden.
<wpt lat="50.330386666" lon="8.533381666"><ele>178.466033</ele><speed>0.23004627227783203</speed><time>2023-06-07T16:53:00.870Z</time><name>WPT00005</name><cmt>WPT00005</cmt><desc>WPT00005</desc><sat>5</sat></wpt>
Kartenansicht:
- Die zuvor heruntergeladenen und auf dem Smartphone abgelegten Mapsforge (*.map) Karten am besten in einem eigenen und für alle Apps zugänglichen Verzeichnis abspeichern. Auf diese Weise können mehrere Apps auf die Karten zugreifen, ohne diese lokal spiegeln zu müssen. Mapsforge Karten können leider sehr groß sein und dementsprechend viel Platz auf dem internen/externen Speicher des Smartphones belegen!
Dieses Verzeichnis auswählen, WRPElevationChart scannt den Inhalt nach *.map Dateien ab und sofern auf das Verzeichnis zugegriffen werden kann, wird in der Kartenansicht ein Kartentyp Mapsforge angezeigt. - Es können sogenannte Kartenthemen ausgewählt bzw. zugewiesen werden.
Bitte beachten, dass bei externen Themen derzeit nicht alle Attribute (Grafiken/Icons) unterstützt werden. Sofern die Themen-Dateien im gepackten Zip-Format (*.zip) verlinkt werden, sollten alle zusätzlichen Grafiken/Icons in die Karten eingebettet werden. Das kann aber zur einer Überfüllung führen - zuviele Icons auf zu engem Platz - weshalb es sinnvoll sein kann, lediglich die Themen *.xml Dateien zuzuweisen. Dann werden nämlich nur die Default-Icons verwendet, die in der App hart verlinkt sind.
Kartenthemen können vor allem in Kombination mit der neuen Hillshading-Funktion ihre Trümpfe ausspielen, wie man dieser Animation entnehmen kann. - Die Funktion Theme PNG Cache löschen kann sinnvoll sein, falls die Themen-Icons nicht mehr korrekt dargestellt werden. Der PNG Cache wird aber immer wieder neu befüllt, hier werden aus Performancegründen die *.svg Vektorgrafiken, auf die die Mapsforge Themen verweisen, in PNG-Form abgelegt.
Handling:
Charts (2D und 3D Höhenprofile):
Zuerst zu den Stellschrauben: defaultmäßig werden die optionalen Kurven geglättet dargestellt. Man kann den Glättungsfaktor entsprechend justieren, sodass die Glättung umgangen wird. Ich selbst habe die Glättung fast immer aktiviert, weil sie durchaus sinnvoll ist, da zu stark verrauschte (zittrige?) Kurven m.E. keinen echten Mehrwert bieten.
Wie auch immer, ihr könnt die Glättung deaktivieren. Für die Geschwindigkeitskurve gibt es sogar einen eigenen Menüpunkt, mit dem die Glättung sehr einfach deaktiviert werden kann (was bei der Geschwindigkeitskurve in der Tat manchmal sinvoll sein kann).
Wenn das nicht möglich ist, wird die Speed anhand der GPS-Koordinaten und Zeitstempel eigenständig berechnet. Häufig sind die protokollierten Speed-Werte genauer - meistens auch smoother - gegenüber den Berechneten. Daher verwendet die App normalerweise die importierten (Geschwindigkeits)Datentreihen.
Andere Apps halten sich womöglich strikt an die GPX 1.1 Spezifikation und berechnen die Speed (Geschwindigkeitswerte) bei GPX 1.1 Dateien immer eigenständig oder man kann das in den Einstellungen der jeweiligen App einstellen.
Wie auch immer, wenn ihr glaubt, dass die Geschwindigkeitskurve nicht korrekt ist, dann könnt ihr die Berechnung der Speed über den Menüpunkt Geschwindigkeitskonvertierer (Geschw. basierend auf Distanz/Zeit berechnen) erzwingen. Ob diese Berechnung bessere Werte zu Tage befördert, ist noch einmal eine andere Frage. Diese Berechnung ist optional - erfordert also manuelles Eingreifen - und ich habe nicht vor, das zu ändern.
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 :)).
https://de.wikipedia.org/wiki/Isometrische_Perspektive_in_Computerspielen
https://de.wikipedia.org/wiki/Parallelprojektion
https://de.wikipedia.org/wiki/Zentralprojektion
Diverses:
- (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/) - OpenTracks
(Auch ein GPS Logger, der nach eigener Einstufung, sehr auf Datenschutz ausgerichtet ist. Zusammenspiel mit WRPElevationChart aber ab Vers. 2.0.46, da ich den Intent-Filter* für OpenTracks anpassen musste)
Die großen Universal Tracking Apps wie Locus Map, OruxMap, OsmAnd - um mal ein paar bekannte Schwergewichte zu nennen - können sogar Tracks importieren und diese in ihrer Datenbank entsprechend auflisten. Kurz gesagt, diese Apps bieten bereits eine Trackverwaltung, die nahezu alles abdeckt.
Und auf den Browser kann und will ich nicht verzichten, da auf meinem Smartphone immer mal wieder GPS-Dateien landen, auf die ich spontan zugreifen muss. Mitunter sind das Sample-Dateien von Usern meines TrainingLab Pro Projekts, die später nach kurzer Einsicht auch wieder auf meinem Smartphone gelöscht werden. Wenn das alles über Datenbankimporte gehandelt werden sollte, wäre das - zumindest was meinen persönlichen Usecase betrifft - sehr schwerfällig, da die GPS-Dateien auf meinem Smartphone häufig sehr volatiler Art sind.
Auch wenn der Browser technisch bedingt eine etwas langsamere Navigation gegenüber einer reinen Datenbanknavigation aufweist - da die GPS-Datenreihen beim Browsen durch die GPS-Dateien immer wieder neu geparst werden müssen, was je nach Datenformat und Größe der GPS-Dateien etwas aufwendiger sein kann -, erscheint mir das die schnellste Variante zu sein, wechselhafte GPS-Dateien auf dem Smartphone einzusehen bzw. durch diese zu zappen.
Alternativ müsste quasi bei jedem Neustart der App nach neuen oder auch nicht mehr vorhandenen GPS-Dateien gescannt werden und die Datenbank entsprechend neu indexiert werden, was unter Android ein sehr kostenintensives Vorgehen wäre. Machbar wäre das natürlich irgendwie, aber WRPElevationChart wäre dann nicht mehr diese leichtgewichtige App, die es ist.



















Keine Kommentare:
Kommentar veröffentlichen