OGR
|
#include <ogr_geometry.h>
Public Member Functions | |
OGRLineString () | |
Create an empty line string. | |
OGRLineString (const OGRLineString &other) | |
Copy constructor. More... | |
OGRLineString & | operator= (const OGRLineString &other) |
Assignment operator. More... | |
virtual OGRLineString * | CurveToLine (double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_OVERRIDE |
Return a linestring from a curve geometry. More... | |
virtual OGRGeometry * | getCurveGeometry (const char *const *papszOptions=NULL) const CPL_OVERRIDE |
Return curve version of this geometry. More... | |
virtual double | get_Area () const CPL_OVERRIDE |
Get the area of the (closed) curve. More... | |
virtual OGRwkbGeometryType | getGeometryType () const CPL_OVERRIDE |
Fetch geometry type. More... | |
virtual const char * | getGeometryName () const CPL_OVERRIDE |
Fetch WKT name for geometry type. More... | |
![]() | |
OGRSimpleCurve & | operator= (const OGRSimpleCurve &other) |
Assignment operator. More... | |
virtual int | WkbSize () const CPL_OVERRIDE |
Returns size of related binary representation. More... | |
virtual OGRErr | importFromWkb (unsigned char *, int=-1, OGRwkbVariant=wkbVariantOldOgc) CPL_OVERRIDE |
Assign geometry from well known binary data. More... | |
virtual OGRErr | exportToWkb (OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE |
Convert a geometry into well known binary format. More... | |
virtual OGRErr | importFromWkt (char **) CPL_OVERRIDE |
Assign geometry from well known text data. More... | |
virtual OGRErr | exportToWkt (char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const CPL_OVERRIDE |
Convert a geometry into well known text format. More... | |
virtual OGRGeometry * | clone () const CPL_OVERRIDE |
Make a copy of this object. More... | |
virtual void | empty () CPL_OVERRIDE |
Clear geometry information. This restores the geometry to it's initial state after construction, and before assignment of actual geometry. More... | |
virtual void | getEnvelope (OGREnvelope *psEnvelope) const CPL_OVERRIDE |
Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure. More... | |
virtual void | getEnvelope (OGREnvelope3D *psEnvelope) const CPL_OVERRIDE |
Computes and returns the bounding envelope (3D) for this geometry in the passed psEnvelope structure. More... | |
virtual OGRBoolean | IsEmpty () const CPL_OVERRIDE |
Returns TRUE (non-zero) if the object has no points. More... | |
virtual double | get_Length () const CPL_OVERRIDE |
Returns the length of the curve. More... | |
virtual void | StartPoint (OGRPoint *) const CPL_OVERRIDE |
Return the curve start point. More... | |
virtual void | EndPoint (OGRPoint *) const CPL_OVERRIDE |
Return the curve end point. More... | |
virtual void | Value (double, OGRPoint *) const CPL_OVERRIDE |
Fetch point at given distance along curve. More... | |
virtual double | Project (const OGRPoint *) const |
Project point on linestring. More... | |
virtual OGRLineString * | getSubLine (double, double, int) const |
Get the portion of linestring. More... | |
virtual int | getNumPoints () const CPL_OVERRIDE |
Fetch vertex count. More... | |
void | getPoint (int, OGRPoint *) const |
Fetch a point in line string. More... | |
double | getX (int i) const |
Get X at vertex. More... | |
double | getY (int i) const |
Get Y at vertex. More... | |
double | getZ (int i) const |
Get Z at vertex. More... | |
double | getM (int i) const |
Get measure at vertex. More... | |
virtual OGRBoolean | Equals (OGRGeometry *) const CPL_OVERRIDE |
Returns TRUE if two geometries are equivalent. More... | |
virtual void | setCoordinateDimension (int nDimension) CPL_OVERRIDE |
Set the coordinate dimension. More... | |
virtual void | set3D (OGRBoolean bIs3D) CPL_OVERRIDE |
Add or remove the Z coordinate dimension. More... | |
virtual void | setMeasured (OGRBoolean bIsMeasured) CPL_OVERRIDE |
Add or remove the M coordinate dimension. More... | |
void | setNumPoints (int nNewPointCount, int bZeroizeNewContent=TRUE) |
Set number of points in geometry. More... | |
void | setPoint (int, OGRPoint *) |
Set the location of a vertex in line string. More... | |
void | setPoint (int, double, double) |
Set the location of a vertex in line string. More... | |
void | setZ (int, double) |
Set the Z of a vertex in line string. More... | |
void | setM (int, double) |
Set the M of a vertex in line string. More... | |
void | setPoint (int, double, double, double) |
Set the location of a vertex in line string. More... | |
void | setPointM (int, double, double, double) |
Set the location of a vertex in line string. More... | |
void | setPoint (int, double, double, double, double) |
Set the location of a vertex in line string. More... | |
void | setPoints (int, OGRRawPoint *, double *=NULL) |
Assign all points in a line string. More... | |
void | setPointsM (int, OGRRawPoint *, double *) |
Assign all points in a line string. More... | |
void | setPoints (int, OGRRawPoint *, double *, double *) |
Assign all points in a line string. More... | |
void | setPoints (int, double *padfX, double *padfY, double *padfZIn=NULL) |
Assign all points in a line string. More... | |
void | setPointsM (int, double *padfX, double *padfY, double *padfMIn=NULL) |
Assign all points in a line string. More... | |
void | setPoints (int, double *padfX, double *padfY, double *padfZIn, double *padfMIn) |
Assign all points in a line string. More... | |
void | addPoint (const OGRPoint *) |
Add a point to a line string. More... | |
void | addPoint (double, double) |
Add a point to a line string. More... | |
void | addPoint (double, double, double) |
Add a point to a line string. More... | |
void | addPointM (double, double, double) |
Add a point to a line string. More... | |
void | addPoint (double, double, double, double) |
Add a point to a line string. More... | |
void | getPoints (OGRRawPoint *, double *=NULL) const |
Returns all points of line string. More... | |
void | getPoints (void *pabyX, int nXStride, void *pabyY, int nYStride, void *pabyZ=NULL, int nZStride=0) const |
Returns all points of line string. More... | |
void | getPoints (void *pabyX, int nXStride, void *pabyY, int nYStride, void *pabyZ, int nZStride, void *pabyM, int nMStride) const |
Returns all points of line string. More... | |
void | addSubLineString (const OGRLineString *, int nStartVertex=0, int nEndVertex=-1) |
Add a segment of another linestring to this one. More... | |
void | reversePoints (void) |
Reverse point order. More... | |
virtual OGRPointIterator * | getPointIterator () const CPL_OVERRIDE |
Returns a point iterator over the curve. More... | |
virtual OGRErr | transform (OGRCoordinateTransformation *poCT) CPL_OVERRIDE |
Apply arbitrary coordinate transformation to geometry. More... | |
virtual void | flattenTo2D () CPL_OVERRIDE |
Convert geometry to strictly 2D. In a sense this converts all Z coordinates to 0.0. More... | |
virtual void | segmentize (double dfMaxLength) CPL_OVERRIDE |
Modify the geometry such it has no segment longer then the given distance. More... | |
virtual void | swapXY () CPL_OVERRIDE |
Swap x and y coordinates. More... | |
![]() | |
virtual int | get_IsClosed () const |
Return TRUE if curve is closed. More... | |
virtual int | getDimension () const CPL_OVERRIDE |
Get the dimension of this object. More... | |
virtual OGRBoolean | IsConvex () const |
Returns if a (closed) curve forms a convex shape. More... | |
![]() | |
OGRGeometry (const OGRGeometry &other) | |
Copy constructor. More... | |
OGRGeometry & | operator= (const OGRGeometry &other) |
Assignment operator. More... | |
virtual int | getCoordinateDimension () const |
Get the dimension of the coordinates in this object. More... | |
int | CoordinateDimension () const |
Get the dimension of the coordinates in this object. More... | |
virtual OGRBoolean | IsValid () const |
Test if the geometry is valid. More... | |
virtual OGRBoolean | IsSimple () const |
Test if the geometry is simple. More... | |
OGRBoolean | Is3D () const |
OGRBoolean | IsMeasured () const |
virtual OGRBoolean | IsRing () const |
Test if the geometry is a ring. More... | |
OGRwkbGeometryType | getIsoGeometryType () const |
Get the geometry type that conforms with ISO SQL/MM Part3. More... | |
virtual void | dumpReadable (FILE *, const char *=NULL, char **papszOptions=NULL) const |
Dump geometry in well known text format to indicated output file. More... | |
virtual char * | exportToGML (const char *const *papszOptions=NULL) const |
Convert a geometry into GML format. More... | |
virtual char * | exportToKML () const |
Convert a geometry into KML format. More... | |
virtual char * | exportToJson () const |
Convert a geometry into GeoJSON format. More... | |
virtual GEOSGeom | exportToGEOS (GEOSContextHandle_t hGEOSCtxt) const CPL_WARN_UNUSED_RESULT |
virtual OGRBoolean | hasCurveGeometry (int bLookForNonLinear=FALSE) const |
Returns if this geometry is or has curve geometry. More... | |
virtual OGRGeometry * | getLinearGeometry (double dfMaxAngleStepSizeDegrees=0, const char *const *papszOptions=NULL) const CPL_WARN_UNUSED_RESULT |
Return, possibly approximate, non-curve version of this geometry. More... | |
virtual void | closeRings () |
Force rings to be closed. More... | |
void | assignSpatialReference (OGRSpatialReference *poSR) |
Assign spatial reference to this object. More... | |
OGRSpatialReference * | getSpatialReference (void) const |
Returns spatial reference system for object. More... | |
OGRErr | transformTo (OGRSpatialReference *poSR) |
Transform geometry to new spatial reference system. More... | |
virtual OGRBoolean | Intersects (const OGRGeometry *) const |
Do these features intersect? More... | |
virtual OGRBoolean | Disjoint (const OGRGeometry *) const |
Test for disjointness. More... | |
virtual OGRBoolean | Touches (const OGRGeometry *) const |
Test for touching. More... | |
virtual OGRBoolean | Crosses (const OGRGeometry *) const |
Test for crossing. More... | |
virtual OGRBoolean | Within (const OGRGeometry *) const |
Test for containment. More... | |
virtual OGRBoolean | Contains (const OGRGeometry *) const |
Test for containment. More... | |
virtual OGRBoolean | Overlaps (const OGRGeometry *) const |
Test for overlap. More... | |
virtual OGRGeometry * | Boundary () const CPL_WARN_UNUSED_RESULT |
Compute boundary. More... | |
virtual double | Distance (const OGRGeometry *) const |
Compute distance between two geometries. More... | |
virtual OGRGeometry * | ConvexHull () const CPL_WARN_UNUSED_RESULT |
Compute convex hull. More... | |
virtual OGRGeometry * | Buffer (double dfDist, int nQuadSegs=30) const CPL_WARN_UNUSED_RESULT |
Compute buffer of geometry. More... | |
virtual OGRGeometry * | Intersection (const OGRGeometry *) const CPL_WARN_UNUSED_RESULT |
Compute intersection. More... | |
virtual OGRGeometry * | Union (const OGRGeometry *) const CPL_WARN_UNUSED_RESULT |
Compute union. More... | |
virtual OGRGeometry * | UnionCascaded () const CPL_WARN_UNUSED_RESULT |
Compute union using cascading. More... | |
virtual OGRGeometry * | Difference (const OGRGeometry *) const CPL_WARN_UNUSED_RESULT |
Compute difference. More... | |
virtual OGRGeometry * | SymDifference (const OGRGeometry *) const CPL_WARN_UNUSED_RESULT |
Compute symmetric difference. More... | |
virtual OGRErr | Centroid (OGRPoint *poPoint) const |
Compute the geometry centroid. More... | |
virtual OGRGeometry * | Simplify (double dTolerance) const CPL_WARN_UNUSED_RESULT |
Simplify the geometry. More... | |
OGRGeometry * | SimplifyPreserveTopology (double dTolerance) const CPL_WARN_UNUSED_RESULT |
Simplify the geometry while preserving topology. More... | |
virtual OGRGeometry * | DelaunayTriangulation (double dfTolerance, int bOnlyEdges) const CPL_WARN_UNUSED_RESULT |
Return a Delaunay triangulation of the vertices of the geometry. More... | |
virtual OGRGeometry * | Polygonize () const CPL_WARN_UNUSED_RESULT |
Polygonizes a set of sparse edges. More... | |
virtual double | Distance3D (const OGRGeometry *poOtherGeom) const |
Returns the 3D distance between two geometries. More... | |
Static Protected Member Functions | |
static OGRLinearRing * | CastToLinearRing (OGRLineString *poLS) |
Cast to linear ring. More... | |
Additional Inherited Members | |
![]() | |
static OGRCompoundCurve * | CastToCompoundCurve (OGRCurve *puCurve) |
Cast to compound curve. More... | |
static OGRLineString * | CastToLineString (OGRCurve *poCurve) |
Cast to linestring. More... | |
static OGRLinearRing * | CastToLinearRing (OGRCurve *poCurve) |
Cast to linear ring. More... | |
![]() | |
static GEOSContextHandle_t | createGEOSContext () |
static void | freeGEOSContext (GEOSContextHandle_t hGEOSCtxt) |
![]() | |
virtual double | get_LinearArea () const |
Compute area of ring / closed linestring. More... | |
OGRSimpleCurve () | |
OGRSimpleCurve (const OGRSimpleCurve &other) | |
Copy constructor. More... | |
![]() | |
virtual int | ContainsPoint (const OGRPoint *p) const |
Returns if a point is contained in a (closed) curve. More... | |
virtual double | get_AreaOfCurveSegments () const =0 |
Get the area of the purely curve portions of a (closed) curve. More... | |
Concrete representation of a multi-vertex line.
Note: for implementation convenience, we make it inherit from OGRSimpleCurve whereas SFSQL and SQL/MM only make it inherits from OGRCurve.
OGRLineString::OGRLineString | ( | const OGRLineString & | other | ) |
Copy constructor.
Note: before GDAL 2.1, only the default implementation of the constructor existed, which could be unsafe to use.
|
staticprotected |
Cast to linear ring.
The passed in geometry is consumed and a new one returned (or NULL in case of failure)
poLS | the input geometry - ownership is passed to the method. |
References CPLE_AppDefined, CPLError(), and OGRCurve::get_IsClosed().
|
virtual |
Return a linestring from a curve geometry.
The returned geometry is a new instance whose ownership belongs to the caller.
If the dfMaxAngleStepSizeDegrees is zero, then a default value will be used. This is currently 4 degrees unless the user has overridden the value with the OGR_ARC_STEPSIZE configuration variable.
This method relates to the ISO SQL/MM Part 3 ICurve::CurveToLine() method.
This function is the same as C function OGR_G_CurveToLine().
dfMaxAngleStepSizeDegrees | the largest step in degrees along the arc, zero to use the default setting. |
papszOptions | options as a null-terminated list of strings or NULL. See OGRGeometryFactory::curveToLineString() for valid options. |
Implements OGRCurve.
References OGRSimpleCurve::clone(), CPLE_AppDefined, and CPLError().
Referenced by OGRCurvePolygon::CurvePolyToPoly(), and OGRGeometryFactory::forceToPolygon().
|
virtual |
Get the area of the (closed) curve.
This method is designed to be used by OGRCurvePolygon::get_Area().
Implements OGRCurve.
Referenced by OGRCircularString::get_Area(), and OGRCompoundCurve::get_Area().
|
virtual |
Return curve version of this geometry.
Returns a geometry that has possibly CIRCULARSTRING, COMPOUNDCURVE, CURVEPOLYGON, MULTICURVE or MULTISURFACE in it, by de-approximating curve geometries.
If the geometry has no curve portion, the returned geometry will be a clone of it.
The ownership of the returned geometry belongs to the caller.
The reverse method is OGRGeometry::getLinearGeometry().
This function is the same as C function OGR_G_GetCurveGeometry().
papszOptions | options as a null-terminated list of strings. Unused for now. Must be set to NULL. |
Reimplemented from OGRGeometry.
References OGRGeometryFactory::curveFromLineString().
|
virtual |
Fetch WKT name for geometry type.
There is no SFCOM analog to this method.
This method is the same as the C function OGR_G_GetGeometryName().
Implements OGRGeometry.
Reimplemented in OGRLinearRing.
|
virtual |
Fetch geometry type.
Note that the geometry type may include the 2.5D flag. To get a 2D flattened version of the geometry type apply the wkbFlatten() macro to the return result.
This method is the same as the C function OGR_G_GetGeometryType().
Implements OGRGeometry.
References wkbLineString, wkbLineString25D, wkbLineStringM, and wkbLineStringZM.
OGRLineString & OGRLineString::operator= | ( | const OGRLineString & | other | ) |
Assignment operator.
Note: before GDAL 2.1, only the default implementation of the operator existed, which could be unsafe to use.
References OGRSimpleCurve::operator=().
Referenced by OGRLinearRing::operator=().