|
GDAL
|
Concrete representation of a multi-vertex line. More...
#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=nullptr) const override |
| Return a linestring from a curve geometry. More... | |
| virtual OGRGeometry * | getCurveGeometry (const char *const *papszOptions=nullptr) const override |
| Return curve version of this geometry. More... | |
| virtual double | get_Area () const override |
| Get the area of the (closed) curve. More... | |
| virtual OGRwkbGeometryType | getGeometryType () const override |
| Fetch geometry type. More... | |
| virtual const char * | getGeometryName () const override |
| Fetch WKT name for geometry type. More... | |
| OGRSimpleCurve * | toUpperClass () |
| Return pointer of this in upper class. | |
| const OGRSimpleCurve * | toUpperClass () const |
| Return pointer of this in upper class. | |
| virtual void | accept (IOGRGeometryVisitor *visitor) override |
| Accept a visitor. More... | |
| virtual void | accept (IOGRConstGeometryVisitor *visitor) const override |
| Accept a visitor. More... | |
Public Member Functions inherited from OGRSimpleCurve | |
| OGRSimpleCurve & | operator= (const OGRSimpleCurve &other) |
| Assignment operator. More... | |
| Iterator | begin () |
| Return begin of point iterator. More... | |
| Iterator | end () |
| Return end of point iterator. More... | |
| ConstIterator | begin () const |
| Return begin of point iterator. More... | |
| ConstIterator | end () const |
| Return end of point iterator. More... | |
| virtual int | WkbSize () const override |
| Returns size of related binary representation. More... | |
| virtual OGRErr | importFromWkb (const unsigned char *, int, OGRwkbVariant, int &nBytesConsumedOut) override |
| Assign geometry from well known binary data. More... | |
| virtual OGRErr | exportToWkb (OGRwkbByteOrder, unsigned char *, OGRwkbVariant=wkbVariantOldOgc) const override |
| Convert a geometry into well known binary format. More... | |
| OGRErr | importFromWkt (const char **) override |
| deprecated | |
| virtual OGRErr | exportToWkt (char **ppszDstText, OGRwkbVariant=wkbVariantOldOgc) const override |
| Convert a geometry into well known text format. More... | |
| virtual OGRGeometry * | clone () const override |
| Make a copy of this object. More... | |
| virtual void | empty () override |
| Clear geometry information. More... | |
| virtual void | getEnvelope (OGREnvelope *psEnvelope) const override |
| Computes and returns the bounding envelope for this geometry in the passed psEnvelope structure. More... | |
| virtual void | getEnvelope (OGREnvelope3D *psEnvelope) const override |
| Computes and returns the bounding envelope (3D) for this geometry in the passed psEnvelope structure. More... | |
| virtual OGRBoolean | IsEmpty () const override |
| Returns TRUE (non-zero) if the object has no points. More... | |
| virtual double | get_Length () const override |
| Returns the length of the curve. More... | |
| virtual void | StartPoint (OGRPoint *) const override |
| Return the curve start point. More... | |
| virtual void | EndPoint (OGRPoint *) const override |
| Return the curve end point. More... | |
| virtual void | Value (double, OGRPoint *) const 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 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 (const OGRGeometry *) const override |
| Returns TRUE if two geometries are equivalent. More... | |
| virtual void | setCoordinateDimension (int nDimension) override |
| Set the coordinate dimension. More... | |
| virtual void | set3D (OGRBoolean bIs3D) override |
| Add or remove the Z coordinate dimension. More... | |
| virtual void | setMeasured (OGRBoolean bIsMeasured) 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, const OGRRawPoint *, const double *=nullptr) |
| Assign all points in a line string. More... | |
| void | setPointsM (int, const OGRRawPoint *, const double *) |
| Assign all points in a line string. More... | |
| void | setPoints (int, const OGRRawPoint *, const double *, const double *) |
| Assign all points in a line string. More... | |
| void | setPoints (int, const double *padfX, const double *padfY, const double *padfZIn=nullptr) |
| Assign all points in a line string. More... | |
| void | setPointsM (int, const double *padfX, const double *padfY, const double *padfMIn=nullptr) |
| Assign all points in a line string. More... | |
| void | setPoints (int, const double *padfX, const double *padfY, const double *padfZIn, const 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 *=nullptr) const |
| Returns all points of line string. More... | |
| void | getPoints (void *pabyX, int nXStride, void *pabyY, int nYStride, void *pabyZ=nullptr, 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 override |
| Returns a point iterator over the curve. More... | |
| virtual OGRErr | transform (OGRCoordinateTransformation *poCT) override |
| Apply arbitrary coordinate transformation to geometry. More... | |
| virtual void | flattenTo2D () override |
| Convert geometry to strictly 2D. More... | |
| virtual void | segmentize (double dfMaxLength) override |
| Modify the geometry such it has no segment longer then the given distance. More... | |
| virtual void | swapXY () override |
| Swap x and y coordinates. More... | |
Public Member Functions inherited from OGRCurve | |
| ConstIterator | begin () const |
| Return begin of a point iterator. More... | |
| ConstIterator | end () const |
| Return end of a point iterator. More... | |
| virtual int | get_IsClosed () const |
| Return TRUE if curve is closed. More... | |
| virtual int | getDimension () const override |
| Get the dimension of this object. More... | |
| virtual OGRBoolean | IsConvex () const |
| Returns if a (closed) curve forms a convex shape. More... | |
| OGRSimpleCurve * | toSimpleCurve () |
| Down-cast to OGRSimpleCurve*. More... | |
| const OGRSimpleCurve * | toSimpleCurve () const |
| Down-cast to OGRSimpleCurve*. More... | |
Public Member Functions inherited from OGRGeometry | |
| OGRGeometry (const OGRGeometry &other) | |
| Copy constructor. More... | |
| OGRGeometry & | operator= (const OGRGeometry &other) |
| Assignment operator. More... | |
| bool | operator== (const OGRGeometry &other) const |
| Returns if two geometries are equal. More... | |
| bool | operator!= (const OGRGeometry &other) const |
| Returns if two geometries are different. 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... | |
| OGRErr | importFromWkb (const GByte *, int=-1, OGRwkbVariant=wkbVariantOldOgc) |
| Assign geometry from well known binary data. More... | |
| OGRErr | importFromWkt (char **ppszInput) CPL_WARN_DEPRECATED("Use importFromWkt( const char**) instead") |
| Deprecated. More... | |
| OGRwkbGeometryType | getIsoGeometryType () const |
| Get the geometry type that conforms with ISO SQL/MM Part3. More... | |
| virtual void | dumpReadable (FILE *, const char *=nullptr, char **papszOptions=nullptr) const |
| Dump geometry in well known text format to indicated output file. More... | |
| virtual char * | exportToGML (const char *const *papszOptions=nullptr) 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 |
| Returns a GEOSGeom object corresponding to the geometry. More... | |
| 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=nullptr) const CPL_WARN_UNUSED_RESULT |
| Return, possibly approximate, non-curve version of this geometry. More... | |
| virtual void | closeRings () |
| Force rings to be closed. More... | |
| virtual 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... | |
| OGRPoint * | toPoint () |
| Down-cast to OGRPoint*. More... | |
| const OGRPoint * | toPoint () const |
| Down-cast to OGRPoint*. More... | |
| OGRCurve * | toCurve () |
| Down-cast to OGRCurve*. More... | |
| const OGRCurve * | toCurve () const |
| Down-cast to OGRCurve*. More... | |
| OGRSimpleCurve * | toSimpleCurve () |
| Down-cast to OGRSimpleCurve*. More... | |
| const OGRSimpleCurve * | toSimpleCurve () const |
| Down-cast to OGRSimpleCurve*. More... | |
| OGRLineString * | toLineString () |
| Down-cast to OGRLineString*. More... | |
| const OGRLineString * | toLineString () const |
| Down-cast to OGRLineString*. More... | |
| OGRLinearRing * | toLinearRing () |
| Down-cast to OGRLinearRing*. More... | |
| const OGRLinearRing * | toLinearRing () const |
| Down-cast to OGRLinearRing*. More... | |
| OGRCircularString * | toCircularString () |
| Down-cast to OGRCircularString*. More... | |
| const OGRCircularString * | toCircularString () const |
| Down-cast to OGRCircularString*. More... | |
| OGRCompoundCurve * | toCompoundCurve () |
| Down-cast to OGRCompoundCurve*. More... | |
| const OGRCompoundCurve * | toCompoundCurve () const |
| Down-cast to OGRCompoundCurve*. More... | |
| OGRSurface * | toSurface () |
| Down-cast to OGRSurface*. More... | |
| const OGRSurface * | toSurface () const |
| Down-cast to OGRSurface*. More... | |
| OGRPolygon * | toPolygon () |
| Down-cast to OGRPolygon*. More... | |
| const OGRPolygon * | toPolygon () const |
| Down-cast to OGRPolygon*. More... | |
| OGRTriangle * | toTriangle () |
| Down-cast to OGRTriangle*. More... | |
| const OGRTriangle * | toTriangle () const |
| Down-cast to OGRTriangle*. More... | |
| OGRCurvePolygon * | toCurvePolygon () |
| Down-cast to OGRCurvePolygon*. More... | |
| const OGRCurvePolygon * | toCurvePolygon () const |
| Down-cast to OGRCurvePolygon*. More... | |
| OGRGeometryCollection * | toGeometryCollection () |
| Down-cast to OGRGeometryCollection*. More... | |
| const OGRGeometryCollection * | toGeometryCollection () const |
| Down-cast to OGRGeometryCollection*. More... | |
| OGRMultiPoint * | toMultiPoint () |
| Down-cast to OGRMultiPoint*. More... | |
| const OGRMultiPoint * | toMultiPoint () const |
| Down-cast to OGRMultiPoint*. More... | |
| OGRMultiLineString * | toMultiLineString () |
| Down-cast to OGRMultiLineString*. More... | |
| const OGRMultiLineString * | toMultiLineString () const |
| Down-cast to OGRMultiLineString*. More... | |
| OGRMultiPolygon * | toMultiPolygon () |
| Down-cast to OGRMultiPolygon*. More... | |
| const OGRMultiPolygon * | toMultiPolygon () const |
| Down-cast to OGRMultiPolygon*. More... | |
| OGRMultiCurve * | toMultiCurve () |
| Down-cast to OGRMultiCurve*. More... | |
| const OGRMultiCurve * | toMultiCurve () const |
| Down-cast to OGRMultiCurve*. More... | |
| OGRMultiSurface * | toMultiSurface () |
| Down-cast to OGRMultiSurface*. More... | |
| const OGRMultiSurface * | toMultiSurface () const |
| Down-cast to OGRMultiSurface*. More... | |
| OGRPolyhedralSurface * | toPolyhedralSurface () |
| Down-cast to OGRPolyhedralSurface*. More... | |
| const OGRPolyhedralSurface * | toPolyhedralSurface () const |
| Down-cast to OGRPolyhedralSurface*. More... | |
| OGRTriangulatedSurface * | toTriangulatedSurface () |
| Down-cast to OGRTriangulatedSurface*. More... | |
| const OGRTriangulatedSurface * | toTriangulatedSurface () const |
| Down-cast to OGRTriangulatedSurface*. More... | |
Static Protected Member Functions | |
| static OGRLinearRing * | CastToLinearRing (OGRLineString *poLS) |
| Cast to linear ring. More... | |
Additional Inherited Members | |
Public Types inherited from OGRSimpleCurve | |
| typedef OGRPoint | ChildType |
| Type of child elements. More... | |
Public Types inherited from OGRCurve | |
| typedef OGRPoint | ChildType |
| Type of child elements. More... | |
Static Public Member Functions inherited from OGRCurve | |
| 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 Public Member Functions inherited from OGRGeometry | |
| static GEOSContextHandle_t | createGEOSContext () |
| Create a new GEOS context. More... | |
| static void | freeGEOSContext (GEOSContextHandle_t hGEOSCtxt) |
| Destroy a GEOS context. More... | |
| static OGRGeometryH | ToHandle (OGRGeometry *poGeom) |
| Convert a OGRGeometry* to a OGRGeometryH. More... | |
| static OGRGeometry * | FromHandle (OGRGeometryH hGeom) |
| Convert a OGRGeometryH to a OGRGeometry*. More... | |
Protected Member Functions inherited from OGRSimpleCurve | |
| virtual double | get_LinearArea () const |
| Compute area of ring / closed linestring. More... | |
| OGRSimpleCurve () | |
| Constructor. | |
| OGRSimpleCurve (const OGRSimpleCurve &other) | |
| Copy constructor. More... | |
Protected Member Functions inherited from OGRCurve | |
| virtual int | ContainsPoint (const OGRPoint *p) const |
| Returns if a point is contained in a (closed) curve. More... | |
| virtual int | IntersectsPoint (const OGRPoint *p) const |
| Returns if a point intersects 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.
|
default |
Copy constructor.
Note: before GDAL 2.1, only the default implementation of the constructor existed, which could be unsafe to use.
|
inlineoverridevirtual |
|
inlineoverridevirtual |
|
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. |
|
overridevirtual |
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.
|
overridevirtual |
Get the area of the (closed) curve.
This method is designed to be used by OGRCurvePolygon::get_Area().
Implements OGRCurve.
|
overridevirtual |
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.
|
overridevirtual |
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.
|
overridevirtual |
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.
| 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.
1.8.13.