te::gm Namespace Reference

Namespace for the Vector Geometry module of TerraLib. More...

Classes

class  AbstractValidator
 An abstract class to represent an algorithm that validates an geometry. More...
 
class  AbstractValidatorPtr
 
class  AbstractValidatorSharedPtr
 
class  AddProjectedCoordinates
 
class  AffineGT
 2D Affine Geometric transformation. More...
 
class  AffineGTFactory
 2D Affine Geometric transformation factory. More...
 
class  CellTilling
 Algorithm to help controlling creating and iterating in a tile. More...
 
class  CircularString
 CircularString is a curve with circular interpolation between points. More...
 
class  CompoundCurve
 CompoundCurve is a curve that may have circular and linear segments. More...
 
struct  Coord2D
 An utility struct for representing 2D coordinates. More...
 
struct  CoordDistanceOrderFunctor
 This local struct is used sorts a vector of coordinates by distance. More...
 
class  CoordinateSnapper
 Algorithm to snap existing "close" coordinates to each other based uppon a given tolerance, ensuring that they now have the exactly same location. More...
 
class  Curve
 Curve is an abstract class that represents 1-dimensional geometric objects stored as a sequence of coordinates. More...
 
class  CurvePolygon
 CurvePolygon is a planar surface defined by 1 exterior boundary and 0 or more interior boundaries. More...
 
class  Distance
 
class  Envelope
 An Envelope defines a 2D rectangular region. More...
 
class  FixGeometryTopology
 A static class with methods to fix geometry topology. More...
 
class  FixNoding
 
class  FixOrientation
 
class  FixRepeatedCoordinates
 
class  GeometricTransformation
 2D Geometric transformation base class. More...
 
class  Geometry
 Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards. More...
 
class  GeometryCollection
 It is a collection of other geometric objects. More...
 
class  GeometryFactory
 This is the Geometry factory for TerraLib geometries. More...
 
class  GeometryProperty
 Geometric property. More...
 
class  GeometryPtr
 
class  GeometrySharedPtr
 
class  GeometrySubdivider
 This class contains functions to help subdivide a geometry into small parts. More...
 
class  GEOSWriter
 A class that converts a TerraLib geometry to a GEOS geometry. More...
 
class  GTFactory
 2D Geometric transformation factory. More...
 
class  GTFilter
 2D Geometric transformation tie-points filter (outliers remotion). More...
 
class  GTModelParameters
 2D Geometric transformation model parameters. More...
 
class  GTParameters
 2D Geometric transformation parameters. More...
 
class  Line
 A Line is LineString with 2 points. More...
 
class  LinearRing
 A LinearRing is a LineString that is both closed and simple. More...
 
class  LineString
 LineString is a curve with linear interpolation between points. More...
 
class  MergeCoordinates
 
class  Module
 This singleton defines the TerraLib Vector Geometry module entry.
More...
 
class  MultiCurve
 MultiCurve is a class that represents a 1-dimensional GeometryCollection whose elements are curves. More...
 
class  MultiLineString
 MultiLineString is a MultiCurve whose elements are LineStrings. More...
 
class  MultiPoint
 MultiPoint is a GeometryCollection whose elements are restricted to points. More...
 
class  MultiPolygon
 MultiPolygon is a MultiSurface whose elements are Polygons. More...
 
class  MultiSurface
 MultiSurface is a class that represents a 2-dimensional GeometryCollection whose elements are surfaces. More...
 
class  Point
 A point with x and y coordinate values. More...
 
struct  PointDistanceOrderFunctor
 This local struct is used sorts a vector of points by distance. More...
 
class  Polygon
 Polygon is a subclass of CurvePolygon whose rings are defined by linear rings. More...
 
class  PolyhedralSurface
 PolyhedralSurface is a contiguous collection of polygons, which share common boundary segments. More...
 
class  ProjectiveGT
 2D Projective Geometric transformation. More...
 
class  ProjectiveGTFactory
 2D Projective Geometric transformation factory. More...
 
class  RemoveCollapsedSegments
 
class  RSTGT
 
class  RSTGTFactory
 2D RST Geometric transformation factory. More...
 
class  SafeOverlay
 A class containing helper methods to make overlay algorithms more robust and safer to execute when dealing with invalid geometries. \description When some exception is thrown during the execution of the basic overlay algorithms, this class will handle it, try to make the geoemtries valid, and try again. More...
 
class  SecondDegreePolynomialGT
 Second Degree Polynomial Geometric transformation. More...
 
class  SecondDegreePolynomialGTFactory
 2D Second Degree Polynomial Geometric transformation factory. More...
 
class  SpatialIndex
 
class  Surface
 Surface is an abstract class that represents a 2-dimensional geometric objects. More...
 
class  ThirdDegreePolynomialGT
 Third Degree Polynomial Geometric transformation. More...
 
class  ThirdDegreePolynomialGTFactory
 2D Third Degree Polynomial Geometric transformation factory. More...
 
class  TIN
 TIN (triangulated irregular network) is a PolyhedralSurface consisting only of Triangle patches. More...
 
struct  TopologyValidationError
 This struct contains informations about GEOS TopologyValidationError. More...
 
class  Triangle
 Triangle is a polygon with 3 distinct, non-collinear vertices and no interior boundary. More...
 
class  Validation
 
class  Visitor
 A visitor interface for the Geometry hierarchy. More...
 
class  WKBReader
 A class that deserializes a geometry from a valid WKB. More...
 
class  WKBSize
 A class that computes the number of bytes necessary to encode a geometry in WKB. More...
 
class  WKBWriter
 A class that serializes a geometry to the WKB format. More...
 
class  WKTActions
 A class that implements the Grammar Rules for well known text (WKT) format for Geometry. More...
 
class  WKTParser
 
class  WKTReader
 A class that deserializes a Geometry from a valid WKT. More...
 
class  WKTWriter
 A class that serializes a geometry to the WKT format. More...
 

Typedefs

using GeometryPair = std::pair< te::gm::GeometryPtr, te::gm::GeometryPtr >
 
using GeometryVector = std::vector< te::gm::Geometry * >
 
using GeometryVectorConst = std::vector< const te::gm::Geometry * >
 
using KD_SINGLE_NODE = te::sam::kdtree::Node< te::gm::Coord2D, std::size_t, std::size_t, te::sam::kdtree::kd_node_m_datasingle_tag >
 
using KdTreeSingle = te::sam::kdtree::Index< KD_SINGLE_NODE >
 
using MapFragments = std::map< te::gm::Coord2D, VecFragments >
 
using VecCoords = std::vector< te::gm::Coord2D >
 
using VecFragments = std::vector< VecCoords >
 

Enumerations

enum  BufferCapStyle { CapRoundType, CapButtType, CapSquareType }
 Buffer end cap style. More...
 
enum  Dimensionality { P = 0, L = 1, A = 2 }
 From Wikipedia: "in mathematics, the dimension of an object is an intrinsic property, independent of the space in which the object may happen to be embedded". More...
 
enum  GeomType {
  GeometryType = 0, GeometryZType = 1000, GeometryMType = 2000, GeometryZMType = 3000,
  PointType = 1, PointZType = 1001, PointMType = 2001, PointZMType = 3001,
  PointKdType = 0xFFFFFFFD, LineStringType = 2, LineStringZType = 1002, LineStringMType = 2002,
  LineStringZMType = 3002, CircularStringType = 8, CircularStringZType = 1008, CircularStringMType = 2008,
  CircularStringZMType = 3008, CompoundCurveType = 9, CompoundCurveZType = 1009, CompoundCurveMType = 2009,
  CompoundCurveZMType = 3009, PolygonType = 3, PolygonZType = 1003, PolygonMType = 2003,
  PolygonZMType = 3003, CurvePolygonType = 10, CurvePolygonZType = 1010, CurvePolygonMType = 2010,
  CurvePolygonZMType = 3010, GeometryCollectionType = 7, GeometryCollectionZType = 1007, GeometryCollectionMType = 2007,
  GeometryCollectionZMType = 3007, MultiPointType = 4, MultiPointZType = 1004, MultiPointMType = 2004,
  MultiPointZMType = 3004, MultiLineStringType = 5, MultiLineStringZType = 1005, MultiLineStringMType = 2005,
  MultiLineStringZMType = 3005, MultiPolygonType = 6, MultiPolygonZType = 1006, MultiPolygonMType = 2006,
  MultiPolygonZMType = 3006, MultiSurfaceType = 12, MultiSurfaceZType = 1012, MultiSurfaceMType = 2012,
  MultiSurfaceZMType = 3012, PolyhedralSurfaceType = 15, PolyhedralSurfaceZType = 1015, PolyhedralSurfaceMType = 2015,
  PolyhedralSurfaceZMType = 3015, TINType = 16, TINZType = 1016, TINMType = 2016,
  TINZMType = 3016, TriangleType = 17, TriangleZType = 1017, TriangleMType = 2017,
  TriangleZMType = 3017, UnknownGeometryType = 0xFFFFFFFF
}
 Each enumerated type is compatible with a Well-known Binary (WKB) type code. More...
 
enum  SpatialRelation {
  UNKNOWN_SPATIAL_RELATION = 0, INTERSECTS = 1, DISJOINT = 2, TOUCHES = 4,
  OVERLAPS = 8, CROSSES = 16, WITHIN = 32, CONTAINS = 64,
  COVERS = 128, COVEREDBY = 256, EQUALS = 512
}
 Spatial relations between geometric objects. More...
 

Functions

TEGEOMEXPORT LineStringAddIntersectionPoints (const te::sam::rtree::Index< std::size_t, 8 > &rtree, const std::vector< te::gm::LineString > &candidateSegments, const std::set< std::size_t > &setIndexesIgnored, const te::gm::LineString &lr_Reference, const bool &usePerpendicularDistance=false, double tolerance=0.000000001)
 Add intersection points in a LinearRing based on a Vector of LineString as reference. More...
 
TEGEOMEXPORT void AddLineString (te::gm::LineString *lineString, te::gm::GeometryVector &pAdd)
 Add the linestring given to the vector. More...
 
TEGEOMEXPORT void AddPolygon (te::gm::Polygon *polygon, te::gm::GeometryVector &pAdd)
 Add all line strings from the polygon given to the vector given. More...
 
TEGEOMEXPORT bool AdjustSegment (te::gm::Point *P0, te::gm::Point *P1, double d0, te::gm::Coord2D &P0out, te::gm::Coord2D &P1out)
 
TEGEOMEXPORT Envelope AdjustToCut (const Envelope &env, double bWidth, double bHeight)
 Finds the correspondent smallest box that allows a box to be cut in blocks of a given size. More...
 
TEGEOMEXPORT te::gm::GeometryCascadedPolygonUnion (const std::vector< te::gm::Polygon * > &polygonVector)
 Provides an efficient method of unioning a collection of Polygonal geometries. This algorithm is faster and likely more robust than the simple iterated approach of repeatedly unioning each polygon to a result geometry. More...
 
TEGEOMEXPORT te::gm::GeometryCascadedUnion (const std::vector< te::gm::Geometry * > &vecGeometries)
 Provides an efficient method of unioning a collection of geometries. This algorithm is faster and likely more robust than the simple iterated approach of repeatedly unioning each polygon to a result geometry. More...
 
TEGEOMEXPORT te::gm::GeometryClipGeometry (const te::gm::Geometry *geometry, const te::gm::Envelope &clipArea)
 Clips the given geometry to the given clipArea. More...
 
TEGEOMEXPORT void ClosestPoints (te::gm::Geometry *geomA, te::gm::Geometry *geomB, te::gm::Coord2D &coordA, te::gm::Coord2D &coordB)
 Compute the the closest points of two geometries. More...
 
TEGEOMEXPORT te::gm::GeometryPtr CreateCollectionFromGeometryVector (const te::gm::GeometryVector &geometryVector)
 Creates a geometry collection based on the given geometryVector. More...
 
TEGEOMEXPORT te::gm::Envelope CreateEnvelope (const te::gm::Coord2D &coord, double extension)
 Creates an envelope by expanding the dimension of the given coordinate using the given extension. The extension value will be used to expand the envelope in the four directions. The result envelope will have width = (2 * extension) and height = (2 * extension) More...
 
TEGEOMEXPORT te::gm::Envelope CreateEnvelope (const te::gm::Point &p1, const te::gm::Point &p2)
 Creates an envelope that fits the given coordinates. It makes all the adjustments needed to return a valid envelope. More...
 
TEGEOMEXPORT te::gm::Envelope CreateEnvelope (double x1, double y1, double x2, double y2)
 Creates an envelope that fits the given coordinates. It makes all the adjustments needed to return a valid envelope. More...
 
TEGEOMEXPORT te::gm::LineString CreateLine (const te::gm::Coord2D &startCoord, const te::gm::Coord2D &endCoord, const int &srid, const int &numberOfIntermediateCoords)
 Creates a LineString between the given startCoord and endCoord with the given number of intermediate coordinates. More...
 
TEGEOMEXPORT te::gm::GeometryPtr CreatePolygon (const te::gm::Curve *curve)
 Creates a polygon from the given curve. More...
 
TEGEOMEXPORT te::gm::Polygon CreatePolygon (const te::gm::Envelope &box, const int &srid, const int &numberOfIntermediateCoords)
 Creates a Polygon from the given envelope and with the given number of intermediate coordinates in each of its four borders lines. More...
 
TEGEOMEXPORT const std::string Get2DGeometryType (const te::gm::GeomType &type)
 It returns the name of 2D geometry subclass. More...
 
TEGEOMEXPORT GeomType Get2DGeomTypeId (const te::gm::GeomType &type)
 It returns the 2D geometry subclass type identifier. More...
 
TEGEOMEXPORT double GetAngle (te::gm::Coord2D coordA, te::gm::Coord2D coordB)
 
TEGEOMEXPORT double GetAppropriatePrecision (int srid)
 Returns the appropriate precision to be used by spatial operations that adjust geometric data from other geometric systems. More...
 
TEGEOMEXPORT double GetArea (const te::gm::Geometry *geometry)
 Calculates the area of the given geometry. If the geometry is from dimension 0 or 1, it returns 0. More...
 
TEGEOMEXPORT std::vector< MultiLineString * > GetAsMultiLineStringVector (const te::gm::Geometry &geometry)
 Get the vector of MultLineStrings that compose the Geometry. More...
 
int GetCoordDimension (GeomType t)
 It returns the number of measurements or axes needed to describe a position in a coordinate system. More...
 
TEGEOMEXPORT std::unique_ptr< te::gm::GeometryGetGeometryUnion (const te::gm::GeometryVectorConst &geomVec, double tolerance=0.000000001)
 It returns the union of a geometry vector. More...
 
TEGEOMEXPORT GeometryGetGeomFromEnvelope (const Envelope *const e, int srid)
 It creates a Geometry (a polygon) from the given envelope. More...
 
TEGEOMEXPORT te::gm::Coord2D GetInteriorPoint (const te::gm::Geometry *geometry)
 As geos Explanation: An interior point is guaranteed to lie in the interior of the Geometry, if it possible to calculate such a point exactly. Otherwise, the point may lie on the boundary of the geometry. More...
 
TEGEOMEXPORT te::gm::LineGetIntersectionLine (te::gm::Geometry *geom, te::gm::Coord2D coord)
 
TEGEOMEXPORT std::vector< te::gm::Coord2DGetIntersectionPointsByOperators (const te::gm::LineString &lsReference, const std::vector< te::gm::LineString > &candidates, double tolerance=0.000000001)
 Gets a vector of LineString reference points including intersection points using GEOS operators. More...
 
TEGEOMEXPORT std::vector< te::gm::Coord2DGetIntersectionPointsByPerpendicularDistance (const te::gm::LineString &lsReference, const std::vector< te::gm::LineString > &candidates, double tolerance=0.000000001)
 Gets a vector of LineString reference points including intersection points using perpendicular distance. More...
 
TEGEOMEXPORT te::gm::GeomType GetMultiLineStringType (const te::gm::Geometry &geometry)
 Get the LineStrings that compose the Geometry. More...
 
TEGEOMEXPORT te::gm::GeomType GetMultiType (te::gm::GeomType geomType)
 Get the collection type of GeomType. More...
 
TEGEOMEXPORT te::gm::GeomType GetSimpleType (te::gm::GeomType geomType)
 Get the simple type of GeomType. More...
 
TEGEOMEXPORT bool isCCW (const te::gm::LinearRing *ring)
 Checks if a LinearRing is in Counter-clockwise orientation. More...
 
TEGEOMEXPORT bool IsMultiType (te::gm::GeomType geomType)
 Verifies if the geomType is a collection type. More...
 
TEGEOMEXPORT bool IsNullOrEmpty (const te::gm::Geometry *geometry)
 Checks if the geometry is null or empty. More...
 
TEGEOMEXPORT bool IsNullOrEmpty (const te::gm::GeometryPtr &geometry)
 Checks if the geometry is null or empty. More...
 
TEGEOMEXPORT bool IsPointOnPolygon (const te::gm::Coord2D &coord, const te::gm::Geometry *geometry)
 Checks if the given point in within the given polygon or multipolygon geometry. More...
 
TEGEOMEXPORT Coord2DlocateAlong (const LineString *line, double initial, double final, double target)
 Make the line interpolation to find a target. More...
 
TEGEOMEXPORT void Multi2Single (const te::gm::Geometry *g, std::vector< te::gm::Geometry * > &geoms)
 It will get a GeometryCollection and distribute in a vector. More...
 
TEGEOMEXPORT te::gm::GeometryMultiLineToDefinedType (const std::vector< te::gm::MultiLineString * > &multiLineStringVector, te::gm::GeomType geometryType)
 A geometry is built based on a Vector of MultiLineString and the origin geometry type. More...
 
TEGEOMEXPORT te::gm::GeometryNormalizeGeometryByType (const te::gm::Geometry *geometry, te::gm::GeomType singleGeometryType)
 Normalizes and filters the given geometry based on the given simple type. \description If the given geometry if already from the given simple type, it will clone the geometry and return it. If the geometry is from the multi type related to the single, it will clone the geometry and return it. If the geometry is a collection, it will search for geometries from the given single type and multi type, and return them in a collection related to the given type. More...
 
TEGEOMEXPORT te::gm::LineStringParallelLine (const te::gm::LineString *line, double distance)
 Creates a parallel line from the given line. Here will use the distance for offset between the original line and the parallel. More...
 
TEGEOMEXPORT void Polygonizer (const te::gm::GeometryVector &vecInput, te::gm::GeometryVector &vecOutput)
 It will get a list of polygons formed by the polygonization. More...
 
TEGEOMEXPORT void Polygonizer (te::gm::Geometry *g, std::vector< te::gm::Polygon * > &pols)
 It will get a list of polygons formed by the polygonization. More...
 
TEGEOMEXPORT te::gm::GeometryPrepareGeometriesToIntersection (const te::gm::Geometry *geom_A, const te::gm::GeometryVector &vecGeomB, bool &wasChanged, double tolerance=0.000000001)
 Prepares the geometry A with intersection points in geometry B. More...
 
TEGEOMEXPORT te::gm::GeometryPrepareGeometriesToIntersection (const te::gm::Geometry *geom_A, const te::gm::GeometryVector &vecGeomB, bool checkValidityAndFix, bool &wasChanged, double tolerance=0.000000001)
 
TEGEOMEXPORT te::gm::GeometryPrepareGeometriesToIntersection (const te::gm::Geometry *geom_A, te::gm::Geometry *geomB, bool &wasChanged, double tolerance=0.000000001)
 Prepares the geometry A with intersection points in geometry B. More...
 
TEGEOMEXPORT te::gm::GeometryPrepareGeometriesToIntersection (const te::gm::Geometry *geom_A, te::gm::Geometry *geomB, bool checkValidityAndFix, bool &wasChanged, double tolerance=0.000000001)
 
TEGEOMEXPORT te::gm::GeometryVector PrepareGeometriesToIntersection (const te::gm::GeometryVectorConst &vecGeometries, bool &wasChanged, double tolerance=0.000000001)
 Prepares the geometries vector to be used in overlay operations. \description It has two steps: 1 - Tries to snap the existing coordinates to make them be exactly the same if the are within the given tolerance; 2 - It breaks crossing segments in the intersection coordinates, sometimes gerating new coordinates in both segments. More...
 
TEGEOMEXPORT te::gm::LineStringPrepareGeometriesToIntersection (const te::gm::LineString &ls_A, const te::sam::rtree::Index< std::size_t, 8 > &rtree, std::vector< te::gm::LineString > &vecRtreeSegments, bool &wasChanged, double tolerance=0.000000001)
 Prepares the LineString A with intersection points in LineString B. More...
 
TEGEOMEXPORT te::gm::MultiLineStringPrepareGeometriesToIntersection (const te::gm::MultiLineString &mline_A, const te::sam::rtree::Index< std::size_t, 8 > &rtree, std::vector< te::gm::LineString > &vecRtreeSegments, bool &wasChanged, double tolerance=0.000000001)
 Prepares the MultiLineString A with intersection points in MultiLineString B. More...
 
TEGEOMEXPORT bool RelationMatches (const std::string &relation, const std::string &relationPattern)
 Tests if the given relation matrix matches with the given relation pattern. This pattern is based on the Dimensionally Extended nine-Intersection Model (DE-9IM) More...
 
TEGEOMEXPORT bool Rotate (te::gm::Coord2D pr, te::gm::LineString *l, double angle, te::gm::LineString *lOut)
 
TEGEOMEXPORT bool SatisfySpatialRelation (const Geometry *g1, const Geometry *g2, SpatialRelation relation)
 It returns if two geometries satisfy a given spatial relation. More...
 
TEGEOMEXPORT LineStringSnapLineToPoints (const te::sam::rtree::Index< std::size_t, 8 > &rtree, const std::vector< te::gm::LineString > &referenceSegments, const std::set< std::size_t > &setIndexesIgnored, const te::gm::LineString &linearRingToSnap, bool &wasChanged, double tolerance=0.000000001)
 Snaps a LinearRing based on a set of LineString. More...
 
TEGEOMEXPORT std::vector< te::gm::Geometry * > SplitGeometry (const te::gm::Geometry *inputGeometry, const te::gm::Geometry *bladeLineGeometry)
 Splits the given 'inputGeometry' (must be an area) using the given 'bladeLineGeometry' (must be a line) More...
 
TEGEOMEXPORT te::gm::GeometryVectorConst ToConstVector (const te::gm::GeometryVector &vecGeometries)
 
TEGEOMEXPORT te::gm::GeometryUnaryUnion (te::gm::Geometry *geom)
 It will get the union of the input geometries. More...
 
Geometry Methods

Methods related to Geometry conversion.

te::dt::AbstractDataGeometryToByteArrayConverter (te::dt::AbstractData *d) throw (Exception)
 It converts a Geometry data value to a ByteArray data value. More...
 
te::dt::AbstractDataGeometryToStringConverter (te::dt::AbstractData *d) throw (Exception)
 It converts a Geometry data value to a String data value. More...
 
te::dt::AbstractDataByteArrayToGeometryConverter (te::dt::AbstractData *d)
 It converts a ByteArray data value to a Geometry data value. More...
 
te::dt::AbstractDataStringToGeometryConverter (te::dt::AbstractData *d)
 It converts a String data value to a Geometry data value. More...
 

Detailed Description

Namespace for the Vector Geometry module of TerraLib.

Typedef Documentation

◆ GeometryPair

Definition at line 44 of file SafeOverlay.h.

◆ GeometryVector

using te::gm::GeometryVector = typedef std::vector<te::gm::Geometry*>

Definition at line 50 of file CommonDataStructures.h.

◆ GeometryVectorConst

using te::gm::GeometryVectorConst = typedef std::vector<const te::gm::Geometry*>

Definition at line 51 of file CommonDataStructures.h.

◆ KD_SINGLE_NODE

◆ KdTreeSingle

◆ MapFragments

Definition at line 47 of file RemoveCollapsedSegments.h.

◆ VecCoords

using te::gm::VecCoords = typedef std::vector<te::gm::Coord2D>

Definition at line 45 of file RemoveCollapsedSegments.h.

◆ VecFragments

using te::gm::VecFragments = typedef std::vector<VecCoords>

Definition at line 46 of file RemoveCollapsedSegments.h.

Enumeration Type Documentation

◆ BufferCapStyle

Buffer end cap style.

The end cap style specifies the buffer geometry that will be created at the ends of LineStrings.

Enumerator
CapRoundType 

A semi-circle (default).

CapButtType 

A straight line perpendicular to the end segment

CapSquareType 

A half-square

Definition at line 162 of file Enums.h.

◆ Dimensionality

From Wikipedia: "in mathematics, the dimension of an object is an intrinsic property, independent of the space in which the object may happen to be embedded".

Enumerator

Points are 0-dimensional.

Lines are 1-dimensional.

Polygons are 2-dimenional.

Definition at line 147 of file Enums.h.

◆ GeomType

Each enumerated type is compatible with a Well-known Binary (WKB) type code.

These are all WKB geometry types that TerraLib knows how to encode or decode. The values follows OGC Simple Feature Specification (SFS).

Enumerator
GeometryType 

Geometry is not instantiable but this is the general type for geometries in R2 (x, y).

GeometryZType 

Geometry is not instantiable but this is the general type for geometries in R3 (x, y, z).

GeometryMType 

Geometry is not instantiable but this is the general type for geometries in R3 (x, y, m).

GeometryZMType 

Geometry is not instantiable but this is the general type for geometries in R4 (x, y, z, m).

PointType 

A point in R2 with coordinate values for x and y.

PointZType 

A point in R3 with coordinate values for x, y and z.

PointMType 

A point in R3 with coordinate values for x, y and m.

PointZMType 

A point in R4 with coordinate values for x, y, z and m.

PointKdType 

A point in Rn with k coordinate values.

LineStringType 

A LineString in R2 with coordinate values for x and y.

LineStringZType 

A LineString in R3 with coordinate values for x, y and z.

LineStringMType 

A LineString in R3 with coordinate values for x, y and m.

LineStringZMType 

A LineString in R4 with coordinate values for x, y, z and m.

CircularStringType 

A CircularString in R2 with coordinate values for x and y.

CircularStringZType 

A CircularString in R3 with coordinate values for x, y and z.

CircularStringMType 

A CircularString in R3 with coordinate values for x, y and m.

CircularStringZMType 

A CircularString in R4 with coordinate values for x, y, z and m.

CompoundCurveType 

A CompoundCurve in R2 with coordinate values for x and y.

CompoundCurveZType 

A CompoundCurve in R3 with coordinate values for x, y and z.

CompoundCurveMType 

A CompoundCurve in R3 with coordinate values for x, y and m.

CompoundCurveZMType 

A CompoundCurve in R4 with coordinate values for x, y, z and m.

PolygonType 

A Polygon in R2 with coordinate values for x and y.

PolygonZType 

A Polygon in R3 with coordinate values for x, y and z.

PolygonMType 

A Polygon in R3 with coordinate values for x, y and m.

PolygonZMType 

A Polygon in R4 with coordinate values for x, y, z and m.

CurvePolygonType 

A CurvePolygon in R2 with coordinate values for x and y.

CurvePolygonZType 

A CurvePolygon in R3 with coordinate values for x, y and z.

CurvePolygonMType 

A CurvePolygon in R3 with coordinate values for x, y and m.

CurvePolygonZMType 

A CurvePolygon in R4 with coordinate values for x, y, z and m.

GeometryCollectionType 

A GeometryCollection in R2 with coordinate values for x and y.

GeometryCollectionZType 

A GeometryCollection in R3 with coordinate values for x, y and z.

GeometryCollectionMType 

A GeometryCollection in R3 with coordinate values for x, y and m.

GeometryCollectionZMType 

A GeometryCollection in R4 with coordinate values for x, y, z and m.

MultiPointType 

A MultiPoint in R2 with coordinate values for x and y.

MultiPointZType 

A MultiPoint in R3 with coordinate values for x, y and z.

MultiPointMType 

A MultiPoint in R3 with coordinate values for x, y and m.

MultiPointZMType 

A MultiPoint in R4 with coordinate values for x, y, z and m.

MultiLineStringType 

A MultiLineString in R2 with coordinate values for x and y.

MultiLineStringZType 

A MultiLineString in R3 with coordinate values for x, y and z.

MultiLineStringMType 

A MultiLineString in R3 with coordinate values for x, y and m.

MultiLineStringZMType 

A MultiLineString in R4 with coordinate values for x, y, z and m.

MultiPolygonType 

A MultiPolygon in R2 with coordinate values for x and y.

MultiPolygonZType 

A MultiPolygon in R3 with coordinate values for x, y and z.

MultiPolygonMType 

A MultiPolygon in R3 with coordinate values for x, y and m.

MultiPolygonZMType 

A MultiPolygon in R4 with coordinate values for x, y, z and m.

MultiSurfaceType 

A MultiSurface in R2 with coordinate values for x and y.

MultiSurfaceZType 

A MultiSurface in R3 with coordinate values for x, y and z.

MultiSurfaceMType 

A MultiSurface in R3 with coordinate values for x, y and m.

MultiSurfaceZMType 

A MultiSurface in R4 with coordinate values for x, y, z and m.

PolyhedralSurfaceType 

A PolyhedralSurface in R2 with coordinate values for x and y.

PolyhedralSurfaceZType 

A PolyhedralSurface in R3 with coordinate values for x, y and z.

PolyhedralSurfaceMType 

A PolyhedralSurface in R3 with coordinate values for x, y and m.

PolyhedralSurfaceZMType 

A PolyhedralSurface in R4 with coordinate values for x, y, z and m.

TINType 

A TIN in R2 with coordinate values for x and y.

TINZType 

A TIN in R3 with coordinate values for x, y and z.

TINMType 

A TIN in R3 with coordinate values for x, y and m.

TINZMType 

A TIN in R4 with coordinate values for x, y, z and m.

TriangleType 

A Triangle in R2 with coordinate values for x and y.

TriangleZType 

A Triangle in R3 with coordinate values for x, y and z.

TriangleMType 

A Triangle in R3 with coordinate values for x, y and m.

TriangleZMType 

A Triangle in R4 with coordinate values for x, y, z and m.

UnknownGeometryType 

Just a marker for an unknown geometry type.

Definition at line 41 of file Enums.h.

◆ SpatialRelation

Spatial relations between geometric objects.

Enumerator
UNKNOWN_SPATIAL_RELATION 
INTERSECTS 
DISJOINT 
TOUCHES 
OVERLAPS 
CROSSES 
WITHIN 
CONTAINS 
COVERS 
COVEREDBY 
EQUALS 

Definition at line 127 of file Enums.h.

Function Documentation

◆ AddIntersectionPoints()

TEGEOMEXPORT LineString* te::gm::AddIntersectionPoints ( const te::sam::rtree::Index< std::size_t, 8 > &  rtree,
const std::vector< te::gm::LineString > &  candidateSegments,
const std::set< std::size_t > &  setIndexesIgnored,
const te::gm::LineString lr_Reference,
const bool &  usePerpendicularDistance = false,
double  tolerance = 0.000000001 
)

Add intersection points in a LinearRing based on a Vector of LineString as reference.

Parameters
rtreeThe R-tree contains the candidates envelopes as reference to snap.
candidateSegmentsA vector of LineString that is used as reference to snap.
setIndexesIgnoredA set of indexes of candidates that had must be ignored in the processing. This set is used for optimization purposes
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
lr_ReferenceA LinearRing that will be added new points of intersection.
usePerpendicularDistanceTrue if the new points are added by perpendicular distance algorithm.
toleranceTolerance value to be used in geometric operations
Returns

◆ AddLineString()

TEGEOMEXPORT void te::gm::AddLineString ( te::gm::LineString lineString,
te::gm::GeometryVector pAdd 
)

Add the linestring given to the vector.

Parameters
linestringline string
pAddA reference to a vector of geometries.

◆ AddPolygon()

TEGEOMEXPORT void te::gm::AddPolygon ( te::gm::Polygon polygon,
te::gm::GeometryVector pAdd 
)

Add all line strings from the polygon given to the vector given.

Parameters
polygonpolygon from which to extract line strings
pAddA reference to a vector of geometries.

◆ AdjustSegment()

TEGEOMEXPORT bool te::gm::AdjustSegment ( te::gm::Point P0,
te::gm::Point P1,
double  d0,
te::gm::Coord2D P0out,
te::gm::Coord2D P1out 
)

◆ AdjustToCut()

TEGEOMEXPORT Envelope te::gm::AdjustToCut ( const Envelope env,
double  bWidth,
double  bHeight 
)

Finds the correspondent smallest box that allows a box to be cut in blocks of a given size.

Parameters
envReference envelope
bWidthBlock width
bHeightBlock height
Returns
It returns a adjusted envelope

◆ ByteArrayToGeometryConverter()

te::dt::AbstractData* te::gm::ByteArrayToGeometryConverter ( te::dt::AbstractData d)

It converts a ByteArray data value to a Geometry data value.

Parameters
dThe input data value.
Returns
A new data value converted to Geometry type. The caller will take the ownership of the returned data.
Note
This method consider that the ByteArray data value contains a geometry encoded using WKB format.
Exceptions
Itthrows an exception if the input abstract data is not a ByteArray type.
Itthrows an exception if the conversion can be not done.

◆ CascadedPolygonUnion()

TEGEOMEXPORT te::gm::Geometry* te::gm::CascadedPolygonUnion ( const std::vector< te::gm::Polygon * > &  polygonVector)

Provides an efficient method of unioning a collection of Polygonal geometries. This algorithm is faster and likely more robust than the simple iterated approach of repeatedly unioning each polygon to a result geometry.

Parameters
polygonVectorA vector of polygons.
Returns
a Geometry containing the union.

◆ CascadedUnion()

TEGEOMEXPORT te::gm::Geometry* te::gm::CascadedUnion ( const std::vector< te::gm::Geometry * > &  vecGeometries)

Provides an efficient method of unioning a collection of geometries. This algorithm is faster and likely more robust than the simple iterated approach of repeatedly unioning each polygon to a result geometry.

Parameters
vecGeometriesA vector of geometries.
Returns
a Geometry containing the union.

◆ ClipGeometry()

TEGEOMEXPORT te::gm::Geometry* te::gm::ClipGeometry ( const te::gm::Geometry geometry,
const te::gm::Envelope clipArea 
)

Clips the given geometry to the given clipArea.

Parameters
geometryThe geometry to be clipped
clipAreaThe clipping area
Returns
The clipped geometry

◆ ClosestPoints()

TEGEOMEXPORT void te::gm::ClosestPoints ( te::gm::Geometry geomA,
te::gm::Geometry geomB,
te::gm::Coord2D coordA,
te::gm::Coord2D coordB 
)

Compute the the closest points of two geometries.

Parameters
geomAInput Geometry A.
geomBInput Geometry B.
coordAOutput coord on Geometry A.
coordBOutput coord on Geometry B.

◆ CreateCollectionFromGeometryVector()

TEGEOMEXPORT te::gm::GeometryPtr te::gm::CreateCollectionFromGeometryVector ( const te::gm::GeometryVector geometryVector)

Creates a geometry collection based on the given geometryVector.

Parameters
geometryVectorThe input geometry vector
Returns
A geometry collection containing all the grometries from the geometry vector Adapts a non const geometry vector to a const geometry vector. No geometry copy is made

◆ CreateEnvelope() [1/3]

TEGEOMEXPORT te::gm::Envelope te::gm::CreateEnvelope ( const te::gm::Coord2D coord,
double  extension 
)

Creates an envelope by expanding the dimension of the given coordinate using the given extension. The extension value will be used to expand the envelope in the four directions. The result envelope will have width = (2 * extension) and height = (2 * extension)

Parameters
coordThe reference coordinate
extensionThe extension to expand the the envelope
Returns
A valid envelope

◆ CreateEnvelope() [2/3]

TEGEOMEXPORT te::gm::Envelope te::gm::CreateEnvelope ( const te::gm::Point p1,
const te::gm::Point p2 
)

Creates an envelope that fits the given coordinates. It makes all the adjustments needed to return a valid envelope.

Parameters
p1The first point
p2The second point
Returns
A valid envelope containing the two given points

◆ CreateEnvelope() [3/3]

TEGEOMEXPORT te::gm::Envelope te::gm::CreateEnvelope ( double  x1,
double  y1,
double  x2,
double  y2 
)

Creates an envelope that fits the given coordinates. It makes all the adjustments needed to return a valid envelope.

Parameters
x1The coordinate X of the first point
y1The coordinate Y of the first point
x2The coordinate X of the second point
y2The coordinate Y of the second point
Returns
A valid envelope containing the two given points

◆ CreateLine()

TEGEOMEXPORT te::gm::LineString te::gm::CreateLine ( const te::gm::Coord2D startCoord,
const te::gm::Coord2D endCoord,
const int &  srid,
const int &  numberOfIntermediateCoords 
)

Creates a LineString between the given startCoord and endCoord with the given number of intermediate coordinates.

Parameters
startCoordThe first coordinate of the line
endCoordThe last coordinate of the line
sridThe srid of the line
numberOfIntermediateCoordsThe number of intermediate coordinates of the line
Returns
A LineString between startCoord and endCoord with the given number of intermediate coordinates

◆ CreatePolygon() [1/2]

TEGEOMEXPORT te::gm::GeometryPtr te::gm::CreatePolygon ( const te::gm::Curve curve)

Creates a polygon from the given curve.

Parameters
curveThe curve to be used to create a polygon
Returns
The created polygon

◆ CreatePolygon() [2/2]

TEGEOMEXPORT te::gm::Polygon te::gm::CreatePolygon ( const te::gm::Envelope box,
const int &  srid,
const int &  numberOfIntermediateCoords 
)

Creates a Polygon from the given envelope and with the given number of intermediate coordinates in each of its four borders lines.

Parameters
boxThe envelope from which the polygon will be created
sridThe srid of the polygon
numberOfIntermediateCoordsThe number of intermediate coordinates of each border line
Returns
A LineString between startCoord and endCoord with the given number of intermediate coordinates in each border line

◆ GeometryToByteArrayConverter()

te::dt::AbstractData* te::gm::GeometryToByteArrayConverter ( te::dt::AbstractData d)
throw (Exception
)

It converts a Geometry data value to a ByteArray data value.

Parameters
dThe input data value.
Returns
A new data value converted to ByteArray type. The caller will take the ownership of the returned data.
Note
The ByteArray data value will contains the Geometry encoded using WKB format.
Exceptions
Itthrows an exception if the input abstract data is not a Geometry type.

◆ GeometryToStringConverter()

te::dt::AbstractData* te::gm::GeometryToStringConverter ( te::dt::AbstractData d)
throw (Exception
)

It converts a Geometry data value to a String data value.

Parameters
dThe input data value.
Returns
A new data value converted to String type. The caller will take the ownership of the returned data.
Note
The String data value will contains the Geometry encoded using WKT format.
Exceptions
Itthrows an exception if the input abstract data is not a Geometry type.

◆ Get2DGeometryType()

TEGEOMEXPORT const std::string te::gm::Get2DGeometryType ( const te::gm::GeomType type)

It returns the name of 2D geometry subclass.

The name of the 2D geometry subclass may be one of the following:

Returns
The name of the geometry subclass type ide.

◆ Get2DGeomTypeId()

TEGEOMEXPORT GeomType te::gm::Get2DGeomTypeId ( const te::gm::GeomType type)

It returns the 2D geometry subclass type identifier.

  • GeometryType = 0
  • PointType = 1
  • LineStringType = 2
  • PolygonType = 3
  • MultiPointType = 4
  • MultiLineStringType = 5
  • MultiPolygonType = 6
  • GeometryCollectionType = 7
  • CircularStringType = 8
  • CompoundCurveType = 9
  • CurvePolygonType = 10
  • MultiSurfaceType = 12
Returns
The 2D geometry subclass type identifier
Note
Please, see GeomType enumeration for possible return values.
TerraLib extended method.

◆ GetAngle()

TEGEOMEXPORT double te::gm::GetAngle ( te::gm::Coord2D  coordA,
te::gm::Coord2D  coordB 
)

◆ GetAppropriatePrecision()

TEGEOMEXPORT double te::gm::GetAppropriatePrecision ( int  srid)

Returns the appropriate precision to be used by spatial operations that adjust geometric data from other geometric systems.

Parameters
sridThe id of the SRS (Spatial Reference System)
Returns
The precision appropriate to the given srid

◆ GetArea()

TEGEOMEXPORT double te::gm::GetArea ( const te::gm::Geometry geometry)

Calculates the area of the given geometry. If the geometry is from dimension 0 or 1, it returns 0.

Parameters
geometryThe geometry to be analysed
Returns
The area of the geometry or 0 if the dimension of the geometry is 0 or 1

◆ GetAsMultiLineStringVector()

TEGEOMEXPORT std::vector<MultiLineString *> te::gm::GetAsMultiLineStringVector ( const te::gm::Geometry geometry)

Get the vector of MultLineStrings that compose the Geometry.

Parameters
geometryUsed to get lineStrings.

return A vector of MultiLineString based on geometry parameter.

◆ GetCoordDimension()

int te::gm::GetCoordDimension ( GeomType  t)
inline

It returns the number of measurements or axes needed to describe a position in a coordinate system.

It returns:

  • 2 for a coordinate with x, y;
  • 3 for a coordinate with x, y and z or x, y and m;
  • 4 for a coordinate with x, y, z and m.
Parameters
tThe geomeytric type.
Returns
The number of measurements or axes needed to describe a position in a coordinate system.

Definition at line 72 of file Utils.h.

◆ GetGeometryUnion()

TEGEOMEXPORT std::unique_ptr<te::gm::Geometry> te::gm::GetGeometryUnion ( const te::gm::GeometryVectorConst geomVec,
double  tolerance = 0.000000001 
)

It returns the union of a geometry vector.

Parameters
itemsVector of itens that represents a group.
toleranceTolerance value to be used in geometric operations
Returns
Union of the geometry.

◆ GetGeomFromEnvelope()

TEGEOMEXPORT Geometry* te::gm::GetGeomFromEnvelope ( const Envelope *const  e,
int  srid 
)

It creates a Geometry (a polygon) from the given envelope.

Parameters
eThe envelope to extract the coordinates. Don't call with a NULL envelope.
sridThe Spatial Reference System ID to be associated to the polygon.
Returns
A polygon (in counter-clock-wise) with rectangle coordinates: [(MINX, MINY), (MAXX, MINY), (MAXX, MAXY), (MINX, MAXY), (MINX, MINY)].
Note
The caller of this method will take the ownership of the returned geometry.

Referenced by te::rst::LineIterator< T >::LineIterator(), and te::rst::PointSetIterator< T >::PointSetIterator().

◆ GetInteriorPoint()

TEGEOMEXPORT te::gm::Coord2D te::gm::GetInteriorPoint ( const te::gm::Geometry geometry)

As geos Explanation: An interior point is guaranteed to lie in the interior of the Geometry, if it possible to calculate such a point exactly. Otherwise, the point may lie on the boundary of the geometry.

Parameters
geometryThe input geometry
Returns
An interior point inside the given Geometry, if possible.

◆ GetIntersectionLine()

TEGEOMEXPORT te::gm::Line* te::gm::GetIntersectionLine ( te::gm::Geometry geom,
te::gm::Coord2D  coord 
)

◆ GetIntersectionPointsByOperators()

TEGEOMEXPORT std::vector<te::gm::Coord2D> te::gm::GetIntersectionPointsByOperators ( const te::gm::LineString lsReference,
const std::vector< te::gm::LineString > &  candidates,
double  tolerance = 0.000000001 
)

Gets a vector of LineString reference points including intersection points using GEOS operators.

Parameters
lsReferenceLineString used as reference.
candidatesA Vector of LineString used to intersects the lsReference.
toleranceTolerance value to be used in geometric operations
Returns
A vector of LineString reference points including intersection points using GEOS operators.

◆ GetIntersectionPointsByPerpendicularDistance()

TEGEOMEXPORT std::vector<te::gm::Coord2D> te::gm::GetIntersectionPointsByPerpendicularDistance ( const te::gm::LineString lsReference,
const std::vector< te::gm::LineString > &  candidates,
double  tolerance = 0.000000001 
)

Gets a vector of LineString reference points including intersection points using perpendicular distance.

Parameters
lsReferenceLineString used as reference.
candidatesA Vector of LineString used to intersects the lsReference.
toleranceTolerance value to be used in geometric operations
Returns
A vector of LineString reference points including intersection points using perpendicular distance.

◆ GetMultiLineStringType()

TEGEOMEXPORT te::gm::GeomType te::gm::GetMultiLineStringType ( const te::gm::Geometry geometry)

Get the LineStrings that compose the Geometry.

Parameters
geometryUsed to get lineStrings.

return A LineString based on parameter geometry.

◆ GetMultiType()

TEGEOMEXPORT te::gm::GeomType te::gm::GetMultiType ( te::gm::GeomType  geomType)

Get the collection type of GeomType.

Parameters
geomTypeenum te::gm::GeomType.

return A collection type of GeomType.

◆ GetSimpleType()

TEGEOMEXPORT te::gm::GeomType te::gm::GetSimpleType ( te::gm::GeomType  geomType)

Get the simple type of GeomType.

Parameters
geomTypeenum te::gm::GeomType.

return A simple type of GeomType.

◆ isCCW()

TEGEOMEXPORT bool te::gm::isCCW ( const te::gm::LinearRing ring)

Checks if a LinearRing is in Counter-clockwise orientation.

Parameters
curveThe LinearRing to be checked
Returns
TRUE if the given LinearRing is in Counter-clockwise orientation. FALSE otherwise

◆ IsMultiType()

TEGEOMEXPORT bool te::gm::IsMultiType ( te::gm::GeomType  geomType)

Verifies if the geomType is a collection type.

Parameters
geomTypeenum te::gm::GeomType.

return True if the geomType is a collection type.

◆ IsNullOrEmpty() [1/2]

TEGEOMEXPORT bool te::gm::IsNullOrEmpty ( const te::gm::Geometry geometry)

Checks if the geometry is null or empty.

Parameters
geometryThe geometry to be checked
Returns
The result of the check. TRUE if the geometry is null or empty. FALSE otherwise

◆ IsNullOrEmpty() [2/2]

TEGEOMEXPORT bool te::gm::IsNullOrEmpty ( const te::gm::GeometryPtr geometry)

Checks if the geometry is null or empty.

Parameters
geometryThe geometry to be checked
Returns
The result of the check. TRUE if the geometry is null or empty. FALSE otherwise

◆ IsPointOnPolygon()

TEGEOMEXPORT bool te::gm::IsPointOnPolygon ( const te::gm::Coord2D coord,
const te::gm::Geometry geometry 
)

Checks if the given point in within the given polygon or multipolygon geometry.

Parameters
coordThe coord to be checked
geometryThe Polygon or Multipolygon to be used as reference
Returns
TRUE if the point is within the polygon. FALSE otherwise

◆ locateAlong()

TEGEOMEXPORT Coord2D* te::gm::locateAlong ( const LineString line,
double  initial,
double  final,
double  target 
)

Make the line interpolation to find a target.

Parameters
lineLineString to make the interpolation
initialInitial value
finalFinal value
targetTarget value
Returns
It returns a target Coord2D in the line.

◆ Multi2Single()

TEGEOMEXPORT void te::gm::Multi2Single ( const te::gm::Geometry g,
std::vector< te::gm::Geometry * > &  geoms 
)

It will get a GeometryCollection and distribute in a vector.

Parameters
gInput GeometryCollection.
geomsOutput Geometry Vector.
Note
If the geomSource is not a te::gm::GeometryCollectionType it will return vector with the input geometry.

◆ MultiLineToDefinedType()

TEGEOMEXPORT te::gm::Geometry* te::gm::MultiLineToDefinedType ( const std::vector< te::gm::MultiLineString * > &  multiLineStringVector,
te::gm::GeomType  geometryType 
)

A geometry is built based on a Vector of MultiLineString and the origin geometry type.

Parameters
multiLineStringVectorA vector of multiLineString that have all lines of a Geometry.

return A geometry built based on a Vector of MultiLineString and the origin geometry type.

◆ NormalizeGeometryByType()

TEGEOMEXPORT te::gm::Geometry* te::gm::NormalizeGeometryByType ( const te::gm::Geometry geometry,
te::gm::GeomType  singleGeometryType 
)

Normalizes and filters the given geometry based on the given simple type. \description If the given geometry if already from the given simple type, it will clone the geometry and return it. If the geometry is from the multi type related to the single, it will clone the geometry and return it. If the geometry is a collection, it will search for geometries from the given single type and multi type, and return them in a collection related to the given type.

Parameters
geometryThe geometry to be analysed
singleGeometryTypeThe base single type to be used as filter
Returns
The normalized geometry based onthe given singleGeometryType. Null if this given type could not be found in the given geometry.

◆ ParallelLine()

TEGEOMEXPORT te::gm::LineString* te::gm::ParallelLine ( const te::gm::LineString line,
double  distance 
)

Creates a parallel line from the given line. Here will use the distance for offset between the original line and the parallel.

Parameters
lineOriginal line
distancefor offset between the original line and the parallel. Left will be positive and right will be negative
Returns
A LineString between startCoord and endCoord with the given number of intermediate coordinates in each border line

◆ Polygonizer() [1/2]

TEGEOMEXPORT void te::gm::Polygonizer ( const te::gm::GeometryVector vecInput,
te::gm::GeometryVector vecOutput 
)

It will get a list of polygons formed by the polygonization.

Parameters
gInput Polygon.
polsOutput Polygon Vector.

◆ Polygonizer() [2/2]

TEGEOMEXPORT void te::gm::Polygonizer ( te::gm::Geometry g,
std::vector< te::gm::Polygon * > &  pols 
)

It will get a list of polygons formed by the polygonization.

Parameters
gInput Polygon.
polsOutput Polygon Vector.

◆ PrepareGeometriesToIntersection() [1/7]

TEGEOMEXPORT te::gm::Geometry* te::gm::PrepareGeometriesToIntersection ( const te::gm::Geometry geom_A,
const te::gm::GeometryVector vecGeomB,
bool &  wasChanged,
double  tolerance = 0.000000001 
)

Prepares the geometry A with intersection points in geometry B.

Parameters
geom_AGeometry used to be inserted new points of intersection.
vecGeomBThe list of Geometries used to intersects with Geometry A.
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
toleranceTolerance value to be used in geometric operations
Returns
A new geometry based on geometry A with intersection points in geometry B.

◆ PrepareGeometriesToIntersection() [2/7]

TEGEOMEXPORT te::gm::Geometry* te::gm::PrepareGeometriesToIntersection ( const te::gm::Geometry geom_A,
const te::gm::GeometryVector vecGeomB,
bool  checkValidityAndFix,
bool &  wasChanged,
double  tolerance = 0.000000001 
)

◆ PrepareGeometriesToIntersection() [3/7]

TEGEOMEXPORT te::gm::Geometry* te::gm::PrepareGeometriesToIntersection ( const te::gm::Geometry geom_A,
te::gm::Geometry geomB,
bool &  wasChanged,
double  tolerance = 0.000000001 
)

Prepares the geometry A with intersection points in geometry B.

Parameters
geom_AGeometry used to be inserted new points of intersection.
geomBThe geometry to be used to intersect with Geometry B.
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
toleranceTolerance value to be used in geometric operations
Returns
A new geometry based on geometry A with intersection points in geometry B.

◆ PrepareGeometriesToIntersection() [4/7]

TEGEOMEXPORT te::gm::Geometry* te::gm::PrepareGeometriesToIntersection ( const te::gm::Geometry geom_A,
te::gm::Geometry geomB,
bool  checkValidityAndFix,
bool &  wasChanged,
double  tolerance = 0.000000001 
)

◆ PrepareGeometriesToIntersection() [5/7]

TEGEOMEXPORT te::gm::GeometryVector te::gm::PrepareGeometriesToIntersection ( const te::gm::GeometryVectorConst vecGeometries,
bool &  wasChanged,
double  tolerance = 0.000000001 
)

Prepares the geometries vector to be used in overlay operations. \description It has two steps: 1 - Tries to snap the existing coordinates to make them be exactly the same if the are within the given tolerance; 2 - It breaks crossing segments in the intersection coordinates, sometimes gerating new coordinates in both segments.

Parameters
vecGeometriesThe vector to be prepared.
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
toleranceTolerance value to be used in geometric operations
Returns
A new geometry vector prepared to overlay operations.

◆ PrepareGeometriesToIntersection() [6/7]

TEGEOMEXPORT te::gm::LineString* te::gm::PrepareGeometriesToIntersection ( const te::gm::LineString ls_A,
const te::sam::rtree::Index< std::size_t, 8 > &  rtree,
std::vector< te::gm::LineString > &  vecRtreeSegments,
bool &  wasChanged,
double  tolerance = 0.000000001 
)

Prepares the LineString A with intersection points in LineString B.

Parameters
ls_ALineString used to be inserted new points of intersection.
rtreeRtree indexing all the segments that must be used in the prepare algorithm.
vecRtreeSegmentsAll the segments indexed in the rtree
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
toleranceTolerance value to be used in geometric operations
Returns
A new LineString based on LineString A with intersection points in LineString B.

◆ PrepareGeometriesToIntersection() [7/7]

TEGEOMEXPORT te::gm::MultiLineString* te::gm::PrepareGeometriesToIntersection ( const te::gm::MultiLineString mline_A,
const te::sam::rtree::Index< std::size_t, 8 > &  rtree,
std::vector< te::gm::LineString > &  vecRtreeSegments,
bool &  wasChanged,
double  tolerance = 0.000000001 
)

Prepares the MultiLineString A with intersection points in MultiLineString B.

Parameters
mline_AMultiLineString used to be inserted new points of intersection.
rtreeRtree indexing all the segments that must be used in the prepare algorithm.
vecRtreeSegmentsAll the segments indexed in the rtree
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
toleranceTolerance value to be used in geometric operations
Returns
A new MultiLineString based on MultiLineString A with intersection points in MultiLineString B.

◆ RelationMatches()

TEGEOMEXPORT bool te::gm::RelationMatches ( const std::string &  relation,
const std::string &  relationPattern 
)

Tests if the given relation matrix matches with the given relation pattern. This pattern is based on the Dimensionally Extended nine-Intersection Model (DE-9IM)

Parameters
relationThe relation matrix to be checked
relationPatternThe pattern to be match
Returns
It returns TRUE if the given relation matches the given relationPattern. Otherwise, it returns FALSE.
Exceptions
ExceptionIt throws an exception if the spatial relation is not valid or if the test can not be evaluated.

◆ Rotate()

TEGEOMEXPORT bool te::gm::Rotate ( te::gm::Coord2D  pr,
te::gm::LineString l,
double  angle,
te::gm::LineString lOut 
)

◆ SatisfySpatialRelation()

TEGEOMEXPORT bool te::gm::SatisfySpatialRelation ( const Geometry g1,
const Geometry g2,
SpatialRelation  relation 
)

It returns if two geometries satisfy a given spatial relation.

Parameters
g1The first geometry
g2The second geometry
rA given spatial relation to be tested
Returns
It returns true if the given two geometries satisfy the spatial relation. Otherwise, it returns false.
Exceptions
ExceptionIt throws an exception if the spatial relation is not valid or if the test can not be evaluated.

Referenced by te::rst::LineIterator< T >::LineIterator(), and te::rst::PointSetIterator< T >::PointSetIterator().

◆ SnapLineToPoints()

TEGEOMEXPORT LineString* te::gm::SnapLineToPoints ( const te::sam::rtree::Index< std::size_t, 8 > &  rtree,
const std::vector< te::gm::LineString > &  referenceSegments,
const std::set< std::size_t > &  setIndexesIgnored,
const te::gm::LineString linearRingToSnap,
bool &  wasChanged,
double  tolerance = 0.000000001 
)

Snaps a LinearRing based on a set of LineString.

Parameters
rtreeThe R-tree contains the candidates envelopes as reference to snap.
referenceSegmentsA vector of LineString that is used as reference to snap.
setIndexesIgnoredA set of indexes of candidates that had must be ignored in the processing. This set is used for optimization purposes
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
linearRingToSnapA LinearRing that will be snapped.
toleranceTolerance value to be used in geometric operations
Returns
A new snapped LinearRing.

◆ SplitGeometry()

TEGEOMEXPORT std::vector<te::gm::Geometry*> te::gm::SplitGeometry ( const te::gm::Geometry inputGeometry,
const te::gm::Geometry bladeLineGeometry 
)

Splits the given 'inputGeometry' (must be an area) using the given 'bladeLineGeometry' (must be a line)

Parameters
inputGeometryThe input geometry to be splitted
inputGeometryThe line to be used to split the input geoemtry
Returns
The splitted geometry. Throws an exception if an error occur

◆ StringToGeometryConverter()

te::dt::AbstractData* te::gm::StringToGeometryConverter ( te::dt::AbstractData d)

It converts a String data value to a Geometry data value.

Parameters
dThe input data value.
Returns
A new data value converted to Geometry type. The caller will take the ownership of the returned data.
Note
This method consider that the String data value contains a geometry encoded using WKT format.
Exceptions
Itthrows an exception if the input abstract data is not a String type.
Itthrows an exception if the conversion can be not done.

◆ ToConstVector()

TEGEOMEXPORT te::gm::GeometryVectorConst te::gm::ToConstVector ( const te::gm::GeometryVector vecGeometries)

◆ UnaryUnion()

TEGEOMEXPORT te::gm::Geometry* te::gm::UnaryUnion ( te::gm::Geometry geom)

It will get the union of the input geometries.

Parameters
geomInput Geometry.
Returns
a Geometry containing the union.
Note
If no input geometries were provided, an EMPTY POINTER is returned.