GEOS 3.14.0dev
|
#include <EnvelopeDistanceClusterFinder.h>
Public Member Functions | |
EnvelopeDistanceClusterFinder (double d) | |
Public Member Functions inherited from geos::operation::cluster::AbstractClusterFinder | |
Clusters | cluster (const std::vector< const geom::Geometry * > &g) |
std::vector< std::unique_ptr< geom::Geometry > > | clusterToVector (std::unique_ptr< geom::Geometry > &&g) |
std::vector< std::unique_ptr< geom::Geometry > > | clusterToVector (const geom::Geometry &g) |
std::unique_ptr< geom::Geometry > | clusterToCollection (std::unique_ptr< geom::Geometry > &&g) |
std::unique_ptr< geom::Geometry > | clusterToCollection (const geom::Geometry &g) |
Protected Member Functions | |
const geom::Envelope & | queryEnvelope (const geom::Geometry *a) override |
bool | shouldJoin (const geom::Geometry *a, const geom::Geometry *b) override |
Protected Member Functions inherited from geos::operation::cluster::AbstractClusterFinder | |
virtual Clusters | process (const std::vector< const geom::Geometry * > &components, index::strtree::TemplateSTRtree< std::size_t > &index, UnionFind &uf) |
EnvelopeDistanceClusterFinder clusters geometries by the distance between their envelopes. Any two geometries whose envelopes are within the specified distance will be included in the same cluster.
|
inlineoverrideprotectedvirtual |
Provide an query Envelope that can be used to find all geometries possibly in the same cluster as the input.
a | Geometry |
Implements geos::operation::cluster::AbstractClusterFinder.
References geos::geom::Envelope::expandBy(), and geos::geom::Geometry::getEnvelopeInternal().
|
inlineoverrideprotectedvirtual |
Determine whether two geometries should be considered in the same cluster.
a | Geometry |
b | Geometry |
true
if the clusters associated with a
and b
should be merged. Implements geos::operation::cluster::AbstractClusterFinder.
References geos::geom::Envelope::distanceSquared(), and geos::geom::Geometry::getEnvelopeInternal().