bradpatras / gpx-recorder Goto Github PK
View Code? Open in Web Editor NEWAndroid app to record routes in background and export to gpx/geoJSON files
License: MIT License
Android app to record routes in background and export to gpx/geoJSON files
License: MIT License
You can trigger multiple detail pages opening by quickly tapping multiple rows on the list.
List interaction should be disabled after the first touch
And maybe change the color
Common practice to provide an undo option when swiping to delete stuff from a list
The adapter is probably not reusing cells
User-reported issue, original message:
I encountered a problem with your “gpx recorder” application when I completed a route, the files that I record once the route is completed are very small, compared to that of my GPS for example (14 kb and 30 kb with my GPS), or another application that I have on my Samsung Xcover 6, and even once it is saved in .gpx, I cannot reread it on Garmin Basecamp, I get an error message each time when opening Basecamp: “an unexpected error has occurred when importing Basecamp” and the file is not read at all...
I thought I had set the recording time too low and I uninstalled the app and reinstalled it with the recording time of 1 minute but it's the same,
However once I stop recording and open the file, I can see the route that was recorded appear on a map in the application and it corresponds to the route I took, but no way to use the file elsewhere than on Gpx Recorder, I don't understand where the problem comes from, do you have an explanation?
The default recording interval should be whatever was selected for the previous session.
move file creation to rxjava stream as well
Android 10 introduces new background location permission. Than will need to be granted for app to function properly
Did a recording on an airplane last week, with an interval of 30 s between points.
The gpx export file has wierd timestamps.
The first timestamp is just for one single position, the next is 9:15 minutes later and repeated for 7 positions, next is 8:48 later and repeated for 16 positions, next is one second later and repeated for 5, and so on.
Total of 300 points for a 2.5 hour trip so that adds up, but the timestamps are all wrong.
A graph of the elevation points gives a smooth curve so the position intervals is correct.
First points:
68,000 2023-12-18T05:05:50Z65,336 2023-12-18T05:15:05Z66,277 2023-12-18T05:15:05Z63,706 2023-12-18T05:15:05Z63,706 2023-12-18T05:15:05Z....
Naming conventions for screens are really confusing currently. In general I want to get away from the Gpx-centric naming in favor of "Routes".
New naming ideas:
Recorder/CurrentRecording-> ActiveRoute
GpxDetails -> RouteDetails
GpxContent (for list) -> Route
Going to look into swiping the cells to dismiss them
Hi @BradPatras
Thank you so much for this fantastic app. I really like the uncluttered design and your focus on key features. Google's Play store is full of route recorders but none can compete with this in terms of code transparency, data economy and reliability.
Seeing that 24 others have starred this repo make me believe that there is a small community that loves being in control of their own data and are glad this app exists.
I love using this app to record hiking activities. It's great to see a route when it's finished and I enjoy archiving my past hikes. At the same time, others might be interested to know where I currently am. I've written a small backend service that can process gpx files which allows me to store a recorded route. It would be really great if this app would offer an option to continuously upload live routes to a given backend.
I could imaging these config options:
If an upload fails, the records should be kept locally and 0 to 2 retries attempted before the task is skipped and retried at the next interval. I'm undecided if always the complete route should be uploaded or only segments that haven't been replicated yet.
Thank you very much for considering this input and best,
Roman
After switching to app bundle, rooted devices are crashing on the initial realm initialization on app startup. This is likely due to sideloading the app or installing the app from a source other than the Play store.
Should catch the exception and show an alert telling the user that they must install from the play store and that rooted devices may not be supported.
Also, be sure to log exception to crashlytics
Add the ability to resume a route after stopping.
make navigation drawer accessible via bottom app bar and bottom sheet. Also incorporate fab into bottom bar using the fab's 'anchorId' property
Route previews should be drawn/calculated once, then cached as an image keyed with the route ID.
All units are currently in Metric. Add the option to switch units to Imperial
Either use a rough location, the user's last recorded location, or at the very least center it on the USA or something.
I want to generate GPX file for darktable open source program that will add GPS coordinates to my photos. I've installed the app to test it. Is there a way to test while staying at home? or do I need to go somewhere to test it? Because it show 0 waypoint, shouldn't show at least first staring point?
GeoJSON format lines up pretty closely with GPX format so it'd be a pretty easy win to add support for exporting .geojson files.
https://geojson.org/
Hello,
I recommended your application to the friend of mine, as a perfect fit for his needs (hiking, biking).
Unfortunately, he doesn't understand english at all.
I made a czech strings.xml version: http://pocitas.cz/values-cs.zip
It would be nice, if you could include it in the next release.
I have translated even strings, marked as translatable="false"
, because I consider it important. So please remove the "untranslatable" attribute from the default (english) strings.xml file.
If you use the Translations Editor Tool of Android Studio, after you add the "cs" language, these keys are marked red as an error and can be simply fixed by unchecking the "untranslatable" checkbox.
Thanks for the very good application.
Martin
Try to get more exact interval points
Location recording doesn't seem to start until the user starts moving. At the least a starting location should be added when a new recording session is started
using an intent to launch the system browser would require no new permissions https://developer.android.com/training/data-storage/shared/documents-files
it can be a huge computational task to calculate all those distances on load. they should be calculated as they are recorded, or calculated when the user taps on a cell.
the files end up looking like route.gpx.xml
or route.geojson.xml
Basically: Turn the custom params (kStartService, kStopService, etc.) for 'service_received_command' into standalone analytics events and remove the 'service_received_command' event.
Since the custom params aren't viewable easily on the events pages they end up being less useful. It'd be more helpful to just have all the service events separated.
Hi,
Since this app is MIT licensed, are you considering the fact to add it to F-Droid? There is a strong community behind.
You can find some documentation here.
Otherwise, if you don't want to work on the inclusion of this app in F-Droid by yourself, would you still agree with the inclusion of your app in F-Droid by the maintainer team?
Could you please in the meantime tag your releases and attach a signed release apk to it, so that people without Play Store can download it. Thanks.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.