What about auto upload of gpx to OSM?



normally i alway upload my GPS tracks to OSM, i’m sure are thousands of users are doing the same. so, what if Mapillary works in some options for auto upload the GPX extracted from the sequences to OSM? it can be a excellent helpful for the project. :slight_smile:


Oh what a good idea! I do the same actually.


I can see a problem with that. Gpx tracks are seen as a form of raw data in osm and it is not desirable that you edit your traces before uploading to osm. Traces in Mapillary are quite often heavily edited (and there is no way to tell if this happened) and thus shouldn’t be uploaded to osm.

The danger is that when you upload a Mapillary trace that’s edited with the help of a osm background, someone will later us that trace to improve the osm data. And voilà, you’ve created a circle jerk.

I’ve posted this before in a discussion about this subject at https://github.com/mapillary/mapillary_issues/issues/388


I think the solution can be that the python script for uploading should also generate a GPX from the EXIF co-ordinates and push that to OSM.
Anyway I think that GPS tracks are not the way we map today any more, there are aerial images that do better for this. In the early days we didn’t had that and GPS tracks were the only way to map streets.


I mostly agree with you here, but there are always situations where gps tacks are useful, like tracks in a forest that are hard to see on imagery, or recently build roads.

I think there are 2 possible solutions:

  1. Mapillary should support downloading all gps traces in a given BBox
    via the API, then editors like JOSM can add mapillary as a
    additional and optional source for gps traces.
  2. Just install the Mapillary JOSM plugin.


I’d prefer the first solution and like to add that there is already an attempt to find unmapped roads with scout/skobller data, for Mapillary it would be fine to add our point-data there.


I don’t know if any one is doing this but you also could calculate the average speed driven on a road and compare that to the maxspeed in osm.


actually, the api can do it.

  1. you can get all your “key” for your sequences
    ex: https://a.mapillary.com/v2/search/s/ul?client_id=MkJKbDA0bnZuZlcxeTJHTmFqN3g1dzo1YTM0NjRkM2EyZGU5MzBh&limit=9999&max-lat=90&max-lon=180&min-lat=-90&min-lon=-180&user=dalacost

  2. using this key you can download the GPS one by one with this url https://a.mapillary.com/v1/s/gpx/{KEY}.gpx
    ex: https://a.mapillary.com/v1/s/gpx/Cc54HoJbd6Y-uIGLIlLcJg.gpx

i could write a script for download all my traces…


my preliminary GPX downloader script https://github.com/dalacost/mapillary_tools/blob/master/python/download_gpx_from_sequences.py


You’re exposing your client id for the API to the public, I don’t know if this is allowed.


mmm ups, do you have more information about that?


There was some recent work done to add in more gps data traces to that in south america. A GPX export api/db dump would probably be a good fit to add in the same way.


How do you edit your trace in the Mapillary app? I think it would be safe to enable auto-uploading from the app. Obviously not the web interface though.


Hi all,

Just sharing a method to download GPX tracks with API V3 for those that haven’t seen. Sequences can be downloaded in the GPX format using this call.

One example would be:

curl -H "Accept: application/gpx+xml" "https://a.mapillary.com/v3/sequences?bbox=106.20208740234375,47.431803338643334,107.74841308593749,48.350773448467294&client_id=<CLIENT_ID>" > sample_sequences.gpx

Bounding box format is mix,miny,maxx,maxy.
You can also user other parameters like the sequence ID or the username.

Credit for @tao for building this into the API.