DK11 for Delphi | GisTopology.TGIS_Topology | Classes | Constructors | Methods | Properties | Events
Encapsulation of basic topological operations.
// Delphi type TGIS_Topology = class( TGIS_ObjectDisposable ) end;
// C++ Builder class PASCALIMPLEMENTATION TGIS_Topology : public TGIS_ObjectDisposable { };
Name | Visibility | Description | |
---|---|---|---|
Create | public | Create instance. _{} | |
Name | Visibility | Description | |
---|---|---|---|
ArcFind | public | Find on the list arc with duplicated geometry. _{ } | |
ArcMakeConnected | public | Connect the current unconnected shape. _{ } | |
ArcSplitOnCross | public | Return a copy of _shp divided into parts in crossing points with shapes from the list. _{ } | |
CheckShape | public | Checks whether a shape is valid. _{ } | |
ClearShape(TGIS_Shape) | public | Make a copy of the shape with removal of redundant (overlapped) points. _{ } | |
ClearShape(TGIS_Shape; Boolean) | public | Make a copy of the shape with removal of redundant (overlapped) points. _{ } | |
Combine(TGIS_Shape; TGIS_Shape; TGIS_TopologyCombineType) | public | Compute a new shape from the two shapes provided, based on a given operation. _{ } | |
Combine(TGIS_Shape; TGIS_Shape; TGIS_TopologyCombineType; Boolean) | public | Compute a new shape from the two shapes provided, based on a given operation. _{ } | |
ConcaveHull(TGIS_LayerVector; Double) | public | Creates a concave hull based on the provided layer and edge length. _{ } | |
ConcaveHull(TGIS_Shape; Double) | public | Creates a concave hull based on the provided shape and edge length. _{ } | |
ConcaveHull(TGIS_Shape; TGIS_Shape; Double) | public | Creates a concave hull based on the two provided shapes and edge length. _{ } | |
ConcaveHull(TGIS_Shape; TGIS_Shape; Double; Boolean) | public | Creates a concave hull based on the two provided shapes and edge length. _{ } | |
Contains | public | Tests contains relationship for given shapes _{ } | |
ConvexHull(TGIS_LayerVector) | public | Creates a convex hull based on the provided layer. _{ } | |
ConvexHull(TGIS_Shape) | public | Creates a convex hull based on the provided shape. _{ } | |
ConvexHull(TGIS_Shape; TGIS_Shape) | public | Creates a convex hull based on the two provided shapes. _{ } | |
ConvexHull(TGIS_Shape; TGIS_Shape; Boolean) | public | Creates a convex hull based on the two provided shapes. _{ } | |
Cross | public | Tests cross relationship for given shapes _{ } | |
Difference(TGIS_Shape; TGIS_Shape) | public | Compute a new shape as a difference of two shapes provided. _{ } | |
Difference(TGIS_Shape; TGIS_Shape; Boolean) | public | Compute a new shape as a difference of two shapes provided. _{ } | |
Disjoint | public | Tests disjoint relationship for given shapes _{ } | |
Equality | public | Tests equality relationship for given shapes _{ } | |
FindAndDeleteLoops(TGIS_Shape) | public | Delete any loop which is smaller than the tolerance. _{ } | |
FindAndDeleteLoops(TGIS_Shape; Boolean) | public | Delete any loop which is smaller than the tolerance. _{ } | |
FindSameOnList | public | Check, if the current shape has an exactly similar counter partner on a given list. _{ } | |
FixShape(TGIS_Shape) | public | Computes a shape without self-crossings (loops) for arcs and polygons, and with a proper winding for polygon (clockwise, and opposite for holes). _{ } | |
FixShape(TGIS_Shape; Boolean) | public | Computes a shape without self-crossings (loops) for arcs and polygons, and with a proper winding for polygon (clockwise, and opposite for holes). _{ } | |
FixShapeEx(TGIS_Shape; Boolean; Boolean) | public | Computes a shape without self-crossings (loops) for arcs and polygons, and with a proper winding for polygon (clockwise, and opposite for holes). _{ } | |
FixShapeEx(TGIS_Shape; Boolean; Boolean; Boolean) | public | Computes a shape without self-crossings (loops) for arcs and polygons, and with a proper winding for polygon (clockwise, and opposite for holes). _{ } | |
GetCrossings | public | Get all crossing points between given shapes. _{ } | |
GetCrossings3D | public | Get all crossing points between given shapes. _{ } | |
Intersect | public | Test intersects relationship for given shapes _{ } | |
Intersection(TGIS_Shape; TGIS_Shape) | public | Compute a new shape as an intersection of two shapes provided. _{ } | |
Intersection(TGIS_Shape; TGIS_Shape; Boolean) | public | Compute a new shape as an intersection of two shapes provided. _{ } | |
MakeBuffer(TGIS_Shape; Double) | public | Compute a buffer around a shape to a given distance. _{ } | |
MakeBuffer(TGIS_Shape; Double; Integer; Boolean) | public | Compute a buffer around a shape to a given distance. _{ } | |
MakeOffsetLine(TGIS_Shape; Double) | public | Compute a shifted line for a shape to a given distance. _{ } | |
MakeOffsetLine(TGIS_Shape; Double; TGIS_JoinType) | public | Compute a shifted line for a shape to a given distance. _{ } | |
Overlap | public | Tests overlap relationship for given shapes _{ } | |
PartStatus | public | Verifies if provided part is an island/hole _{ } | |
Relate | public | Checks nine-intersection matrix for given shapes. _{ } | |
RelatePrepare | public | Mark given shape as a main shape for subsequent Relate operations. _{ } | |
SplitByArc(TGIS_Shape; TGIS_ShapeArc) | public | Divide an input shape (polygon, arc or multipoint) into a row of shapes along a given line. _{ } | |
SplitByArc(TGIS_Shape; TGIS_ShapeArc; Boolean) | public | Divide an input shape (polygon, arc or multipoint) into a row of shapes along a given line, otherwise return a copy of the shape when the line doesn't divide it. _{ } | |
SymmetricalDifference(TGIS_Shape; TGIS_Shape) | public | Compute a new shape as a symmetrical difference of two shapes provided. _{ } | |
SymmetricalDifference(TGIS_Shape; TGIS_Shape; Boolean) | public | Compute a new shape as a symmetrical difference of two shapes provided. _{ } | |
Touch | public | Tests touch relationship for given shapes _{ } | |
Union(TGIS_Shape; TGIS_Shape) | public | Compute a new shape as an union of two shapes provided. _{ } | |
Union(TGIS_Shape; TGIS_Shape; Boolean) | public | Compute a new shape as an union of two shapes provided. _{ } | |
UnionOnList(TGIS_ShapeList) | public | Compute a union from the list of shapes. _{ } | |
UnionOnList(TGIS_ShapeList; Boolean) | public | Compute a union form the list of shapes. _{ } | |
Within | public | Tests within relationship for given shapes _{ } | |
Name | Visibility | Description | |
---|---|---|---|
ForceShapeFixing | public | If True then topological operations will force shape fixing. _{ } | |
Tolerance | public | Tolerance of operations. _{ } | |
TatukGIS supports a powerful, yet easy to manage, mechanism for querying against spatial relationships between two shapes. This mechanism is known as the Dimensionally Extended 9 Intersection Model (DE-9IM).
The idea is to manage a 9 element mechanism in which each element defines the relationship possibilities between the interiors, exteriors, and boundaries of two shapes. The relationship is defined in terms of intersection types, or lack of an intersection.
The nature of the shape intersections is defined by a set of interior, boundary and exterior relationship possibilities, forming a 3×3 table. The table can be represented by a string (row-by-row) '*'. Each element of the table represents an intersection possibility:
T - Intersection exists
F - Intersection does not exist
* - Does not matter
0 - Intersection is a point (dimension = 0)
1 - Intersection is a line(dimension = 1)
2 - Intersection is a polygon (dimension = 2)
1. Equality
A & B Interiors intersect and no interior or boundary of one shape intersects with the exterior or boundary other shape. String representation is:
T*F**FFF
Predefined constant: RELATE_EQUALITY
2. Disjoint
There is no intersection of any kind. String representation is:
FF*FF****
Predefined constant: RELATE_DISJOINT
3. Intersect
By interiors. String representation is:
T********
Predefined constant: RELATE_INTERSECT
Interior of A intersects the boundary of B String representation is:
*T*******
Predefined constant: RELATE_INTERSECT1
Boundary of A intersects the Interior of B String representation is:
***T*****
Predefined constant: RELATE_INTERSECT2
Boundary of A intersects the Boundary of B String representation is:
****T****
Predefine constant: RELATE_INTERSECT3
4. Touch
Boundary of A intersects with interior of B. String representation is:
F**T*****
Predefined constant: RELATE_TOUCH_INTERIOR
Boundary of A intersects boundary of B (but not the interior of B) String representation is:
F***T***
Predefined constant: RELATE_TOUCH
5. Overlap
A overlaps B (and B overlaps A) if both the interiors and exteriors intersect. General formula (except line-to-line situations). String representation is:
T*T***T**
Predefined constant: RELATE_OVERLAP
A overlaps B (and B overlap A) if the interior intersection has a dimension equal to 1 (is a line) and the exteriors intersect. Only for line-to-line relationships. String representation is:
1*T***T**
Predefined constant: RELATE_OVERLAP_LINE
6. Cross
A crosses B if the interiors intersect and the exterior of B intersects with the interior of A. General formula (except line-to-line situations). String representation is:
T*T******
Predefined constant: RELATE_CROSS
A crosses B (and B crosses A) if the dimension of the intersection equals 0 (is a point). Only for line-to-line relationships. String representation is:
0********
Predefined constant: RELATE_CROSS_LINE
7. Within
A is within B if the interiors intersect and the exterior of B is not intersected by the Interior or boundary of A. String representation is:
T*F**F***
Predefined constant: RELATE_WITHIN
8. Contains
A contains B if the interiors intersect and the exterior of A is not intersected by the Interior or boundary of B. String representation is:
T*****FF*
Predefined constant: RELATE_CONTAINS