"Back in the “olden-days” GIS users, particularly ArcInfo users, were well versed in geospatial topology because of the coverage" (Geospatial Topology, the Basics)
But ESRI is not the only solution:
- From these beginnings (at the same time as ArcInfo), GRASS GIS is also a full topological GIS with rules that differ from those of ESRI:
- The topology in PostGIS is much more recent with other rules
The GRASS GIS Topology Data Model (from GRASS wiki and Full planar topology in GRASS, in Italian).
In the GRASS GIS data model are defined various topological elements:
nodes - 0D elements:
for each node is defined which lines/boundaries starts and ends in this node;
lines - 1D elements which cannot form areas:
for each line is defined a start and end node;
boundaries - 1D elements which can form areas:
for each boundary is defined a start and end node, and an area on the left and right
centroid : point located inside area:
for each centroid is defined an area
areas - 2D elements formed by closed set of boundaries and optionally by one centroid located inside the area:
for each area is defined the list of boundaries which forms the area
(outer ring), and the list of isles located inside the area
isle - 2D elements formed by areas:
for each isle is defined the list of boundaries which forms the isle (it's outer ring),
and optionally by the area where the isle is located.
The PostGIS Topology Model:
The model defines only topological elements
nodes - 0D elements
Is defined by geometry (point) and by the face where the node is located (can be NULL)
edges - 1D elements
Is defined by geometry (linestring), start and end node, next left and right edge
(ie. connectivity) and by the face on the left and right.
faces - 2D elements
Is defined by bounding box.
- when you import a shapefile or a QGIS layer in GRASS GIS, they are modified to comply with the topological rules (GRASS layers, see Vector data processing in GRASS GIS, v.clean,v.build)
- The same is true when digitizing new vector maps
You can use GRASS GIS only or GRASS GIS from QGIS with the grass plugin or the Sextante plugin, but be careful, even if the layer is topologically correct in GRASS GIS, this would not be the case of the resulting layer in QGIS (no topology) !