OpenStreetMap meta data collector

Went out and mapped the streets of a town a couple of days ago and came away with an idea on how to make things easier for myself, in any case turned my preliminary ideas into an app for the Android platform.

I managed to figure out how to plot the currect track on gmaps to show what has and hasn’t been mapped to make it more useful for doing the whole thing paperless.

It stores meta data in an OSM file and stores your current track in a GPX file, you can open both at the same time in JOSM for final tweaks and then upload the fruits of your labour.

The app will filter out information if the accuracy is over 16m or the speed goes over 300km/hr if GPS signal is bad a red satallite icon is show, good signal and a green one.

There’s still a lot of room for improvement, but already it’s helped me map out some more streets that I’ve uploaded.

Really liked the concept of your app! Thanks!!

But, just to make sure I’m using it correctly:

  1. I turn DroidCollector on;
  2. I go around the city mapping POIs;

But I don’t understand what comes next:
3) gpx file is automatically saved on my phone (?). If so, where?
4) Do I upload my trace (gpx file) manually to OSM when done?

Can you please explain a bit further how to use the app?

There is actually 2 files stored, one is the gpx trace, the other is an osm file with the points of interest, you can load/open both of these file(s) in JOSM, tweak things and what not and then using JOSM upload the results to OSM. In future versions the GPX files and POIs may get uploaded automatically, but for now while I’m still learning the best way to do things there is still a manual process to prevent mistakes from being automatically injected into the OSM database.

Sorry, forgot to say that the files get written into the /sdcard/DroidCollector directory, which if you mount the sdcard on your desktop/laptop will just be DroidCollector.

Great app! Used it today.

It would be great if you could enter other tags, most importantly the name.

Also, I found a little bug when importing the .osm file into JOSM: it complains about “&” characters, that I entered, they should be converted to “&” to be valid XML.

Anyway, thanks for the great app!

Thanks for leaving a comment in the App Market, the other 2 comments are either ill informed or who knows what.

I can include any tags people would find useful, I tried to include what I thought would be the most useful. Post a list of what would be useful and I’ll include them.

Oops, I’ll fix that now and have an update available soon.

v0.3.0 is up, it fixes the & bug, I’ve also changed the street number option to be ‘Street/Places’ and from there you can enter a street number and/or place name.

I’ve rearranged the Leisure list to be alphabetical, been meaning to do that for a week or so, I also included a few more options under Street/Road section to include bus_stop and speed_camera, speed_camera isn’t technically valid, but I can’t figure out how to do speed camera’s how you are supposed to in JOSM, and no one on the talk-au list knew/said how to either, I understand the logic/rational behind it, but it’s too convulted.

All the text in the app should be easily translated to other languages, just need to add code to switch between them if anyone wants to translate them.

v0.3.1 is now up, it adds all the categories from the shop list from the offical page:

v0.4.0 is now up, added the ability to voice record, but I can’t figure out how to increase the volume as it seems to filter out “background” noise too effectively, at this stage all I have been able to do is either hold it to my head like a phone call, maybe the included headset could work as well but I haven’t tried it.

I have a few points :

  • You use small blue dots for the trail which can’t be seen very good, can you change that to red dots which are connected with a small red line ?
  • You are using Google Maps, can you change that to OSm or make it switchable ?
    Code for this is available here :
  • You display a red or a green satellite image in the corner for a fix but it’s more important to know the number of used Satelites or vdop/hdop
  • There is enough space on the screen to add 2 or 3 buttons at the bottom like “Record General Waypoint More” for fast editing without looking in deep menus. The “more” button would open the current menu that you get with the menu key.
  • maybe you should an entry for “camera”

These seems to be obvious candidates for a user settings. The thing about OSM and me is most of the towns/area around me isn’t mapped at all except for the odd street, this also explains why I’ve opted primarily for google maps since showing OSM maps for me is pretty pointless for the most part. I do realise that most people with android devices at this point in time won’t be in the same predicament and had planned to add it once I figured out how to add the code from the link you pasted.

I’m probably not doing the plotting the best way possible, but it is the best way I could think of, any code/hints/tips on this would be very useful since I’d like to get the CPU usage down when there is a lot of points recorded and being displayed.

I haven’t worked out how many satellites are currently used for a fix, but that isn’t as important as the current estimation of accuracy, usually referred to as vdop/hdop but that number is multiples of 6m. Android and most other java type devices return a number of meters, what the red/green sat essentially means is if the current data will be recorded or not. Although in hindsight I think I need to give the user the option to record less accurate data after coming to a number of conclusions about rough/any data is better than nothing. At present anything greater than 24m accuracy, which is a hdop value of 4 (4*6m = 24m), won’t get recorded and the red sat image will show.

I actually found the red/green image which I can see at a glance to be very useful, since if it was showing numbers you’d have to think about the number, but I can display a number if you really want and have a user setting for it.

Actually I’m adding them all as menu options, android APIs make them display that way, I’ve been meaning to work out how to make semi-transparent buttons, or at least ones that display when you click on the screen similar to what andnav2 does.

Is this for taking pictures or reporting speed cameras?

Basically you have 2 different types of mapping :

  • map an unmapped area → google map view is better
  • find missing streets/POIs/street names in a mapped area which is typically for many areas in germany as example. In this case a OSM map view is the best option.

I like the way how “My tracks” displays the trail. The small blue dots are difficult to follow if you map in a car

You could convert it to something that for example garmin displays as guessed accuracy (in meter) based on vdop/hdop and you should make sure that this information makes it’s way into the GPX.
Currently the Android bar at the top is still displayed and I can see there if I have a fix or not based on the animated GPS icon.

If you map you are generating the GPS track and

  • the street names/POIs are usually written on paper, a general marker in the track helps in such a case to find the position for the written on paper street name if you edit the track in JOSM/Potlatch.


  • You do a audio recording of the name/Pois. OSMtracker for pda starts a 10s recording (you can configure the time) if you press the button. The filename of the recording contains the current position AFAIK


  • you take a photo of the street sign (i mean with the integrated camera)

and with your application you can just write it with the keyboard but that isn’t fast and it sucks if you have 2 other cars behind you and you start typing :slight_smile:

Yup, the OSM code isn’t the easiest to integrate, you need to add the code to your app, rather than a library that could be installed and used by anyone in the same/similar fashion to the gmap APIs, obviously there is pros and cons to both approaches but if their goal is to provide a replacement for the gmap API a library would be the best.

I can make the dots 1px instead of 3px, but I have no idea how My Tracks does the trails, I wish I did.

I don’t need to convert anything, but yes I can include the accuracy reading in the GPX file, not sure why I left it out to be honest.

Don’t be fooled by that icon, it can be 3 or 4km accuracy and show it has a fix, the icon I added shows if the fix is accurate or not.

I’ve got the option to list the street name and/or street numbering already, these get stuffed into the OSM file which is more flexible than trying to mess with the GPX format which I don’t think JOSM does much with the extra info.

I added the recording feature yesterday, so that’s possible.

Adding a photo option is on my list of things to do, although with the voice recording being potentially easier I put it at a lower priority.

That’s why I added the voice recording, you can just add comments as you drive rather than stopping to add text and/or take a picture.

I’m playing with osmdroid code and it seems to suffer the same problem embedded in my app that andnav2 does, not all tiles load, and/or it doesn’t force the tiles to re-load, not sure what’s up with it and/or how to go about fixing it.

Also by default it dumps cache png files on the onboard memory rather than a directory on the sdcard, no idea how good/bad/indiff the cache management code is but filling up the onboard memory is a bad idea no matter how you look at it, people run out of space just installing apps without a bunch of png files taking up space too.

I’ve just uploaded a new version (v0.5.0) that adds a cuisines drop down if the amenity selected is restaurant, cafe or fast_food. I currently default the cuisine to burger but I probably need to set it to different things based on which amenity, looking for suggestions.

I included most if not all the options from this page:

It also includes the OSM code but I haven’t added menus to switch to it yet, still trying to debug the tile issue as I’m not really happy with how tiles are currently handled by the code and tiles just not loading etc.

v0.6.0 is now up, I’ve added the backend code to support settings described in previous posts but I haven’t coded the settings page yet, what this release is mainly for is I managed to get the OSM map API code working almost identical to the gmap API code and you can switch between them.

I still need to get the osmdroid code dumping the png files to the andnav2 tiles directory so both apps can share map tiles etc, but this is more a proof of concept release than anything else.

This version also adds elevation and hdop (hdop = estimated accuracy in metres / 6) values to the gpx files, to the nearest 10th of a hdop.

I uploaded another update (0.6.2), this version dumps the osmtiles.db and the png files to the sdcard instead of using internal FS space, you may need to uninstall/install this app if you used the OSM map to get rid of old map tiles if you don’t want to manually remove tham from the /data/data/ directory.

Also I think I’ve worked out the tile issue, the tiles being saved to the file system are 0 bytes, so if the system tries to load these files and they’re 0 bytes long then obviously they need reloading from the OSM server or some such.

I’ve hacked a working solution for the tiles that fail to download, and it seems to work, so far so good.

All I need to do now is dump the cached files into the same directory structure as andnav2 so both apps can benefit/share each other’s cache rather than duplicating downloads etc.

v0.6.4 is now up, I think it is sucessfully sharing the tile db and png files with andnav2.

Looks really great so far in a short test !

Thanks for this great application !