[GRASS-SVN] r36230 - grass/trunk/lib/vector

svn_grass at osgeo.org svn_grass at osgeo.org
Sat Mar 7 04:39:55 EST 2009


Author: mmetz
Date: 2009-03-07 04:39:55 -0500 (Sat, 07 Mar 2009)
New Revision: 36230

Modified:
   grass/trunk/lib/vector/vectorlib.dox
Log:
Programmer's Manual updated

Modified: grass/trunk/lib/vector/vectorlib.dox
===================================================================
--- grass/trunk/lib/vector/vectorlib.dox	2009-03-07 08:08:00 UTC (rev 36229)
+++ grass/trunk/lib/vector/vectorlib.dox	2009-03-07 09:39:55 UTC (rev 36230)
@@ -108,7 +108,7 @@
 <ul>
 <li> multi-layer: features in one vector map may represent more layers and 
     may be linked to more external tables (see \ref vlib_categories_layers);
-<li> 2D and 3D vector geometry with topology (see \ref vlib_topology_management);
+<li> 2D and 3D vector geometry with full topology support for 2D and partial topology support for 3D (see \ref vlib_topology_management);
 <li> multi-format: external data formats supported (SHAPE-file, OGR sources etc.);
 <li> portability: platform independent internal format, read- and writable on 32bit,
       64bit etc. computer architectures;
@@ -149,8 +149,12 @@
 </ul>
 
 Note that all lines and boundaries can be polylines (with nodes in
-between). 
+between).
 
+Topology also holds information about isles. Isles are located within an area, not
+touching the boundaries of the outer area. Isles consist of one or more areas
+and are used internally by the vector libraries to maintain correct topology of areas.
+
 \section libraries Vector libraries
 
 Besides internal library functions there are two main libraries:
@@ -410,9 +414,9 @@
 <TR><TD>Name</TD><TD>Type</TD><TD>Number</TD><TD>Description</TD></TR>
 <TR><TD>n_lines</TD><TD>I</TD><TD>1</TD><TD>number of boundaries</TD></TR>
 <TR><TD>lines</TD><TD>I</TD><TD>n_lines</TD><TD>Line ids</TD></TR>
-<TR><TD>area</TD><TD>I</TD><TD>1</TD><TD>Area id</TD></TR>
-<TR><TD>N,S,E,W</TD><TD>D</TD><TD>4</TD><TD>Area bounding box</TD></TR>
-<TR><TD>T,B</TD><TD>D</TD><TD>2</TD><TD>Area bounding box for 3D (only if with_z=1)</TD></TR>
+<TR><TD>area</TD><TD>I</TD><TD>1</TD><TD>Outer area id</TD></TR>
+<TR><TD>N,S,E,W</TD><TD>D</TD><TD>4</TD><TD>Isle bounding box</TD></TR>
+<TR><TD>T,B</TD><TD>D</TD><TD>2</TD><TD>Isle bounding box for 3D (only if with_z=1)</TD></TR>
 </TABLE>
 
 <b>Feature types:</b>
@@ -495,13 +499,35 @@
 \endverbatim
 
 In GRASS, whenever an 'inner' ring touches the boundary of an outside area, even in
-one point, it is no longer an 'inner' ring, it is simply another area.
-A, B above can never be exported from GRASS as polygon A with inner ring B
-because there are only 2 areas A and B and no island.
+one point, it is no longer an 'inner' ring (Isle in GRASS topology), it is
+simply another area. A, B above can never be exported from GRASS as polygon A
+with inner ring B because there are only 2 areas A and B and no island.
 
 
 \subsection Topology_Example_3 Topology Example 3:
 
+This is handled correctly in GRASS: Areas A1, A2, and A3 can be filled differently.
+
+\verbatim
++---------------------+
+|  A1                 |
++   +------+------+   |
+|   |  A2  |  A3  |   |
++   +------+------+   |
+|          I1         |
++---------------------+
+\endverbatim
+
+In GRASS, whenever an 'inner' ring does not touch the boundary of an outside area,
+also not in one point, it is an 'inner' ring (Isle). The areas A2 and A3 form a
+single Isle I1 located within area A1. The size of Isle I1 is substracted from
+the size of Area A1 when calculating the size of Area A1. Any centroids falling
+into Isle I1 are excluded when searching for a centroid that can be attached to
+Area A1. A1 above can be exported from GRASS as polygon A1 with inner ring I1.
+
+
+\subsection Topology_Example_4 Topology Example 4:
+
 v.in.ogr/v.clean can identify dangles and change the type from boundary
 to line (in TIGER data for example). 
 Distinction between line and boundary isn't important only for dangles. Example:



More information about the grass-commit mailing list