[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