[OSM-dev] osm2pgsql bbox filter when applying diffs?
frederik at remote.org
Fri Mar 26 08:14:33 GMT 2010
Peter Körner wrote:
>> Is there a way to process the diff files in a way that the diff only
>> contains changes in my area of interest?
> If you're fetching the diffs with "osmosis --rrii --wxc", can't you plug
> a --bb task afzter that? Or does this task not work with
> If so, this would be the place to implement this
> functionality, wouldn't it?
No. Imagine a relation with 500 members and someone changes a tag. The
relation itself will be contained in the osmChange file, but none of the
members will because they are unchanged. Any task handling the osmChange
file will not know anything about the spatial extent of the relation.
This would only work if the geometry of ways and relations was included
in the osmChange file, significantly increasing their size - or if the
process which wants to cut a section out of the osmChange file has
access to the underlying data.
With osmosis you can do a --rrii --rx --ac --bb --wx to read your xml,
apply the change, cut out the area of interest (again) and save it. But
that is impractical for something like minutely diff application.
It would have to be done in osm2pgsql - when applying a change, it would
have to do the following:
* if change type = modify or delete: apply change as long as object to
be modified or deleted is present in local data base (I think it does
* if change type = create and object type = node: apply change only if
node is within bbox
* if change type = create and object type != node: apply change only if
referenced members are present in local data base
A problem arises (as always) if you have objects that are half in and
half out; they will need special treatment. There will be difficult
scenarios (nodes A, B created outside bounding box; way C created to
connect A and B; all these changes are ignored; later node A is moved
inside the bounding box in a different osmChange file; how will you now
get hold of way C which suddenly has entered your area of interest?).
Frederik Ramm ## eMail frederik at remote.org ## N49°00'09" E008°23'33"
More information about the dev