User Tools

Site Tools


api:dk11:java:tatukgis.jdk.tgis_topology

TGIS_Topology class

DK11 for Java | tatukgis.jdk.TGIS_Topology | Classes | Constructors | Methods | Properties | Events

Encapsulation of basic topological operations.

Available also on: Delphi | .NET | ActiveX | Python.

Syntax

// Java
public class TGIS_Topology extends TGIS_ObjectDisposable {
};
// Oxygene
type
  TGIS_Topology = public class( TGIS_ObjectDisposable )
  end;

Inheritance

→ TGIS_ObjectDisposable

Constructors

Inherited Overrides Protected
Name Visibility Description
TGIS_Topology() public Create instance.

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.
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, bool) 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, bool) 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, bool) 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, bool) 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, bool) 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, bool) 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, bool) 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, bool, bool) 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, bool, bool, bool) 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, bool) 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, int, bool) 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, bool) 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, bool) 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, bool) 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, bool) public Compute a union form the list of shapes.
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.

Events

Inherited Protected
Name Visibility Description
BusyEvent public Busy event.

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

2024/07/26 21:38

Page Tools