[OSM-dev] Call for A Proper Area Datatype for OSM

Peter Wendorff wendorff at uni-paderborn.de
Sun Feb 10 22:27:33 GMT 2013


Am 10.02.2013 21:57, schrieb sly (sylvain letuffe):
> Le dimanche 10 février 2013 21:31:28, Jochen Topf a écrit :
>
>> Actually the transition is the easy part.
> I am uneasy with your use of the work easy ! What will be the harder part !
>
> "Just add support in every editors, most data consumer tools and export/api
> side, update the api so you don't download all coastlines at once, run a
> script for converting while keeping history intact, still allowing reverts" is
> what you would call easy ? I admire your enthusiasm ;-)
Fortunately it should be easy
1) to keep some kind of backward compatibility:
1.a. download from the api: The API could e.g. support a compatibility 
switch that forces returning the new areas as the old ways with an 
additional "area=yes"-Tag. area=yes is in fact already used for stating 
that this feature should be interpreted as an area. Without that switch 
the areas could be produced as the new area-objects/tags.
1.b. upload to the api: For compatibility here the area=yes could be 
some standard tag for "this is an area", which could trigger the api to 
check if it's possible to create an area out of the way or not, and do 
so if it's possible.

2) to enhance editors:
2.a. JOSM: already supports area styling at least; it should not be that 
difficult to introduce the area object as a fourth primitive.
2.b. P2: as far as I know P2 has area support in the sense that areas 
are dealt with differently in code.
2.c. iD definitively handles areas differently already.
2.d: other editors shouldn't be much harder, I would guess - and if it 
takes time, see (1) above.

...provided that (as you mentioned already)...
3) ...the problem of really big areas is solved: Downloading the whole 
coastline of Australia is far too much for many editors, the API and 
often for the main memory is an sometimes impossible challenge. But that 
probably has to be solved nevertheless, and if, I believe, we could find 
a compatible solution again. One idea that comes to my mind might be to 
allow downloading "area-extracts" (as well as way-extracts). This could 
be done similar to what we have for relations already: Relations often 
are not completely downloaded in josm, and the relation editor deals 
well with that issue. For ways something similar could be done:
Load way X in bbox B would lead to all nodes in B (and the next one 
outside) as "real nodes" as well as "pseudo nodes" to provide an 
estimated area around. Editors could use the result for drawing the 
polygon as usual (and for the first time they would succeed in filling 
areas correctly even if not loaded completely, where they fail for 
multi-outer-mp-relations yet), and the API could accept something like 
incomplete-edit-calls for areas, like "edit way X: old node index range 
[3..123] out of version 7 changes to the use of nodes [.......] (might 
be less nodes, more nodes or the same node count, but the first two 
nodes keep unchanged, and the nodes behind index 123 doesn't change 
either)". Even more than one node range could be manipulated this way.
I know: there are more issues, even with this short sketch of an idea 
(like e.g. "locking" (you usually can only edit an osm object nobody 
edited since you downloaded it)), but I'm sure it's possible to solve 
these as well.

regards
Peter



More information about the dev mailing list