Table of Contents

Namespace NetTopologySuite.Geometries

Classes

Coordinate

A lightweight class used to store coordinates on the 2-dimensional Cartesian plane.

The base data object is suitable for use with coordinate sequences with dimension = 2 and measures = 0.

CoordinateArrays

Useful utility functions for handling Coordinate arrays.

CoordinateArrays.BidirectionalComparator

A comparator for Coordinate arrays modulo their directionality. E.g. if two coordinate arrays are identical but reversed they will compare as equal under this ordering. If the arrays are not equal, the ordering returned is the ordering in the forward direction.

CoordinateArrays.ForwardComparator

Compares two Coordinate arrays in the forward direction of their coordinates, using lexicographic ordering.

CoordinateEqualityComparer

A class that can be used to test coordinates for equality.

It uses the algorithm that was default for NTS prior to v2.2, i.e. checks if the 2d distance between coordinates x and y is less than or equal to a tolerance value.
CoordinateList

A list of Coordinates, which may be set to prevent repeated coordinates from occurring in the list.

CoordinateM

A lightweight class used to store coordinates on the 2-dimensional Cartesian plane and an additional measure (M) value.

This data object is suitable for use with coordinate sequences with dimension = 3 and measures = 1.

CoordinateSequence
CoordinateSequenceComparator

Compares two CoordinateSequences.

CoordinateSequenceEx
CoordinateSequenceFactory

An object that knows how to build a particular implementation of CoordinateSequence from an array of Coordinates.

CoordinateSequences

Utility functions for manipulating CoordinateSequences.

CoordinateZ

A lightweight class used to store coordinates on the 2-dimensional Cartesian plane and an additional z-ordinate (Z) value.

This base data object is suitable for use with coordinate sequences with dimension = 3 and measures = 0.

CoordinateZM

A lightweight class used to store coordinates on the 2-dimensional Cartesian plane and additional z- and m-ordinate values (Z, M).

This data object is suitable for use with coordinate sequences with dimension = 4 and measures = 1.

Coordinates

Useful utility functions for handling Coordinate objects.

DimensionUtility

Class containing static methods for conversions between dimension values and characters.

Envelope

Defines a rectangular region of the 2D coordinate plane.

Geometry

A representation of a planar, linear vector geometry.

GeometryCollection

Basic implementation of GeometryCollection.

GeometryCollectionEnumerator

Iterates over all Geometry's in a GeometryCollection. Implements a pre-order depth-first traversal of the GeometryCollection (which may be nested). The original GeometryCollection is returned as well (as the first object), as are all sub-collections. It is simple to ignore the GeometryCollection objects if they are not needed.

GeometryComponentFilter

An IGeometryComponentFilter implementation that applies filtering with the provided FilterMethod

GeometryFactory

Supplies a set of utility methods for building Geometry objects from lists of Coordinates.

GeometryFactoryEx

An extended GeometryFactory that is capable of enforcing a ring orientation for polygons.

GeometryOverlay

A class that encapsulates geometry overlay functionality

IntersectionMatrix

Models a Dimensionally Extended Nine-Intersection Model (DE-9IM) matrix.

LineSegment

Represents a line segment defined by two Coordinates. Provides methods to compute various geometric properties and relationships of line segments. This class is designed to be easily mutable (to the extent of having its contained points public). This supports a common pattern of reusing a single LineSegment object as a way of computing segment properties on the segments defined by arrays or lists of Coordinates.

LineString

Models an OGC-style LineString

LinearRing

Models an OGC SFS LinearRing.

LocationUtility

Utility class for Location enumeration

MultiLineString

Models a collection of LineStrings.

Any collection of LineStrings is a valid MultiLineString.
MultiPoint

Models a collection of Points.

MultiPolygon

Basic implementation of MultiPolygon.

OctagonalEnvelope

A bounding container for a Geometry which is in the shape of a general octagon.

OgcCompliantGeometryFactory

OGC compliant geometry factory

OrdinatesUtility

Static utility functions for dealing with Ordinates and dimension

PerOrdinateEqualityComparer

A class that can be used to test coordinates for equality.

This class test for each ordinate if the distance is less than a tolerance value.
Point

Represents a single point.

A Point is topologically valid if and only if:
  • The coordinate which defines it if any) is a valid coordinate (i.e. does not have an NaN X- or Y-ordinate
Polygon

Represents a polygon with linear edges, which may include holes. The outer boundary (shell) and inner boundaries (holes) of the polygon are represented by {@link LinearRing}s. The boundary rings of the polygon may have any orientation. Polygons are closed, simple geometries by definition.

The polygon model conforms to the assertions specified in the OpenGIS Simple Features Specification for SQL.

A Polygon is topologically valid if and only if:
  • the coordinates which define it are valid coordinates
  • the linear rings for the shell and holes are valid (i.e. are closed and do not self-intersect)
  • holes touch the shell or another hole at at most one point (which implies that the rings of the shell and holes must not cross)
  • the interior of the polygon is connected, or equivalently no sequence of touching holes makes the interior of the polygon disconnected (i.e. effectively split the polygon into two pieces).
PrecisionModel

Specifies the precision model of the Coordinates in a Geometry. In other words, specifies the grid of allowable points for a Geometry. A precision model may befloating (Floating or FloatingSingle), in which case normal floating-point value semantics apply.

TopologyException

Indicates an invalid or inconsistent topological situation encountered during processing

Triangle

Represents a planar triangle, and provides methods for calculating various properties of triangles.

Structs

Position

Indicates the position of a location relative to a node or edge component of a planar topological structure.

Quadrant

Quadrant values

Interfaces

IBoundable<T, TItem>

A spatial object in an AbstractSTRtree.

ICoordinateFilter

An interface for classes which use the values of the coordinates in a Geometry. Coordinate filters can be used to implement centroid and envelope computation, and many other functions.

ICoordinateFilter is an example of the Gang-of-Four Visitor pattern.

Note: it is not recommended to use these filters to mutate the coordinates. There is no guarantee that the coordinate is the actual object stored in the source geometry. In particular, modified values may not be preserved if the source Geometry uses a non-default CoordinateSequence. If in-place mutation is required, use ICoordinateSequenceFilter.
ICoordinateSequenceFilter

An interface for classes which process the coordinates in a CoordinateSequence. A filter can either record information about each coordinate, or change the value of the coordinate. Filters can be used to implement operations such as coordinate transformations, centroid and envelope computation, and many other functions. Geometry classes support the concept of applying a CoordinateSequenceFilter to each CoordinateSequences they contain.

For maximum efficiency, the execution of filters can be short-circuited by using the Done property.
IEntireCoordinateSequenceFilter

A variant of ICoordinateSequenceFilter, except it receives each CoordinateSequence just once, instead of once for each of its coordinates.

IExpandable<T>

Interface describing objects that can expand themselves by objects of type T.

IGeometryComponentFilter

Geometry classes support the concept of applying an IGeometryComponentFilter filter to the Geometry.

IGeometryFilter

GeometryCollection classes support the concept of applying a IGeometryFilter to the Geometry. The filter is applied to every element Geometry. A IGeometryFilter can either record information about the Geometry or change the Geometry in some way. IGeometryFilter is an example of the Gang-of-Four Visitor pattern.

IIntersectable<T>

Interface describing objects that can perform an intersects predicate with T objects.

ILineal

Interface to identify all Geometry subclasses that have a Dimension of Curve and have components which are LineStrings.

IPolygonal

Interface to identify all Geometry subclasses that have a Dimension of Surface and have components that are Polygons.

IPuntal

Interface to identify all Geometry subclasses that have a Dimension of Point and have components that ar Points.

Enums

Dimension

Provides constants representing the dimensions of a point, a curve and a surface.

Geometry.SortIndexValue

An enumeration of sort values for geometries

LinearRingOrientation

An enumeration of ring orientation values

Location

The location of a Coordinate relative to a Geometry

OgcGeometryType

Enumeration of OGC Geometry Types

Ordinate

Identifies the different well-supported components of coordinate values.

All supported coordinates define values for at least the X and the Y components.

The first 16 spatial and 16 measure dimensions may also be accessed this way.

Ordinates

Flags for Ordinate values

PrecisionModels

Delegates

FilterMethod

Delegate function declaration to handle filter operation