Parent Topic: Vectors (VEC)
Rings
Polygonal regions can be represented several different ways in GeoGateway. The simplest of which is closed polylines, that is, a vector for which the last vertex is the same as the first. These are sometimes called simple whole polygons.

In order to represent polygons with holes (doughnuts), or regions that consist of multiple islands, there exists a concept of multiple ring polygons. A multiple ring polygon essentially consists of a series of whole polygons, each of which is called a ring.

If one ring is contained in another, then it represents an internal boundary. The area that is part of the polygon is the area between the outer and inner ring. If the rings are independent, then they represent different islands, all of which are considered to be the same region. Multi-ring polygons are not polygons in the geometric sense, but they do represent regions, whether continuous (connected) or not.

Multi-ring polygons are represented in GeoGateway as regular shapes, with the vertices of all the rings all aggregated in the vertex list. The boundary between different rings is establish by entries in a field called RingStart. This is basically a list of vertex numbers, each of which is the first in a new ring. There is no entry for vertex 1 which is implicitly the start of the first ring.

For example:

Imagine the following scenario: Two islands (1) and (4), with island (1) having two holes (2) and (3), and island (4) having one hole (5).

 (1)                     (4)
 +-------------+         +------+
 | (2)  (3)    |         | (5)  |
 | +-+  +----+ |         | +-+  |
 | | |  |    | |         | | |  |
 | +-+  |    | |         | +-+  |
 |      +----+ |         +------+
 |             |
 +-------------+
This would be represented as one shape with 25 vertices and a RingList attribute of { 5, 10, 15, 20 }, with the vertex list consisting of the points of rings 1, 2, 3, 4, and 5. There is no expected order of rings, therefore holes can appear before the outer ring defining an area.

Note: Vertex numbers are considered to start from zero for the purposes of the RingStart variable, therefore ring (1) consists of vertices 0 - 4, and vertex 5 is the first vertex of ring (2).

When drawn by ring-aware applications, the line segment connecting one ring to the next is not drawn. In the above case, no line would be drawn between vertex 4 and 5.

For shapes with the RingStart attribute, it is not a strict requirement that the so called rings represent closed polygons. If a ring is not closed it does not represent a region boundary, but it is still drawn with the same disconnection logic as a closed ring. Thus, the concept of rings can be overloaded to represent a series of spatially disconnected polylines that share a common attribute record. This concept may be used in the case of interrupted streets, for instance.


Parent Topic: Vectors (VEC)
About PCI Help Gateway