[OSM-dev] Inserting OSM data
Andreas Höschler
ahoesch at smartsoft.de
Mon Mar 22 13:04:27 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
based)?
What's our best option?
Thanks a lot,
Andreas
More information about the dev
mailing list