[OSM-dev] Inserting OSM data
ahoesch at smartsoft.de
Tue Apr 6 11:00:11 BST 2010
>> The ideal solution for use would be to send a WAY segment in OSM
>> format to some service and receive a response with the IDs for the
>> created way and the created nodes! But I understand this is not
>> supported due to the obvious merging problem (avoid duplicates)!?
> With the API, you can upload new nodes/ways/relations, fetch the
> existing ones, and update the existing ones (uploading a changeset).
> The problem is that you might upload a new way that overlaps an
> existing OSM way. Either you upload it and merge with OSM tools, or
> you download the OSM data in the neighborhood, check if it overlaps,
> and update your data with the already-existing OSM data, etc etc.
We are now about to implement the <our system> --> public OSM server
filter and as a first measure would like to simply upload GPS traces
generated by our employees. We have the trackpoints in our database. We
can easily generate a gpx file from that
<?xml version="1.0" encoding="UTF-8"?>
<gpx version="1.0" creator="OpenStreetMap.org"
<trkpt lat="53.28473" lon="10.382721"/>
<trkpt lat="53.284677" lon="10.383027"/>
<trkpt lat="53.284665" lon="10.383144"/>
<trkpt lat="53.284638" lon="10.383407"/>
and now are looking for a way to programmatically upload that to the
OSM server for the community to review the data and conversion into
actual ways and nodes. We plan to use a system() call from our
application and execute the following command
curl -v -v -d @tracks.gpx -H "X_HTTP_METHOD_OVERRIDE: POST"
but I assume that the above command is not entirely correct!? I
especially not understand the "It expects the following POST parameters
in a multipart/form-data HTTP message:" part on
http://wiki.openstreetmap.org/wiki/API_v0.6. How has the above command
line to be modified to work?
In a later step we want to add functionality to our system that allows
our users to directly create nodes and ways on the public OSM server
but this requires a bunch of problems to be solved first. FOr now we
would like to stick to uploading traces. How can this best be done from
a unix application?
Thanks a lot,
More information about the dev