[OSM-dev] Diff Upload - possible task for osmosis, bulk uploader?

Frederik Ramm frederik at remote.org
Fri Nov 9 00:36:38 GMT 2007


Hi,

> presumably using the current api 
> it is possible to create two relations, each referencing the other (a 
> circular dependency) where both must have id substitution performed, 
> there is no way of sorting the input file to make this work correctly.  
> It would be nice if the API could prevent this scenario from occurring, 

That would mean that any time a relation is changed, all relations
using that relation would have to be identified and checked, at a high
performance cost.

> but I suspect it doesn't do so currently.  I guess in practice this is 
> very unlikely to occur so probably not a huge deal.

I think so too. I can't think of a good use for circular relations but
if someone else can, let them have their fun ;-)

> I like the relation concept, but it has thrown a few tricky problems 
> into the mix ;-)

Yes I know. It was easy when you could count on having a maximum of
two indirections (way->segment->node)... those were the times!

To upload a pair of circular relations, you'd have to upload one of
them without members and update it later. A dumb bulk-uploader could
probably do this:

1. for each relation, upload a relation with no members and just one
   tag e.g. "note=temporary object", whatever, thus obtaining the id
   for each.
2. upload all nodes and ways.
3. change all relations created in 1. to their intended tags/members.

Which would always work, circular relations or no.

Bye
Frederik

-- 
Frederik Ramm  ##  eMail frederik at remote.org  ##  N49°00.09' E008°23.33'





More information about the dev mailing list