GEOS
3.9.1dev
|
Basic implementation of Geometry, constructed and destructed by GeometryFactory. More...
#include <geos.h>
Classes | |
class | GeometryChangedFilter |
Public Types | |
using | ConstVect = std::vector< const Geometry * > |
A vector of const Geometry pointers. More... | |
using | NonConstVect = std::vector< Geometry * > |
A vector of non-const Geometry pointers. More... | |
using | Ptr = std::unique_ptr< Geometry > |
An unique_ptr of Geometry. More... | |
Public Member Functions | |
virtual std::unique_ptr< Geometry > | clone () const =0 |
Make a deep-copy of this Geometry. More... | |
virtual | ~Geometry () |
Destroy Geometry and all components. More... | |
const GeometryFactory * | getFactory () const |
Gets the factory which contains the context in which this geometry was created. More... | |
void | setUserData (void *newUserData) |
A simple scheme for applications to add their own custom data to a Geometry. An example use might be to add an object representing a Coordinate Reference System. More... | |
void * | getUserData () const |
Gets the user data object for this geometry, if any. More... | |
virtual int | getSRID () const |
Returns the ID of the Spatial Reference System used by the Geometry. More... | |
virtual void | setSRID (int newSRID) |
Sets the ID of the Spatial Reference System used by the Geometry. More... | |
const PrecisionModel * | getPrecisionModel () const |
Get the PrecisionModel used to create this Geometry. More... | |
virtual const Coordinate * | getCoordinate () const =0 |
Returns a vertex of this Geometry, or NULL if this is the empty geometry. More... | |
virtual std::unique_ptr< CoordinateSequence > | getCoordinates () const =0 |
Returns this Geometry vertices. Caller takes ownership of the returned object. More... | |
virtual std::size_t | getNumPoints () const =0 |
Returns the count of this Geometrys vertices. More... | |
virtual bool | isSimple () const |
Returns false if the Geometry not simple. More... | |
virtual std::string | getGeometryType () const =0 |
Return a string representation of this Geometry type. More... | |
virtual GeometryTypeId | getGeometryTypeId () const =0 |
Return an integer representation of this Geometry type. More... | |
virtual std::size_t | getNumGeometries () const |
virtual const Geometry * | getGeometryN (std::size_t) const |
Returns a pointer to the nth Geometry in this collection (or self if this is not a collection) More... | |
virtual bool | isValid () const |
Tests the validity of this Geometry . More... | |
virtual bool | isEmpty () const =0 |
Returns whether or not the set of points in this Geometry is empty. More... | |
virtual bool | isRectangle () const |
Polygon overrides to check for actual rectangle. More... | |
virtual Dimension::DimensionType | getDimension () const =0 |
Returns the dimension of this Geometry (0=point, 1=line, 2=surface) More... | |
virtual bool | isDimensionStrict (Dimension::DimensionType d) const |
Checks whether this Geometry consists only of components having dimension d. More... | |
bool | isPuntal () const |
bool | isLineal () const |
bool | isPolygonal () const |
bool | isCollection () const |
virtual uint8_t | getCoordinateDimension () const =0 |
Returns the coordinate dimension of this Geometry (2=XY, 3=XYZ, 4=XYZM in future). More... | |
virtual std::unique_ptr< Geometry > | getBoundary () const =0 |
Returns the boundary, or an empty geometry of appropriate dimension if this Geometry is empty. More... | |
virtual int | getBoundaryDimension () const =0 |
Returns the dimension of this Geometrys inherent boundary. More... | |
virtual std::unique_ptr< Geometry > | getEnvelope () const |
Returns this Geometrys bounding box. More... | |
virtual const Envelope * | getEnvelopeInternal () const |
Returns the minimum and maximum x and y values in this Geometry, or a null Envelope if this Geometry is empty. More... | |
virtual bool | disjoint (const Geometry *other) const |
virtual bool | touches (const Geometry *other) const |
Returns true if the DE-9IM intersection matrix for the two Geometrys is FT*******, F**T***** or F***T****. More... | |
virtual bool | intersects (const Geometry *g) const |
Returns true if disjoint returns false. More... | |
virtual bool | crosses (const Geometry *g) const |
virtual bool | within (const Geometry *g) const |
Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**F***. More... | |
virtual bool | contains (const Geometry *g) const |
Returns true if other.within(this) returns true. More... | |
virtual bool | overlaps (const Geometry *g) const |
Returns true if the DE-9IM intersection matrix for the two Geometrys is T*T***T** (for two points or two surfaces) 1*T***T** (for two curves). More... | |
bool | relate (const Geometry *g, const std::string &intersectionPattern) const |
Returns true if the elements in the DE-9IM intersection matrix for the two Geometrys match the elements in intersectionPattern. More... | |
bool | relate (const Geometry &g, const std::string &intersectionPattern) const |
std::unique_ptr< IntersectionMatrix > | relate (const Geometry *g) const |
Returns the DE-9IM intersection matrix for the two Geometrys. More... | |
std::unique_ptr< IntersectionMatrix > | relate (const Geometry &g) const |
virtual bool | equals (const Geometry *g) const |
Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**FFF*. More... | |
bool | covers (const Geometry *g) const |
Returns true if this geometry covers the specified geometry. More... | |
bool | coveredBy (const Geometry *g) const |
Tests whether this geometry is covered by the specified geometry. More... | |
virtual std::string | toString () const |
Returns the Well-known Text representation of this Geometry. More... | |
virtual std::string | toText () const |
std::unique_ptr< Geometry > | buffer (double distance) const |
std::unique_ptr< Geometry > | buffer (double distance, int quadrantSegments) const |
Returns a buffer region around this Geometry having the given width and with a specified number of segments used to approximate curves. More... | |
std::unique_ptr< Geometry > | buffer (double distance, int quadrantSegments, int endCapStyle) const |
Computes a buffer area around this geometry having the given width and with a specified accuracy of approximation for circular arcs, and using a specified end cap style. More... | |
virtual std::unique_ptr< Geometry > | convexHull () const |
Returns the smallest convex Polygon that contains all the points in the Geometry. More... | |
virtual std::unique_ptr< Geometry > | reverse () const =0 |
Computes a new geometry which has all component coordinate sequences in reverse order (opposite orientation) to this one. More... | |
std::unique_ptr< Geometry > | intersection (const Geometry *other) const |
Returns a Geometry representing the points shared by this Geometry and other. More... | |
std::unique_ptr< Geometry > | Union (const Geometry *other) const |
Returns a Geometry representing all the points in this Geometry and other. More... | |
Ptr | Union () const |
Computes the union of all the elements of this geometry. Heterogeneous GeometryCollections are fully supported. More... | |
std::unique_ptr< Geometry > | difference (const Geometry *other) const |
Returns a Geometry representing the points making up this Geometry that do not make up other. More... | |
std::unique_ptr< Geometry > | symDifference (const Geometry *other) const |
Returns a set combining the points in this Geometry not in other, and the points in other not in this Geometry. More... | |
virtual bool | equalsExact (const Geometry *other, double tolerance=0) const =0 |
Returns true iff the two Geometrys are of the same type and their vertices corresponding by index are equal up to a specified tolerance. More... | |
virtual void | apply_rw (const CoordinateFilter *filter)=0 |
virtual void | apply_ro (CoordinateFilter *filter) const =0 |
virtual void | apply_rw (GeometryFilter *filter) |
virtual void | apply_ro (GeometryFilter *filter) const |
virtual void | apply_rw (GeometryComponentFilter *filter) |
virtual void | apply_ro (GeometryComponentFilter *filter) const |
virtual void | apply_rw (CoordinateSequenceFilter &filter)=0 |
virtual void | apply_ro (CoordinateSequenceFilter &filter) const =0 |
template<class T > | |
void | applyComponentFilter (T &f) const |
Apply a filter to each component of this geometry. The filter is expected to provide a .filter(const Geometry*) method. More... | |
virtual void | normalize ()=0 |
virtual int | compareTo (const Geometry *geom) const |
Comparator for sorting geometry. More... | |
virtual double | distance (const Geometry *g) const |
Returns the minimum distance between this Geometry and the Geometry g. More... | |
virtual double | getArea () const |
Returns the area of this Geometry. More... | |
virtual double | getLength () const |
Returns the length of this Geometry. More... | |
virtual bool | isWithinDistance (const Geometry *geom, double cDistance) const |
Tests whether the distance from this Geometry to another is less than or equal to a specified value. More... | |
virtual std::unique_ptr< Point > | getCentroid () const |
Computes the centroid of this Geometry . More... | |
virtual bool | getCentroid (Coordinate &ret) const |
Computes the centroid of this Geometry as a Coordinate. More... | |
std::unique_ptr< Point > | getInteriorPoint () const |
Computes an interior point of this Geometry . More... | |
virtual void | geometryChanged () |
Notifies this Geometry that its Coordinates have been changed by an external party (using a CoordinateFilter, for example). More... | |
void | geometryChangedAction () |
Notifies this Geometry that its Coordinates have been changed by an external party. More... | |
Protected Member Functions | |
virtual bool | isEquivalentClass (const Geometry *other) const |
Returns whether the two Geometrys are equal, from the point of view of the equalsExact method. More... | |
virtual Envelope::Ptr | computeEnvelopeInternal () const =0 |
virtual int | compareToSameClass (const Geometry *geom) const =0 |
int | compare (std::vector< Coordinate > a, std::vector< Coordinate > b) const |
int | compare (std::vector< Geometry * > a, std::vector< Geometry * > b) const |
int | compare (const std::vector< std::unique_ptr< Geometry >> &a, const std::vector< std::unique_ptr< Geometry >> &b) const |
bool | equal (const Coordinate &a, const Coordinate &b, double tolerance) const |
Geometry (const Geometry &geom) | |
Geometry (const GeometryFactory *factory) | |
Construct a geometry with the given GeometryFactory. More... | |
virtual int | getSortIndex () const =0 |
Static Protected Member Functions | |
template<typename T > | |
static bool | hasNonEmptyElements (const std::vector< T > *geometries) |
Returns true if the array contains any non-empty Geometrys. More... | |
static bool | hasNullElements (const CoordinateSequence *list) |
Returns true if the CoordinateSequence contains any null elements. More... | |
template<typename T > | |
static bool | hasNullElements (const std::vector< T > *geometries) |
Returns true if the vector contains any null elements. More... | |
static void | checkNotGeometryCollection (const Geometry *g) |
template<typename T > | |
static std::vector< std::unique_ptr< Geometry > > | toGeometryArray (std::vector< std::unique_ptr< T >> &&v) |
Protected Attributes | |
std::unique_ptr< Envelope > | envelope |
The bounding box of this Geometry. More... | |
int | SRID |
Private Attributes | |
const GeometryFactory * | _factory |
void * | _userData |
Static Private Attributes | |
static GeometryChangedFilter | geometryChangedFilter |
Friends | |
class | GeometryFactory |
Basic implementation of Geometry, constructed and destructed by GeometryFactory.
clone
returns a deep copy of the object. Use GeometryFactory to construct.
Because it is not clear at this time what semantics for spatial analysis methods involving GeometryCollection
s would be useful, GeometryCollection
s are not supported as arguments to binary predicates (other than convexHull
) or the relate
method.
The spatial analysis methods will return the most specific class possible to represent the result. If the result is homogeneous, a Point
, LineString
, or Polygon
will be returned if the result contains a single element; otherwise, a MultiPoint
, MultiLineString
, or MultiPolygon
will be returned. If the result is heterogeneous a GeometryCollection
will be returned.
Because it is not clear at this time what semantics for set-theoretic methods involving GeometryCollection
s would be useful, GeometryCollections
are not supported as arguments to the set-theoretic methods.
The SFS states that the result of a set-theoretic method is the "point-set" result of the usual set-theoretic definition of the operation (SFS 3.2.21.1). However, there are sometimes many ways of representing a point set as a Geometry
.
The SFS does not specify an unambiguous representation of a given point set returned from a spatial analysis method. One goal of JTS is to make this specification precise and unambiguous. JTS will use a canonical form for Geometry
s returned from spatial analysis methods. The canonical form is a Geometry
which is simple and noded:
isSimple
. LineString
s. It means that all intersection points on LineString
s will be present as endpoints of LineString
s in the result. This definition implies that non-simple geometries which are arguments to spatial analysis methods must be subjected to a line-dissolve process to ensure that the results are simple.
The results computed by the set-theoretic methods may contain constructed points which are not present in the input Geometry. These new points arise from intersections between line segments in the edges of the input Geometry. In the general case it is not possible to represent constructed points exactly. This is due to the fact that the coordinates of an intersection point may contain twice as many bits of precision as the coordinates of the input line segments. In order to represent these constructed points explicitly, JTS must truncate them to fit the PrecisionModel.
Unfortunately, truncating coordinates moves them slightly. Line segments which would not be coincident in the exact result may become coincident in the truncated representation. This in turn leads to "topology collapses" – situations where a computed element has a lower dimension than it would in the exact result.
When JTS detects topology collapses during the computation of spatial analysis methods, it will throw an exception. If possible the exception will report the location of the collapse.
equals(Object) and hashCode are not overridden, so that when two topologically equal Geometries are added to HashMaps and HashSets, they remain distinct. This behaviour is desired in many cases.
Definition at line 188 of file Geometry.h.
using geos::geom::Geometry::ConstVect = std::vector<const Geometry*> |
A vector of const Geometry pointers.
Definition at line 195 of file Geometry.h.
using geos::geom::Geometry::NonConstVect = std::vector<Geometry*> |
A vector of non-const Geometry pointers.
Definition at line 198 of file Geometry.h.
using geos::geom::Geometry::Ptr = std::unique_ptr<Geometry> |
An unique_ptr of Geometry.
Definition at line 201 of file Geometry.h.
|
virtual |
Destroy Geometry and all components.
|
protected |
|
protected |
Construct a geometry with the given GeometryFactory.
Will keep a reference to the factory, so don't delete it until al Geometry objects referring to it are deleted.
factory |
|
pure virtual |
Implemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Polygon, and geos::geom::Point.
|
virtual |
Reimplemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Polygon, and geos::geom::Point.
|
virtual |
Reimplemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Polygon, and geos::geom::Point.
|
pure virtual |
Performs a read-only operation on the coordinates in this Geometry's CoordinateSequences.
filter | the filter to apply |
Implemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Point, and geos::geom::Polygon.
|
pure virtual |
Implemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Point, and geos::geom::Polygon.
|
virtual |
Reimplemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Point, and geos::geom::Polygon.
|
virtual |
Reimplemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Polygon, and geos::geom::Point.
|
pure virtual |
Performs an operation on the coordinates in this Geometry's CoordinateSequences. If the filter reports that a coordinate value has been changed, geometryChanged will be called automatically.
filter | the filter to apply |
Implemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Point, and geos::geom::Polygon.
|
inline |
Apply a filter to each component of this geometry. The filter is expected to provide a .filter(const Geometry*) method.
I intend similar templated methods to replace all the virtual apply_rw and apply_ro functions... –strk(2005-02-06);
Definition at line 768 of file Geometry.h.
Referenced by geos::operation::linemerge::LineSequencer::add().
std::unique_ptr<Geometry> geos::geom::Geometry::buffer | ( | double | distance | ) | const |
Returns a buffer region around this Geometry having the given width.
util::TopologyException | if a robustness error occurs |
std::unique_ptr<Geometry> geos::geom::Geometry::buffer | ( | double | distance, |
int | quadrantSegments | ||
) | const |
Returns a buffer region around this Geometry having the given width and with a specified number of segments used to approximate curves.
util::TopologyException | if a robustness error occurs |
std::unique_ptr<Geometry> geos::geom::Geometry::buffer | ( | double | distance, |
int | quadrantSegments, | ||
int | endCapStyle | ||
) | const |
Computes a buffer area around this geometry having the given width and with a specified accuracy of approximation for circular arcs, and using a specified end cap style.
Buffer area boundaries can contain circular arcs. To represent these arcs using linear geometry they must be approximated with line segments.
The quadrantSegments
argument allows controlling the accuracy of the approximation by specifying the number of line segments used to represent a quadrant of a circle
The end cap style specifies the buffer geometry that will be created at the ends of linestrings. The styles provided are:
distance | the width of the buffer (may be positive, negative or 0) |
quadrantSegments | the number of line segments used to represent a quadrant of a circle |
endCapStyle | the end cap style to use |
util::TopologyException | if a robustness error occurs |
|
staticprotected |
|
pure virtual |
Make a deep-copy of this Geometry.
Implemented in geos::geom::MultiPoint, geos::geom::MultiPolygon, geos::geom::LinearRing, geos::geom::LineString, geos::geom::MultiLineString, geos::geom::Point, geos::geom::Polygon, and geos::geom::GeometryCollection.
|
protected |
|
protected |
|
protected |
|
virtual |
Comparator for sorting geometry.
Referenced by geos::geom::LineStringLT::operator()().
|
protectedpure virtual |
Implemented in geos::geom::GeometryCollection, geos::geom::LineString, geos::geom::Point, and geos::geom::Polygon.
|
protectedpure virtual |
Implemented in geos::geom::GeometryCollection, geos::geom::LineString, geos::geom::Polygon, and geos::geom::Point.
|
virtual |
Returns true if other.within(this) returns true.
|
virtual |
Returns the smallest convex Polygon that contains all the points in the Geometry.
Reimplemented in geos::geom::Polygon.
|
inline |
Tests whether this geometry is covered by the specified geometry.
The coveredBy
predicate has the following equivalent definitions:
[T*F**F***]
or [*TF**F***]
or [**FT*F***]
or [**F*TF***]
g.covers(this)
(coveredBy
is the converse of covers
)If either geometry is empty, the value of this predicate is false
.
This predicate is similar to within, but is more inclusive (i.e. returns true
for more cases).
true
if this Geometry
is covered by g
Definition at line 581 of file Geometry.h.
References covers().
bool geos::geom::Geometry::covers | ( | const Geometry * | g | ) | const |
Returns true
if this geometry covers the specified geometry.
The covers
predicate has the following equivalent definitions:
T*****FF*
or *T****FF*
or ***T**FF*
or ****T*FF*
g.coveredBy(this)
(covers
is the inverse of coveredBy
)If either geometry is empty, the value of this predicate is false
.
This predicate is similar to contains, but is more inclusive (i.e. returns true
for more cases). In particular, unlike contains
it does not distinguish between points in the boundary and in the interior of geometries. For most situations, covers
should be used in preference to contains
. As an added benefit, covers
is more amenable to optimization, and hence should be more performant.
true
if this Geometry
covers g
Referenced by coveredBy().
|
virtual |
Tests whether this geometry crosses the specified geometry.
The crosses
predicate has the following equivalent definitions:
[T*T******]
(for P/L, P/A, and L/A situations)[T*****T**]
(for L/P, A/P, and A/L situations)[0********]
(for L/L situations) For any other combination of dimensions this predicate returns false
.The SFS defined this predicate only for P/L, P/A, L/L, and L/A situations. JTS extends the definition to apply to L/P, A/P and A/L situations as well, in order to make the relation symmetric.
true
if the two Geometry
s cross. Returns a Geometry representing the points making up this Geometry that do not make up other.
util::TopologyException | if a robustness error occurs |
util::IllegalArgumentException | if either input is a non-empty GeometryCollection |
|
virtual |
Tests whether this geometry is disjoint from the specified geometry.
The disjoint
predicate has the following equivalent definitions:
[FF*FF****]
! g.intersects(this)
(disjoint
is the inverse of intersects
)Geometry
s are disjoint
|
virtual |
|
protected |
|
virtual |
Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**FFF*.
|
pure virtual |
Returns true iff the two Geometrys are of the same type and their vertices corresponding by index are equal up to a specified tolerance.
Implemented in geos::geom::LineString, geos::geom::Point, geos::geom::GeometryCollection, geos::geom::Polygon, geos::geom::MultiPolygon, geos::geom::MultiPoint, and geos::geom::MultiLineString.
|
virtual |
Notifies this Geometry that its Coordinates have been changed by an external party (using a CoordinateFilter, for example).
void geos::geom::Geometry::geometryChangedAction | ( | ) |
Notifies this Geometry that its Coordinates have been changed by an external party.
|
virtual |
Returns the area of this Geometry.
Reimplemented in geos::geom::GeometryCollection, and geos::geom::Polygon.
|
pure virtual |
Returns the boundary, or an empty geometry of appropriate dimension if this Geometry
is empty.
(In the case of zero-dimensional geometries, an empty GeometryCollection is returned.) For a discussion of this function, see the OpenGIS Simple Features Specification. As stated in SFS Section 2.1.13.1, "the boundary of a Geometry is a set of Geometries of the next lower dimension."
Geometry
. Ownershipof the returned object transferred to caller. Implemented in geos::geom::GeometryCollection, geos::geom::Point, geos::geom::LineString, geos::geom::Polygon, geos::geom::MultiPolygon, geos::geom::MultiPoint, and geos::geom::MultiLineString.
|
pure virtual |
Returns the dimension of this Geometrys inherent boundary.
Implemented in geos::geom::GeometryCollection, geos::geom::Point, geos::geom::LineString, geos::geom::LinearRing, geos::geom::Polygon, geos::geom::MultiPolygon, geos::geom::MultiLineString, and geos::geom::MultiPoint.
|
virtual |
|
virtual |
Computes the centroid of this Geometry as a Coordinate.
Returns false if centroid cannot be computed (EMPTY geometry)
|
pure virtual |
Returns a vertex of this Geometry, or NULL if this is the empty geometry.
Implemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Polygon, and geos::geom::Point.
|
pure virtual |
Returns the coordinate dimension of this Geometry (2=XY, 3=XYZ, 4=XYZM in future).
Implemented in geos::geom::GeometryCollection, geos::geom::LineString, geos::geom::Point, and geos::geom::Polygon.
|
pure virtual |
Returns this Geometry vertices. Caller takes ownership of the returned object.
Implemented in geos::geom::GeometryCollection, geos::geom::Point, geos::geom::LineString, and geos::geom::Polygon.
|
pure virtual |
Returns the dimension of this Geometry (0=point, 1=line, 2=surface)
Implemented in geos::geom::GeometryCollection, geos::geom::Point, geos::geom::LineString, geos::geom::Polygon, geos::geom::MultiPolygon, geos::geom::MultiPoint, and geos::geom::MultiLineString.
|
virtual |
Returns this Geometrys bounding box.
|
virtual |
|
inline |
Gets the factory which contains the context in which this geometry was created.
Definition at line 218 of file Geometry.h.
Referenced by geos::operation::geounion::UnaryUnionOp::extract().
|
inlinevirtual |
Returns a pointer to the nth Geometry in this collection (or self if this is not a collection)
Reimplemented in geos::geom::GeometryCollection, geos::geom::MultiPolygon, geos::geom::MultiPoint, and geos::geom::MultiLineString.
Definition at line 318 of file Geometry.h.
|
pure virtual |
Return a string representation of this Geometry type.
Implemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Point, geos::geom::Polygon, geos::geom::LinearRing, geos::geom::MultiPolygon, geos::geom::MultiPoint, and geos::geom::MultiLineString.
|
pure virtual |
Return an integer representation of this Geometry type.
Implemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Point, geos::geom::Polygon, geos::geom::LinearRing, geos::geom::MultiPolygon, geos::geom::MultiPoint, and geos::geom::MultiLineString.
std::unique_ptr<Point> geos::geom::Geometry::getInteriorPoint | ( | ) | const |
|
virtual |
Returns the length of this Geometry.
Reimplemented in geos::geom::LineString, geos::geom::GeometryCollection, and geos::geom::Polygon.
|
inlinevirtual |
Returns the number of geometries in this collection (or 1 if this is not a collection)
Reimplemented in geos::geom::GeometryCollection.
Definition at line 310 of file Geometry.h.
|
pure virtual |
Returns the count of this Geometrys vertices.
Implemented in geos::geom::GeometryCollection, geos::geom::LineString, geos::geom::Point, and geos::geom::Polygon.
const PrecisionModel* geos::geom::Geometry::getPrecisionModel | ( | ) | const |
Get the PrecisionModel used to create this Geometry.
|
protectedpure virtual |
Implemented in geos::geom::GeometryCollection, geos::geom::LineString, geos::geom::Polygon, geos::geom::Point, geos::geom::MultiPoint, geos::geom::MultiLineString, geos::geom::MultiPolygon, and geos::geom::LinearRing.
Referenced by geos::geom::GeometryFactory::buildGeometry().
|
inlinevirtual |
Returns the ID of the Spatial Reference System used by the Geometry.
GEOS supports Spatial Reference System information in the simple way defined in the SFS. A Spatial Reference System ID (SRID) is present in each Geometry object. Geometry provides basic accessor operations for this field, but no others. The SRID is represented as an integer.
Definition at line 265 of file Geometry.h.
|
inline |
Gets the user data object for this geometry, if any.
null
if none set Definition at line 249 of file Geometry.h.
|
inlinestaticprotected |
Returns true if the array contains any non-empty Geometrys.
Definition at line 861 of file Geometry.h.
References isEmpty().
|
staticprotected |
Returns true if the CoordinateSequence contains any null elements.
|
inlinestaticprotected |
Returns true if the vector contains any null elements.
Definition at line 870 of file Geometry.h.
Returns a Geometry representing the points shared by this Geometry and other.
util::TopologyException | if a robustness error occurs |
util::IllegalArgumentException | if either input is a non-empty GeometryCollection |
|
virtual |
Returns true if disjoint returns false.
|
inline |
Definition at line 364 of file Geometry.h.
References geos::geom::GEOS_GEOMETRYCOLLECTION, geos::geom::GEOS_MULTILINESTRING, geos::geom::GEOS_MULTIPOINT, and geos::geom::GEOS_MULTIPOLYGON.
|
inlinevirtual |
Checks whether this Geometry consists only of components having dimension d.
Reimplemented in geos::geom::GeometryCollection, geos::geom::MultiPolygon, geos::geom::MultiPoint, and geos::geom::MultiLineString.
Definition at line 348 of file Geometry.h.
|
pure virtual |
Returns whether or not the set of points in this Geometry is empty.
Implemented in geos::geom::LineString, geos::geom::Polygon, geos::geom::GeometryCollection, and geos::geom::Point.
Referenced by hasNonEmptyElements().
|
protectedvirtual |
Returns whether the two Geometrys are equal, from the point of view of the equalsExact method.
|
inline |
Definition at line 356 of file Geometry.h.
References geos::geom::Dimension::L.
Referenced by geos::linearref::LocationIndexedLine::checkGeometryType().
|
inline |
Definition at line 360 of file Geometry.h.
References geos::geom::Dimension::A.
|
inline |
Definition at line 352 of file Geometry.h.
References geos::geom::Dimension::P.
|
inlinevirtual |
Polygon overrides to check for actual rectangle.
Reimplemented in geos::geom::Polygon.
Definition at line 339 of file Geometry.h.
|
virtual |
Returns false if the Geometry not simple.
Reimplemented in geos::geom::Point.
|
virtual |
|
virtual |
Tests whether the distance from this Geometry to another is less than or equal to a specified value.
geom | the Geometry to check the distance to |
cDistance | the distance value to compare |
true
if the geometries are less than distance
apart.
|
pure virtual |
Reorganizes this Geometry into normal form (or canonical form). Starting point of rings is lower left, collections are ordered by geometry type, etc.
Implemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Point, and geos::geom::Polygon.
|
virtual |
Returns true if the DE-9IM intersection matrix for the two Geometrys is T*T***T** (for two points or two surfaces) 1*T***T** (for two curves).
bool geos::geom::Geometry::relate | ( | const Geometry * | g, |
const std::string & | intersectionPattern | ||
) | const |
Returns true if the elements in the DE-9IM intersection matrix for the two Geometrys match the elements in intersectionPattern.
IntersectionPattern elements may be: 0 1 2 T ( = 0, 1 or 2) F ( = -1) * ( = -1, 0, 1 or 2).
For more information on the DE-9IM, see the OpenGIS Simple Features Specification.
util::IllegalArgumentException | if either arg is a collection |
|
inline |
Definition at line 490 of file Geometry.h.
std::unique_ptr<IntersectionMatrix> geos::geom::Geometry::relate | ( | const Geometry * | g | ) | const |
Returns the DE-9IM intersection matrix for the two Geometrys.
|
inline |
Definition at line 498 of file Geometry.h.
|
pure virtual |
Computes a new geometry which has all component coordinate sequences in reverse order (opposite orientation) to this one.
Implemented in geos::geom::LineString, geos::geom::GeometryCollection, geos::geom::Point, geos::geom::Polygon, geos::geom::LinearRing, geos::geom::MultiPoint, geos::geom::MultiLineString, and geos::geom::MultiPolygon.
|
inlinevirtual |
Sets the ID of the Spatial Reference System used by the Geometry.
Reimplemented in geos::geom::GeometryCollection.
Definition at line 274 of file Geometry.h.
|
inline |
A simple scheme for applications to add their own custom data to a Geometry. An example use might be to add an object representing a Coordinate Reference System.
Note that user data objects are not present in geometries created by construction methods.
newUserData | an object, the semantics for which are defined by the application using this Geometry |
Definition at line 237 of file Geometry.h.
Returns a set combining the points in this Geometry not in other, and the points in other not in this Geometry.
util::TopologyException | if a robustness error occurs |
util::IllegalArgumentException | if either input is a non-empty GeometryCollection |
|
inlinestaticprotected |
Definition at line 920 of file Geometry.h.
Referenced by geos::geom::GeometryFactory::createGeometryCollection().
|
virtual |
Returns the Well-known Text representation of this Geometry.
|
virtual |
|
virtual |
Returns true if the DE-9IM intersection matrix for the two Geometrys is FT*******, F**T***** or F***T****.
Returns a Geometry representing all the points in this Geometry and other.
util::TopologyException | if a robustness error occurs |
util::IllegalArgumentException | if either input is a non-empty GeometryCollection |
Ptr geos::geom::Geometry::Union | ( | ) | const |
Computes the union of all the elements of this geometry. Heterogeneous GeometryCollections are fully supported.
The result obeys the following contract:
|
virtual |
Returns true if the DE-9IM intersection matrix for the two Geometrys is T*F**F***.
|
friend |
Definition at line 192 of file Geometry.h.
|
private |
The GeometryFactory used to create this Geometry
Externally owned
Definition at line 947 of file Geometry.h.
|
private |
Definition at line 949 of file Geometry.h.
|
mutableprotected |
The bounding box of this Geometry.
Definition at line 857 of file Geometry.h.
|
staticprivate |
Definition at line 941 of file Geometry.h.
|
protected |
Definition at line 904 of file Geometry.h.