[OSM-dev] ROMA servers down - osmosis large way problem

Stefan de Konink stefan at konink.de
Wed Dec 31 06:44:53 GMT 2008


Maarten Deen wrote:
> You will have to keep the whole way
> for the off chance that you zoom out in the editor or really want to edit the
> whole way (like splitting it).

You don't have to, there is nothing preventing edits that happen in the 
middle of a way. The problem only occurs at the cutpoints. If a user is 
prevented to edit that your solution is there. Even then fetching that 
small bbox, or really request the way in full, is just a request away.

Don't make partial stuff more complex than it is. The editor reads any 
non-continuous list of integers as 'out of bbox'. For example the 
following returns:

nds idx1
nds idx2
nds idx4
nds idx5
nds idx8


The editor will now render 5 nodes within the viewing area. It will even 
highlight these when a way is selected. But it will on render lines 
between 1..2 and 4..5. Spitting between them is possible. 
Extending/moving of endpoints is not possible.

A variation to this would be that the first node and last node (have to 
be marked as last) is always extendable.


The edits are pushed back the server with the algorithm mentioned in a 
few mails a go, Microsoft used this for XML updates. Edits between two 
nodes will be marked as 2.1, 2.2, 2.3 and 4.1, 4.2, etc. Algorithm to 
merge it would them be compare the two fixed begin and end integers (if 
they are at the same position), if so merge the float edits between them.

Pitfalls are ofcourse inserts before the first observed node, which can 
be compensated by looking up for the first instance of a nodeid. Since a 
node id is only allowed one time in the list. If this node is still at 
the same position, likewise for the end node, we can safely merge 
everything between it in order.


Stefan




More information about the dev mailing list