User Tools

Site Tools


api:dk11:activex:tatukgis_xdk11.tgis_topology

TGIS_Topology class

DK11 for ActiveX | TatukGIS_XDK11.TGIS_Topology | Classes | Methods | Properties

Encapsulation of basic topological operations.

Available also on: Delphi | .NET | Java.

Syntax

// C#
public class TGIS_Topology : ITGIS_Topology, IConnectionPointContainer, ITGIS_TopologyEvents 
{
}
' VisualBasic
Public Class TGIS_Topology
  Implements ITGIS_Topology
  Implements IConnectionPointContainer
  Implements ITGIS_TopologyEvents
End Class
// Oxygene
type
  TGIS_Topology = public class
  end;

Implements

ITGIS_Topology IConnectionPointContainer ITGIS_TopologyEvents

Methods

Inherited Overrides Protected
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.
AttachDelphiObj public Only for internal use of TatukGIS.
(Inherited from ITBaseObject)
BusyEvent public Busy event.
(Inherited from ITGIS_TopologyEvents)
CheckShape public Check if the polygon is proper.
ClearShape public Make a copy of the shape with removal of redundant (overlapped) points.
ClearShape_2 public Make a copy of the shape with removal of redundant (overlapped) points.
Combine public Compute a new shape from the two shapes provided, based on a given operation.
Combine_2 public Compute a new shape from the two shapes provided, based on a given operation.
ConcaveHull public Creates a concave hull based on the provided layer and edge length.
ConcaveHull_2 public Creates a concave hull based on the provided shape and edge length.
ConcaveHull_3 public Creates a concave hull based on the two provided shapes and edge length.
ConcaveHull_4 public Creates a concave hull based on the two provided shapes and edge length.
Contains public Tests contains relationship for given shapes
ConvexHull public Creates a convex hull based on the provided layer.
ConvexHull_2 public Creates a convex hull based on the provided shape.
ConvexHull_3 public Creates a convex hull based on the two provided shapes.
ConvexHull_4 public Creates a convex hull based on the two provided shapes.
Cross public Tests cross relationship for given shapes
DelphiObj public Only for internal use of TatukGIS.
(Inherited from ITBaseObject)
Difference public Compute a new shape as a difference of two shapes provided.
Difference_2 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 public Delete any loop which is smaller than the tolerance.
FindAndDeleteLoops_2 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 public Compute a shape without self crossings (loops) for arcs ad polygons, and with a proper winding for polygon (clockwise, and opposite for holes).
FixShapeEx public Compute a shape without self crossings (loops) for arcs ad polygons, and with a proper winding for polygon (clockwise, and opposite for holes).
FixShapeEx_2 public Compute a shape without self crossings (loops) for arcs ad polygons, and with a proper winding for polygon(clockwise, and opposite for holes).
FixShape_2 public Compute a shape without self crossings (loops) for arcs ad polygons, and with a proper winding for polygon (clockwise, and opposite for holes).
GetCrossings public Get all crossing points between given shapes.
Intersect public Test intersects relationship for given shapes
Intersection public Compute a new shape as an intersection of two shapes provided.
Intersection_2 public Compute a new shape as an intersection of two shapes provided.
MakeBuffer public Compute a buffer around a shape to a given distance.
MakeBuffer_2 public Compute a buffer around 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 public Divide an input shape (polygon, arc or multipoint) into a row of shapes along a given line.
SplitByArc_2 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 public Compute a new shape as a symmetrical difference of two shapes provided.
SymmetricalDifference_2 public Compute a new shape as a symmetrical difference of two shapes provided.
Touch public Tests touch relationship for given shapes
Union public Compute a new shape as an union of two shapes provided.
UnionOnList public Compute a union from the list of shapes.
UnionOnList_2 public Compute a union form the list of shapes.
Union_2 public Compute a new shape as an union of two shapes provided.
Within public Tests within relationship for given shapes

Properties

Inherited Protected
Name Visibility Description
ForceShapeFixing public If True then topological operations will force shape fixing.
Tolerance public Tolerance of operations.

Remarks

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

References

2020/05/28 09:03

Page Tools