te::gm Namespace Reference

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

Classes

class  AbstractPoint
 A base abstract class for 0-dimensional geometric objects that represents a single location in coordinate space. More...
 
class  AffineGT
 2D Affine Geometric transformation. More...
 
class  AffineGTFactory
 2D Affine Geometric transformation factory. 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...
 
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  Envelope
 An Envelope defines a 2D rectangular region. More...
 
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  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  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...
 
class  PointKd
 A k-dimensional point. More...
 
class  PointM
 A point with an associated measure. More...
 
class  PointZ
 A point with z-coordinate value. More...
 
class  PointZM
 A point with a z-coordinate value and an associated measurement. 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  RSTGT
 2D Rotation/scale/translation(rigid body) Geometric transformation. More...
 
class  RSTGTFactory
 2D RST Geometric transformation factory. More...
 
class  SecondDegreePolynomialGT
 Second Degree Polynomial Geometric transformation. More...
 
class  SecondDegreePolynomialGTFactory
 2D Second Degree Polynomial Geometric transformation factory. More...
 
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...
 
class  Triangle
 Triangle is a polygon with 3 distinct, non-collinear vertices and no interior boundary. More...
 
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

typedef boost::shared_ptr< GeometryGeometryShrPtr
 

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 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 GeometryFixGeometry (te::gm::Geometry *inputGeom)
 
int GetCoordDimension (GeomType t)
 It returns the number of measurements or axes needed to describe a position in a coordinate system. More...
 
TEGEOMEXPORT GeometryGetGeomFromEnvelope (const Envelope *const e, int srid)
 It creates a Geometry (a polygon) from the given envelope. More...
 
template<class T1 , class T2 >
bool Intersects (const T1 &o1, const T2 &o2)
 
template<>
TEGEOMEXPORT bool Intersects (const te::gm::Point &point, const te::gm::Envelope &e)
 
TEGEOMEXPORT Coord2DlocateAlong (const LineString *line, double initial, double final, double target)
 Make the line interpolation to find a target. More...
 
TEGEOMEXPORT void Multi2Single (te::gm::Geometry *g, std::vector< te::gm::Geometry * > &geoms)
 It will get a GeometryCollection and distribute in a vector. More...
 
TEGEOMEXPORT bool SatisfySpatialRelation (const Geometry *g1, const Geometry *g2, SpatialRelation relation)
 It returns if two geometries satisfy a given spatial relation. 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

typedef boost::shared_ptr<Geometry> te::gm::GeometryShrPtr

Definition at line 872 of file Geometry.h.

Enumeration Type Documentation

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.

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.

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.

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

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
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.
TEGEOMEXPORT Geometry* te::gm::FixGeometry ( te::gm::Geometry inputGeom)
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.
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.
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 61 of file Utils.h.

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().

template<class T1 , class T2 >
bool te::gm::Intersects ( const T1 &  o1,
const T2 &  o2 
)
template<>
TEGEOMEXPORT bool te::gm::Intersects ( const te::gm::Point point,
const te::gm::Envelope e 
)
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.
TEGEOMEXPORT void te::gm::Multi2Single ( 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 an empty vector.
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().

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.