On 8 Feb 2008, at 11:46, Andy Robinson ((blackadder)) wrote: > 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. >
Yes, I can see that. I guess this won't be a problem if we use, say 'SuperPolygon' or something (I'm not suggesting this) > Cheers > > Andy > Artem _______________________________________________ talk mailing list talk@openstreetmap.org http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/talk