[OSM-dev] Area support (was: 0.6 API Status)

"Marc Schütz" schuetzm at gmx.net
Wed Jul 9 12:34:47 BST 2008


> Hi,
> 
> > eg. we've also decided to add area 
> > support ;-)?
> 
> Independent of whether or not 0.6 has area support (it's not planned to 
> the best of my knowledge) - how would you model areas (a) in the SQL 
> structure and (b) in XML?
> 
> It seems obvious that areas, like ways, need to be based on a sequence 
> of nodes. (If you were to base them on ways, then that would be nothing 
> different from today's relations, would it?)
> 
> An area with no holes inside would trivially have the exact same 
> structure as a way, perhaps using <area> instead of <way>. It would also 
> omit the last <nd ref="..."> which, for circular ways, is identical to 
> the first, because for an area it is obvious that the boundary must be 
> closed.
> 
> <area id="1234" />
>     <tag k="landuse" v="industrial" />
>     <nd ref="1" />
>     <nd ref="2" />
>     <nd ref="3" />
> </area>
> 
> Now if the area has holes - and I assume that the area type needs to 
> take care of that - how would these be modelled? We'd have a number of 
> "node groups", one of which is the outer boundary, the others would be 
> inner boundaries.
> 
> One possible XML representation would be to say that the node groups are 
> numbered, with the outer always carrying the number 0:
> 
> <area id="1234" />
>     <tag k="landuse" v="industrial" />
>     <nodegroup id="1234-0">
>     <nd ref="1" />
>     <nd ref="2" />
>     <nd ref="3" />
>     </nodegroup>
>     <nodegroup id="1234-1">
>     <nd ref="4" />
>     <nd ref="5" />
>     <nd ref="6" />
>     </nodegroup>
>     ...
> </area>
> 
> This structure could be mirrored in the SQL tables, with the 
> "area_nodes" table having an extra "nodegroup" column.
> 
> Areas could be introduced slowly, by simply allowing them in the API and 
> not converting anything at first, instead counting on people doing the 
> conversion with scripts in the time after the switch. Alternatively, 
> areas could be populated from existing area-ways and multipolygon 
> relations when they are introduced, but such operations tend to 
> complicate the deployment of a new API.

Are areas-with-holes really necessary (as primitives)? After all, we don't have multi-ways or ways-with-gaps either...

Regards, Marc

-- 
Psssst! Schon das coole Video vom GMX MultiMessenger gesehen?
Der Eine für Alle: http://www.gmx.net/de/go/messenger03




More information about the dev mailing list