labexp / osmtracker-android Goto Github PK
View Code? Open in Web Editor NEWGPS tracking tool for OpenStreetMap
License: GNU General Public License v3.0
GPS tracking tool for OpenStreetMap
License: GNU General Public License v3.0
Would it be possible to add an "export to gpx and share" option to the contextual menu for tracks (alongside "export to gpx")? (It could just be called "Share" with a prompt to save GPX first if needed.)
We'd like to use osmtracker for non-experts to map their educational institutions, and there needs to be a simple way for them to transfer the data. Saving as GPX, and then locating the track using a "file explorer" isn't really an option, as many services may not have that software and storage locations may differ.
It wouldn't matter if only the GPX track is shared (if that makes it easier), though sharing of all media could be possible as well.
In settings choose Cycle Map as the tile source. The background of the image seen says API key required.
Try this: sit on a park bench and push the plus symbol that creates a new track. Now don't go anywhere just sit there. After a while press in the menu Display Track. You will notice in the upper right corner the scale bar has below it "0" meters. Yes an actual 0 meter scale bar. It says 0 meters.
The user looks for documentation. He goes from the GitHub link poking around and finally finds https://github.com/nguillaumin/osmtracker-android/wiki which is apparently the documentation. I would put a direct link from the apps about page to the documentation. Also note that the Wiki page is not suitable for viewing on a cell phone because it spreads over the edge.
Have greater reception accuracy than internal smartphone GPS
Would make the app more useful in situations where tiles cannot be downloaded.
One I know of is maps.me API which requires maps.me to be installed.
There may be others as well.
I would like to have a way to automatically upload the photos associated with a track to Flickr, with whatever tags are necessary (in both Flickr and OSM) for the photos to be linked to specific spots in the specific tracks. I would like to be able to specify, for the Flickr upload, a set to put the photos into in my personal account, and also an option to add them to the OpenStreetMap group.
On the list of tracks some tracks have a green ball next to them. And yellow balls next to tracks that are currently being recorded. However the user in the field, has no way to tell what the green balls mean, without a manual.
Enable gpx tracks to be emailed as attachments.
Nice to have: indicate when the HDOP is bigger than a parameter setting (feeback: sound, notification, different style for the text...).
Why? If we want to take pictures, notes etc..., it's good to be aware of low accuracy.
When recording a track, there is no way in the UI to stop recording. The back button doesn't work; it keeps recording in the background. I looked all over the GUI, and ultimately had to kill the app to get it to stop. This is a huge glaring flaw. Can't there simply be a nice clear button somewhere that says "Stop"?
When I touch the button to upload a track to Openstreetmap, the app instead performs an address search and then shows the map at 0.00 lat by 0.00 long. I am using an SGS 7 Edge running Marshmallow.
Hello, I am a student of the National University of Comahue located in the city of Neuquén (Patagonia), Argentina. I'm currently pursuing a career course for Technician Management Systems and Free Software.
I work on a project of Libre Software because It is a course requirement (course: Libre Software) in which I have to collaborate in a libre project.
So the project that I chose is OSMTracker. I think I can contribute with streets of my town that have wrong name or no name at all..
I hope my contribution be useful for your project.
Best Regard
Anahi
Screen 1: OSMTracker is tracking, all tiles in the current area are downloaded. Then I switch off the display to save battery...
Screen 2: after switching on the display I see this - couple of tiles are missing. OSMTracker reloads them, it takes some time and data from my data limit. In the end everything is loaded just like in the first screenshot. Then again I turn off the display...
Screen 3: ... to find out that after switching it on I have lost another tiles. And again, it starts reloading the missing tiles.
Sometimes when mapping I get to areas without service and then no reload can occur so I am a little bit blinded.
OSMTracker for Android v0.6.11
HW: Nexus 6 (Android 6.0.1)
While recording a track, one sees 12 buttons on the screen. However some of these buttons lead to further sub items and some of them don't. Alas there is no way to tell the difference. Therefore kindly add three dots after the title of each item that leads to a sub item..
Steps to reproduce:
According to the OSM wiki on the "ele" key, it is expected to be "the elevation above mean sea level".
Specifically, it says :
This is not the height above the WGS84 ellipsoid (see Geoid) which is shown by some GPS devices.
The "ele" values provided by OSMTracker is, unfortunately, the height above the WGS84 ellipsoid, as provided by Location.getAltitude().
Translating from one datum to another is feasible, but not simple. Fortunately, Android also provides NMEA 0183 API through the GpsStatus.NmeaListener class. Specifically, the GGA statement provides the altitude above mean sea level. Will it be possible to take the "ele" values from the NMEA API and comply with OSM?
The exported gpx file says it has encoding UTF-8, but it includes the '™' character.
This causes some parsers (i.e. strava.com) to reject the file.
A feature request: next to waypoints & co one could display the distance. So, a little more stats about a track. Thx.
Show the page levels and the name of the page would be helpful.
In addition, a confirmation should be given when the root page should be left. (change to track view)
Ticking the option to 'ignore GPS clock and use Android clock for timestamps' in the settings menu appears to make no difference to the timestamps recorded in the gpx file - they are recorded at GMT regardless of whether this option is selected or not. The gpx filename takes the time from the Android device, but the timestamp associated with each event recorded is always GMT.
This becomes a problem when using OSMtracker early morning in Nepal as the events appear to have been recorded late at night the previous day as opposed to early morning in Nepal.
At the bottom we sometime see two buttons, one of which is called SAVE.
However these often appear when the data is already in the saved state.
Please only show such buttons when the data is not in the saved state and does not need to be saved again.
While https://github.com/nguillaumin/osmtracker-android/wiki/Custom-buttons-layouts says:
For special buttons like voicerec, picture or textnote the label is automatically retrieved from the application string resources and cannot be changed.
It would be good to have a way to customize their values.
For example, I am trying to get a smaller customized layout and "Gravação de voz" (the Portuguese translation for voicerec
) is just too wide.
Would be great to have the possibility to add waypoints with an incrementing number as any basic classic GPS device does, for the case the surveyor is using a thematic paper form to describe precisely and systematically the objects of interest.
Firstly: Fantastic app. Thank you!
It would be extremely useful to have the option of recording variable length audio notes, rather than notes of a predetermined length. This could be done with a press-and-hold button, perhaps.
I just encountered a crash while trying to display a track. It wiped all my tracks. And it seems I have no way of getting them back!
Here is the logcat of my device at the time:
05-09 19:02:11.460 1843 1843 W ViewPager: Requested offscreen page limit 0 too small; defaulting to 1
05-09 19:02:11.480 1843 1843 I LatinIME: Starting input. Cursor position = 0,0
05-09 19:02:11.497 2740 2740 W IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
05-09 19:02:11.497 2740 2740 W IInputConnectionWrapper: getSelectedText on inactive InputConnection
05-09 19:02:11.508 2740 2740 W IInputConnectionWrapper: requestCursorAnchorInfo on inactive InputConnection
05-09 19:02:11.510 2740 2740 W IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
05-09 19:02:11.511 1843 1843 E RichInputConnection: Unable to connect to the editor to retrieve text.
05-09 19:02:11.511 1843 1843 D RichInputConnection: Will try to retrieve text later.
05-09 19:02:11.536 2740 2740 W IInputConnectionWrapper: getTextBeforeCursor on inactive InputConnection
05-09 19:02:11.537 1843 1843 E RichInputConnection: Unable to connect to the editor to retrieve text.
05-09 19:02:11.537 1843 1843 W RichInputConnection: Unable to connect to the editor. Setting caps mode without knowing text.
05-09 19:02:11.709 1843 2938 D OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
05-09 19:02:11.743 1843 1843 I LatinIME: Starting input. Cursor position = 19,19
05-09 19:02:12.043 1843 2938 W Adreno-GSL: <get_panel_settings:3802>: Android framework reported version 2. So, don't force ES30
05-09 19:02:12.064 1843 2938 I Adreno-EGL: <qeglDrvAPI_eglInitialize:381>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_KK_2.7_RB1.04.04.00.007.018_msm8960_KK_2.
7_RB1_CL3869936_release_AU (CL3869936)
05-09 19:02:12.064 1843 2938 I Adreno-EGL: OpenGL ES Shader Compiler Version: 17.01.10.SPL
05-09 19:02:12.064 1843 2938 I Adreno-EGL: Build Date: 12/09/13 Mon
05-09 19:02:12.064 1843 2938 I Adreno-EGL: Local Branch: mybranch2092625
05-09 19:02:12.064 1843 2938 I Adreno-EGL: Remote Branch: quic/kk_2.7_rb1.15
05-09 19:02:12.064 1843 2938 I Adreno-EGL: Local Patches: NONE
05-09 19:02:12.064 1843 2938 I Adreno-EGL: Reconstruct Branch: AU_LINUX_ANDROID_KK_2.7_RB1.04.04.00.007.018 + NOTHING
05-09 19:02:12.099 1843 2938 I OpenGLRenderer: Initialized EGL, version 1.4
05-09 19:02:12.492 1088 1105 I ActivityManager: Process com.android.cellbroadcastreceiver (pid 2868) has died
05-09 19:02:12.492 1088 1105 D ActivityManager: cleanUpApplicationRecord -- 2868
05-09 19:02:13.641 199 199 I surfaceflinger: type=1400 audit(0.0:117): avc: denied { read write } for path="/dev/kgsl-3d0" dev="tmpfs" ino=1818 scontext=u:
r:surfaceflinger:s0 tcontext=u:object_r:device:s0 tclass=chr_file permissive=1
05-09 19:02:13.811 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:13.811 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:14.488 1843 1939 I LatinIME:LogUtils: Dictionary info: dictionary = contacts.fr ; version = 1494349334 ; date = ?
05-09 19:02:14.672 1943 1956 I art : Waiting for a blocking GC DisableMovingGc
05-09 19:02:14.685 1943 1954 I art : CollectorTransition marksweep + semispace GC freed 9498(687KB) AllocSpace objects, 0(0B) LOS objects, 24% free, 4MB/
6MB, paused 148.254ms total 148.254ms
05-09 19:02:14.686 1943 1956 I art : WaitForGcToComplete blocked for 14.312ms for cause DisableMovingGc
05-09 19:02:14.686 1943 1956 I art : Starting a blocking GC DisableMovingGc
05-09 19:02:14.932 1843 1939 I LatinIME:LogUtils: Dictionary info: dictionary = contacts.fr ; version = 1494349334 ; date = 1494349334
05-09 19:02:16.650 1843 1843 I LatinIME: Starting input. Cursor position = 0,0
05-09 19:02:16.839 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:16.839 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:17.463 1843 1843 I LatinIME: Starting input. Cursor position = 0,0
05-09 19:02:17.679 2740 2750 I art : Background sticky concurrent mark sweep GC freed 11997(656KB) AllocSpace objects, 1(24KB) LOS objects, 31% free, 4MB
/6MB, paused 579us total 167.663ms
05-09 19:02:18.292 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.309 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.322 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.336 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.350 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.363 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.369 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:18.369 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:18.440 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.454 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.473 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.487 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.500 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.513 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.527 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.540 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.554 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.568 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.583 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.598 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.612 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.624 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.637 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.647 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.657 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.668 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.682 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.693 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.702 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.714 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.726 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.741 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.752 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.765 1088 1287 D WifiService: Client connection lost with reason: 4
05-09 19:02:18.769 1088 2018 I ActivityManager: Process com.android.settings (pid 2854) has died
05-09 19:02:18.770 1088 2018 D ActivityManager: cleanUpApplicationRecord -- 2854
05-09 19:02:18.805 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.820 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.838 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.851 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.862 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.874 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.887 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.900 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.914 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.930 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:18.941 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:18.941 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:18.988 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.001 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.015 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.028 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.043 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.053 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.063 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.079 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.092 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.106 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.117 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.128 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.143 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.154 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.163 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.179 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.189 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.201 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.216 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.235 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.295 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.316 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.330 1088 1294 D AudioService: Stream muted, skip playback
05-09 19:02:19.390 2740 2740 V TrackContentProvider: query(), uri=content://me.guillaumin.android.osmtracker.provider/track
05-09 19:02:19.442 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:19.488 2740 2740 V TrackContentProvider: query(), uri=content://me.guillaumin.android.osmtracker.provider/track/active
05-09 19:02:20.146 2740 2753 D OpenGLRenderer: endAllStagingAnimators on 0xa698d8 (RippleDrawable) with handle 0xa26c48
05-09 19:02:20.177 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:20.230 199 199 W SurfaceFlinger: couldn't log to binary event log: overflow.
05-09 19:02:20.352 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:20.387 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:20.415 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:20.427 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:20.441 1322 2252 W ExifInterface: Skip the tag entry since tag number is not defined: 2
05-09 19:02:20.736 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:20.736 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:21.281 1088 1294 D AudioService: Stream muted, skip playback
05-09 19:02:21.284 1088 1363 I ActivityManager: START u0 {cmp=me.guillaumin.android.osmtracker/.activity.TrackDetail (has extras)} from uid 10076 on display 0
05-09 19:02:21.497 2740 2740 V TrackContentProvider: query(), uri=content://me.guillaumin.android.osmtracker.provider/track/4
05-09 19:02:21.563 2740 2740 V TrackContentProvider: query(), uri=content://me.guillaumin.android.osmtracker.provider/track/4/start
05-09 19:02:21.575 2740 2740 V TrackContentProvider: query(), uri=content://me.guillaumin.android.osmtracker.provider/track/4/end
05-09 19:02:21.730 1843 1939 I LatinIME:LogUtils: Dictionary info: dictionary = spellcheck_contacts.fr ; version = 1494164709 ; date = 1494164709
05-09 19:02:21.738 1843 1939 I LatinIME:LogUtils: Dictionary info: dictionary = spellcheck_userunigram.fr ; version = 1494349341 ; date = ?
05-09 19:02:21.955 1943 1954 I art : CollectorTransition marksweep + semispace GC freed 90(-103KB) AllocSpace objects, 0(0B) LOS objects, 24% free, 4MB/5MB, paused 193.634ms total 193.634ms
05-09 19:02:22.054 1843 1939 I LatinIME:LogUtils: Dictionary info: dictionary = main:fr ; version = 54 ; date = 1414726264
05-09 19:02:22.086 2740 2740 I Choreographer: Skipped 30 frames! The application may be doing too much work on its main thread.
05-09 19:02:22.169 1088 1158 I ActivityManager: Displayed me.guillaumin.android.osmtracker/.activity.TrackDetail: +853ms
05-09 19:02:22.548 199 199 W SurfaceFlinger: couldn't log to binary event log: overflow.
05-09 19:02:22.976 1322 2252 W MediaScanner: Error opening directory '/oem/media/', skipping: No such file or directory.
05-09 19:02:23.013 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:23.013 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:23.406 1088 1294 D AudioService: Stream muted, skip playback
05-09 19:02:23.544 2049 2150 E ELEVEN : calling refresh!
05-09 19:02:25.297 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:25.297 1322 2252 I art : Starting a blocking GC Alloc
05-09 19:02:25.448 1088 1294 D AudioService: Stream muted, skip playback
05-09 19:02:25.486 1088 1959 I ActivityManager: START u0 {cmp=me.guillaumin.android.osmtracker/.activity.DisplayTrackMap (has extras)} from uid 10076 on display 0
05-09 19:02:25.704 2740 2740 I AndroidLoggerFactory: Logger name 'org.osmdroid.views.MapView' exceeds maximum length of 23 characters, using 'o*.o*.v*.MapView' instead.
05-09 19:02:25.718 2740 2740 I AndroidLoggerFactory: Logger name 'org.osmdroid.DefaultResourceProxyImpl' exceeds maximum length of 23 characters, using 'o*.o*.DefaultResourceP*' instead.
05-09 19:02:25.731 2740 2740 I AndroidLoggerFactory: Logger name 'org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase' exceeds maximum length of 23 characters, using 'o*.o*.t*.t*.BitmapTile*' instead.
05-09 19:02:25.743 2740 2740 I AndroidLoggerFactory: Logger name 'org.osmdroid.tileprovider.tilesource.CloudmadeTileSource' exceeds maximum length of 23 characters, using 'o*.o*.t*.t*.CloudmadeT*' instead.
05-09 19:02:25.743 2740 2740 I o*.o*.v*.MapView: Using tile source: org.osmdroid.tileprovider.tilesource.XYTileSource@488ee25
05-09 19:02:25.744 2740 2740 I AndroidLoggerFactory: Logger name 'org.osmdroid.tileprovider.MapTileProviderBase' exceeds maximum length of 23 characters, using 'o*.o*.t*.MapTileProvid*' instead.
05-09 19:02:25.750 2740 2740 I AndroidLoggerFactory: Logger name 'org.osmdroid.tileprovider.LRUMapTileCache' exceeds maximum length of 23 characters, using 'o*.o*.t*.LRUMapTileCac*' instead.
05-09 19:02:25.751 2740 2740 I AndroidLoggerFactory: Logger name 'org.osmdroid.tileprovider.modules.TileWriter' exceeds maximum length of 23 characters, using 'o*.o*.t*.m*.TileWriter' instead.
05-09 19:02:25.768 2740 2740 I AndroidLoggerFactory: Logger name 'org.osmdroid.tileprovider.modules.MapTileModuleProviderBase' exceeds maximum length of 23 characters, using 'o*.o*.t*.m*.MapTileMod*' instead.
05-09 19:02:25.768 2740 2740 I AndroidLoggerFactory: Logger name 'org.osmdroid.tileprovider.modules.MapTileFileStorageProviderBase' exceeds maximum length of 23 characters, using 'o*.o*.t*.m*.MapTileFil*' instead.
05-09 19:02:25.786 2740 2740 I o*.o*.t*.m*.MapTileFil*: sdcard state: mounted
05-09 19:02:25.801 2740 2740 I o*.o*.t*.m*.MapTileFil*: sdcard state: mounted
05-09 19:02:25.868 2740 2740 I AndroidLoggerFactory: Logger name 'org.osmdroid.tileprovider.modules.ArchiveFileFactory' exceeds maximum length of 23 characters, using 'o*.o*.t*.m*.ArchiveFil*' instead.
05-09 19:02:25.869 2740 2740 I AndroidLoggerFactory: Logger name 'org.osmdroid.tileprovider.modules.MapTileDownloader' exceeds maximum length of 23 characters, using 'o*.o*.t*.m*.MapTileDow*' instead.
05-09 19:02:25.871 2740 2740 I AndroidLoggerFactory: Logger name 'org.osmdroid.views.overlay.TilesOverlay' exceeds maximum length of 23 characters, using 'o*.o*.v*.o*.TilesOverl*' instead.
05-09 19:02:25.975 2740 2740 I o*.o*.t*.MapTileProvid*: rescale tile cache from 0 to 18
05-09 19:02:25.980 2740 2740 I o*.o*.t*.MapTileProvid*: Finished rescale in 5ms
05-09 19:02:26.314 2740 2750 W art : Suspending all threads took: 5.004ms
05-09 19:02:26.347 2740 2961 W System : ClassLoader referenced unknown path: /system/framework/tcmclient.jar
05-09 19:02:26.353 2740 2960 W System : ClassLoader referenced unknown path: /system/framework/tcmclient.jar
05-09 19:02:26.393 2740 2750 I art : Background partial concurrent mark sweep GC freed 13054(934KB) AllocSpace objects, 11(328KB) LOS objects, 24% free, 6MB/8MB, paused 15.258ms total 394.775ms
05-09 19:02:26.484 2740 2740 V TrackContentProvider: query(), uri=content://me.guillaumin.android.osmtracker.provider/track/4/waypoints
05-09 19:02:26.509 2740 2740 V TrackContentProvider: query(), uri=content://me.guillaumin.android.osmtracker.provider/track/4
05-09 19:02:26.532 2740 2740 V TrackContentProvider: query(), uri=content://me.guillaumin.android.osmtracker.provider/track/4/trackpoints
05-09 19:02:26.710 1088 1101 I art : Background sticky concurrent mark sweep GC freed 22337(1095KB) AllocSpace objects, 3(60KB) LOS objects, 11% free, 11MB/13MB, paused 3.692ms total 119.842ms
05-09 19:02:26.761 2740 2740 E SQLiteLog: (11) database corruption at line 67578 of [2ef4f3a5b1]
05-09 19:02:26.761 2740 2740 E SQLiteLog: (11) statement aborts at 11: [SELECT latitude, longitude, _id FROM trackpoint WHERE (track_id = ?) ORDER BY _id asc] database disk image is malformed
05-09 19:02:26.762 2740 2740 E DefaultDatabaseErrorHandler: Corruption reported by sqlite on database: /data/user/0/me.guillaumin.android.osmtracker/databases/OSMTracker
05-09 19:02:26.763 2740 2740 E DefaultDatabaseErrorHandler: deleting the database file: /data/user/0/me.guillaumin.android.osmtracker/databases/OSMTracker
05-09 19:02:26.773 2740 2740 D AndroidRuntime: Shutting down VM
--------- beginning of crash
05-09 19:02:26.794 2740 2740 E AndroidRuntime: FATAL EXCEPTION: main
05-09 19:02:26.794 2740 2740 E AndroidRuntime: Process: me.guillaumin.android.osmtracker, PID: 2740
05-09 19:02:26.794 2740 2740 E AndroidRuntime: Theme: themes:{}
05-09 19:02:26.794 2740 2740 E AndroidRuntime: java.lang.RuntimeException: Unable to resume activity {me.guillaumin.android.osmtracker/me.guillaumin.android.osmtracker.activity.DisplayTrackMap}: android.database.sqlite.SQLiteDatabaseCorruptException: database disk image is malformed (code 11)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3137)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3168)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2515)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.app.ActivityThread.-wrap11(ActivityThread.java)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:102)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.os.Looper.loop(Looper.java:148)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:5461)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: Caused by: android.database.sqlite.SQLiteDatabaseCorruptException: database disk image is malformed (code 11)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(Native Method)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:845)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:836)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:143)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:132)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.content.ContentResolver.query(ContentResolver.java:512)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.content.ContentResolver.query(ContentResolver.java:435)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at me.guillaumin.android.osmtracker.activity.DisplayTrackMap.pathChanged(DisplayTrackMap.java:413)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at me.guillaumin.android.osmtracker.activity.DisplayTrackMap.onResume(DisplayTrackMap.java:269)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1259)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.app.Activity.performResume(Activity.java:6327)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3126)
05-09 19:02:26.794 2740 2740 E AndroidRuntime: ... 10 more
05-09 19:02:26.805 1088 2090 W ActivityManager: Force finishing activity me.guillaumin.android.osmtracker/.activity.DisplayTrackMap
05-09 19:02:26.813 1088 2090 W ActivityManager: Force finishing activity me.guillaumin.android.osmtracker/.activity.TrackDetail
05-09 19:02:26.870 1088 2965 D OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
05-09 19:02:26.913 1088 1139 W HardwareRenderer: Could not acquire gfx stats buffer
05-09 19:02:26.913 1088 1139 W HardwareRenderer: android.os.RemoteException: Invalid package name
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at com.android.server.GraphicsStatsService.requestBufferForProcess(GraphicsStatsService.java:97)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at android.view.ThreadedRenderer$ProcessInitializer.initGraphicsStats(ThreadedRenderer.java:459)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at android.view.ThreadedRenderer$ProcessInitializer.init(ThreadedRenderer.java:447)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at android.view.ThreadedRenderer.<init>(ThreadedRenderer.java:126)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at android.view.HardwareRenderer.create(HardwareRenderer.java:436)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at android.view.ViewRootImpl.enableHardwareAcceleration(ViewRootImpl.java:759)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at android.view.ViewRootImpl.setView(ViewRootImpl.java:492)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:310)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:86)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at android.app.Dialog.show(Dialog.java:319)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at com.android.server.am.ActivityManagerService$UiHandler.handleMessage(ActivityManagerService.java:1491)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at android.os.Handler.dispatchMessage(Handler.java:102)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at android.os.Looper.loop(Looper.java:148)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at android.os.HandlerThread.run(HandlerThread.java:61)
05-09 19:02:26.913 1088 1139 W HardwareRenderer: at com.android.server.ServiceThread.run(ServiceThread.java:46)
Feature request: The app should have this configurable (!) feature:
When a media button of a connected bluetooth headset device is pressed, the app should start voice recording (for the configured time or until the button is pressed again), preferable using the microphone of the headset. (This seems to work already on a wired headset, but not with bluetooth.)
From efforts made by the authors of osmand I know that this is tricky: Different bluetooth headsets cause different intends in different moments; thus the app must be configurable in a way that allows to switch this feature off (which should be the default) and to select the signals to react to.
The feature itself will be very useful when mapping by car or bike in countries where you are not allowed to touch a smartphone while driving.
Hi Nicolas,
I hope you're doing well, because osmtracker appears to be THE gps tracker on f-droid and so I want to implement that distance, as well as the speed.
Before I start coding, I'd like to ask. How should I implement calculating/storing the total length of the currently recording track?
I'd prefer option 3, but maybe you have other ideas?
For now, here's a patch to keep updting "Details" for the track that's being recorded: I want to add length and speed there, and those should be updated (right now it just makes the number of points update, meaning that it works for me).
Dear developers,
I found two potential leaks of database cursor in your code.
(1) In the method private void manageNewStoragePath(SQLiteDatabase db) of DatabaseHelper class at line 203 and 234:
If the cursor is empty (no rows), it will not be closed as in the code only when moveToFirst() returns true (non-empty cursors), the cursor.close() statement at line 234 will execute.
(2) In the public static File getTrackDirFromDB(ContentResolver cr, long trackId) of DataHelper class at line 341:
if (c != null && c.getCount() != 0) {
c.moveToFirst();
@SuppressWarnings("deprecation")
String trackPath = c.getString(c.getColumnIndex(Schema.COL_DIR));
if (trackPath != null) {
trackDir = new File(trackPath);
}
c.close();
c = null;
}
In the above code, if the cursor is empty (getCount() == 0), the cursor will be not closed.
Looking at a track Details page, in the menu we see Cancel, Display track, and Upload to OSM. Cancel should always be the last item.
The delete all tracks menu item is extremely dangerously close to the export all tracks to GPX menu item. One fears that if one puts on's finger just a little too close, all will be lost. No I didn't dare try to test it to see what would happen. Maybe it really does have a confirmation question. But the user would be still so scared all the time.
Please implement the possibility to upload recorded tracks as compressed zip or gzip. OSM reads these compressed data as easily as gpx files. You could even make this behaviour the default without disadvantages (IMHO).
Advantage of uploading compressed files:
Much less traffic - which is desired when no WLAN is available and the user has to pay bis traffic.
One can display tracks, but no matter how much we unpinch the map, it won't zoom.
Osmtracker is excellent. i created a custom layout for mapping a couple of things related with fire hydrants and local public transport. For me it's perfect but problems begin when I explain to another person, without technical knowledge, how to use the custom layout and how to upload data to OSM in a way I could find it latter.
I think a general approach to make osmtracker customizable to fit special purposes could be positive for the tool. For example a mechanism to download a custom layout, setting default values for the trace details and uploading the gpx to a specific server or service (not only OSM).
The are other issues related ( #83 #84 #69 ) to this ideas but, I'll like to hear if this idea/proposal of enhacement makes sense.
When we display a track in the upper right corner there is a tiny little scale bar with the bar above the number. The worst thing is the bar is pressed very much up against the top of the screen that one can't even see it probably. Also if you look at other people's maps they have a longer bar with several little segments. That would be easier to read.
Hello,
First of all, thank you for your work! I'm trying to use this app to track my university campus indoors.
Here's my question: I noticed that more than once, I added waypoints by accident. After that, I tried to delete them from the Waypoint List. However, I couldn't find an option to do so. I could export the GPX and delete it manually, but I was wondering if we could have that feature in the user interface? Or perhaps I am missing something.
Either way, thank you in advance.
If anyone is working on this, it would make the app very useful.
To the right of the signal strength meter bars on the UI there is a red dot It doesn't turn red when you start recording, it turns red later at some other time. There is no documentation and no overt reason for the dot to the user. Describe the function on the UI, use a different icon, etc.
Put several button layout XMLs for typical usages into OSMTracker distro. So that one can get more comfortable layout for his needs without having to create an XML file, putting files somewhere, etc.
Typical usages:
I can create and commit the cycling layout and, may be, the "highway mapping" layout.
Would love to be able to kick this off using tasker. Any plans to add support?
When I travel on my bike I'd like to take notes with the microphone of my headset. When the screen is on I can trigger a recording with the button at the headset. When the screen is locked this is not possible. Would be nice to have.
I used to map for OSM in Sahara area with a limited Internet access.
There is nothing on the ground to reference to like buildings, trees... Topographic map as background is best. However, I always loose them after relatively short time, zooming out/in somewhere else.
Is possible to add tile cache folder to SD storage with predefined max size ex:100MB and never delete it, if it does not go over max size or unavailable Internet source to update them?
I'm mapping my location for osm and unfortunately i dont have a data connection outside of wifi at home and the best that i can do would be to download my location's osm data for offline rendering on osmand and use its trip recording plugin, but after discovering osmtracker, i want to use it instead, but unfortunately it doesnt have offline rendering of osm data, so i'd like to suggest that it could be integrated by using the mapsforge library, which is used by many android osm apps.
Please always write consistent .gpx filenames.
$ find * -name \*.gpx
2017-02-03_08-18-49/2017-02-03_08-18-49.gpx
2017-02-03_08-34-46/2017-02-03_08-34-46.gpx
2017-02-03_08-35-34/2017-02-03_08-35-34.gpx
2017-05-11_15-28-44/2017-05-11_15-28-44.gpx
2017-05-11_15-34-11/2017-05-11_15-34-11.gpx
2017-05-11_15-50-45/2017-05-11_15-50-45.gpx
2017-05-16_16-43-59/May_16,_2017_16;43;59_2017-05-16_16-43-59.gpx
2017-05-17_05-50-17/May_17,_2017_05;50;17_2017-05-17_05-50-17.gpx
2017-05-17_07-00-14/2017-05-17_07-00-14.gpx
2017-05-23_08-03-21/2017-05-23_08-03-21.gpx
2017-05-23_08-33-26/2017-05-23_08-33-26.gpx
2017-05-23_08-44-19/2017-05-23_08-44-19.gpx
2017-05-23_09-13-18/2017-05-23_09-13-18.gpx
2017-05-26_07-29-25/2017-05-26_07-29-25.gpx
2017-05-26_09-04-43/2017-05-26_09-04-43.gpx
2017-05-27_05-47-47/2017-05-27_05-47-47.gpx
2017-05-29_10-50-38/2017-05-29_10-50-38.gpx
No I have no idea why there are two odd ones.
Did I press a different button to generate them?
If any translation is missing, I'd be happy to provide it.
Please limit the number of digits!
"Photo (4.550999641418457m)"
"big turn (4.550999641418457m)"
I use a Sony Xperia Tablet for tracking. It runs currently Android 5.0.2.
When I set a custom path it always stores in the /sdcard
path (emulated SD card in internal memory) and not on /sdcard1
which is the external/additional actual SD card.
So if I put a path /sdcard1/osmtracker
in the settings it acutally stores the data then in /sdcard/sdcard1/osmtracker
. (took me some time to find my tracked data...)
Is there any way to enable OSMtracker to write on the acutal SD card?
((On my (rooted) smartphone running Android 4.1.2 this is no issue... but this device is not my main tracking device due to age, accuracy and speed.))
Also I think it would be a good thing to be able to set the path by browsing to the desired directory than needing to type in the path. Then OSMtracker maybe should check if it can actually access the desired path.
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.