| Original
dataset

|
Source
dataset sent from a customer. Visually looks good, but has several
topology problems. |
| Polygon
boundaries as polylines

|
STEP1: Polygon
To Polyline function will create polyline dataset from the polygon
boundaries. At this stage each polygon is represented by a single
polyline and the polylines overlap on the boundaries between the adjacent
polygons. |
| Cleaned
polylines



|
STEP 2: Clean
Polylines function will do the following:
- Create intersections in all
locations where two polylines intersect.
- Resolve self intersecting polylines
- Clean duplicate polylines
- Move the vertices that are closer to
each other than the fuzzy tolerance to the same location
If we Analyze Nodes of the resulting dataset we'll see only Regular
and Pseudo nodes. Dangles will not be present because the source of
the polylines are closed polygons.
In this case however some of the regular nodes will indicate
topology problems (gaps or overlaps) in the original polygon data. If
we have a regular node on the boundary between two polygons, the
reason might be only a gap or overlap present.
Such problems can be easily fixed on the polylines dataset (much
easier than if we are dealing with polygons)
|
| New Polygons

|
STEP 3: Build
Polygons function will create polygons back from the cleaned
polylines.
At this stage there will be no gaps and overlaps in the data. All
gaps and overlaps will be represented by new polygons and we have to
clean them
The new polygons are still lacking the attributes of the original
polygons |
| Label
points of the original polygons

|
STEP
4: Polygon To
Point with the "Label" option on the original dataset
will create a point dataset in which
- Each polygon will be represented by
a point that is inside the polygon
- Each point will carry all the
attributes of the corresponding original polygon
Using the label points we can
- Transfer the original attributes to
the newly built polygons.
- Identify all new sliver polygons
(former gaps and overlaps in the original data).
|
STEP 4: Use Spatial
Join from the toolbox implementation of ET GeoWizards or the
standard ArcMap tool to join the points identifying overlaps to the
newly created polygons. To make sure that we will be able to easily
identify the slivers, a couple of tasks are needed
- Create in the label point dataset new field (named for example
"Original")
- Populate the field with the same value for all the points (for
example "Yes")
- Use Spatial Join to join the label points to the new polygon
dataset created in STEP 3 above. All original polygons will have
[Original] = "Yes" and the new polygons (former
gaps and overlaps) will not have value in the "Original"
field
|
|
STEP 5: Eliminate
function will join the sliver polygons to the adjacent polygons
depending on the user selected method.
As a result we will have a topologically clean polygon dataset |
|
Sample Model
of the entire process

|