[osm-professional] Inserting OSM data

Andreas Höschler ahoesch at smartsoft.de
Mon Mar 22 13:04:25 GMT 2010

Hi all,

we are collecting huge amounts of GPS-tracks with a fleet of vehicles 
with on-board computers. These tracks are used internally for a bunch 
of purposes (vehicle monitoring, etc ). We have to maintain our own 
database of tracks, add properties like a so a called pickupCondition, 
which determines how good a track is (e.g. paved, muddy, never use it 
when it's raining,...). We would like to insert this collected data 
into the OSM database and am looking for the best way to do that. We 
have the data in our ERP system. Users are supposed to review the 
collected tracks, add properties (pickupCondition). What we plan to do 
is to use the public OSM data, add the self-collected tracks and use 
the resulting dataset to generate map, calculate routes, etc. We need 
to do it that way, because

• our users cannot use the official OSM editor for several reasons (to 
complicated, no direct access to our tracks,...)
• the "grab OSM data from public server and compile the data for our 
mapserver, routeserver,..."-cycle is too long. It would take 1-2 weeks 
until entered data would show up in our ERP.

However, we want to pass our track data to the OSM project and are 
looking for a neat way to do that. We can convert our data to any 
format (some kind of CSV or XML preferred). We just need a TCP 
interface to post them to or a destination email address where to send 
the files to. Simply uploading the tracks to some server is no good 
solution. When a user creates a track in our database it gets a primary 
key but of course can't be assigned an official OSM ID yet. So the 
upload process would need to be as follows:

Iterate through al newly created tracks
  - send a track with nodes to the OSM server and receive IDs for the 
way and the nodes
  - assign these IDs to our private database objects and thus marking 
them sent and no longer new

For that we need some kind of TCP-based XML interface so that we could 
send a track in some XML format to a TCP socket and get back the IDs 
assigned to objects by the public OSM database server. Only that would 
allow us the assign the returned IDs to our private database objects 
and thus avoid data duplication. Is there such an API (TCP-socket 

What's our best option?

Thanks a lot,


More information about the osm-professional mailing list