Re: [OSM-talk] [OSM-dev] Polygons and Multipolygons

2008-02-08 Thread Frederik Ramm
Hi,

 I found the way term 'Multipolygon' is used in OSM context is  
 confusing.

True. What we had been looking for was a term for polygons with  
holes; it seemed unreasonable to create a relation type=polygon as  
plain polygons, without holes, don't require relations. But  
multipolygon is somewhat of a misnomer.

 Shouldn't we be calling MultiPolygon  Polygon?

There are only 2788 in the database so it would not be too hard to  
change. I wanted to automatically add the inner and outer flags  
to the existing polygons anyway, although they're not strictly  
required they would make processing easier for some.

Bye
Frederik

-- 
Frederik Ramm  ##  eMail [EMAIL PROTECTED]  ##  N49°00.09' E008°23.33'



___
talk mailing list
talk@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk


Re: [OSM-talk] [OSM-dev] Polygons and Multipolygons

2008-02-08 Thread Andy Robinson (blackadder)
Artem Pavlenko wrote:
Sent: 08 February 2008 11:42 AM
To: talk Openstreetmap
Cc: OSM-Dev Openstreetmap
Subject: [OSM-dev] Polygons and Multipolygons

Hello,

I found the way term 'Multipolygon' is used in OSM context is confusing.

Here are ISO 19125-1 definitions :

1. Polygon

A Polygon is a planar Surface, defined by 1 exterior boundary and 0
or more interior boundaries. Each
interior boundary defines a hole in the Polygon.

The assertions for polygons (the rules that define valid polygons) are:
1. Polygons are topologically closed.
2. The boundary of a Polygon consists of a set of LinearRings that
make up its exterior and interior
boundaries.
3. No two rings in the boundary cross, the rings in the boundary of a
Polygon may intersect at a Point but
only as a tangent :
 P Î Polygon,  c1, c2 Î P.Boundary(), c1 1 c2,  p, q Î Point, p, q
Î c1, p 1 q, [ p Î c2 ? q Ï c2]
4. A Polygon may not have cut lines, spikes or punctures:
 P Î Polygon, P = Closure(Interior(P))
5. The Interior of every Polygon is a connected point set.
6. The Exterior of a Polygon with 1 or more holes is not connected.
Each hole defines a connected
component of the Exterior.
In the above assertions, Interior, Closure and Exterior have the
standard topological definitions. The
combination of 1 and 3 make a Polygon a Regular Closed point set.

2. MultiPolygon

A MultiPolygon is a MultiSurface whose elements are Polygons.

The assertions for MultiPolygons are :
1. The interiors of 2 Polygons that are elements of a MultiPolygon
may not intersect.
 M Î MultiPolygon,  Pi, Pj Î M.Geometries(), i1j, Interior(Pi) Ç
Interior(Pj) = Æ
2. The Boundaries of any 2 Polygons that are elements of a
MultiPolygon may not ‘cross’ and may touch
at only a finite number of points. (Note that crossing is prevented
by assertion 1 above).
 M Î MultiPolygon,  Pi, Pj Î M.Geometries(),  ci Î Pi.Boundaries
(), cj Î Pj.Boundaries()
ci Ç cj = {p1, ….., pk | pi Î Point, 1 = i = k}
3. A MultiPolygon is defined as topologically closed.
4. A MultiPolygon may not have cut lines, spikes or punctures, a
MultiPolygon is a Regular, Closed point
set:
 M Î MultiPolygon, M = Closure(Interior(M))
5. The interior of a MultiPolygon with more than 1 Polygon is not
connected, the number of connected
components of the interior of a MultiPolygon is equal to the number
of Polygons in the MultiPolygon.

The boundary of a MultiPolygon is a set of closed curves
(LineStrings) corresponding to the boundaries of
its element Polygons. Each Curve in the boundary of the MultiPolygon
is in the boundary of exactly 1
element Polygon, and every Curve in the boundary of an element
Polygon is in the boundary of the
MultiPolygon.


It might look quite verbose but it all comes down to very simple fact:

1. What we call Multipolygon is just a Polygon
2. Multipolygon is a collection of Polygons


Shouldn't we be calling MultiPolygon  Polygon?


Mostly I suspect so. Perhaps the issue came to light when people started to
refer to islands in lakes where there are two polygons, one inside the
other.

Cheers

Andy


___
talk mailing list
talk@openstreetmap.org
http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk