GEOS 3.14.0dev
|
#include <DBSCANClusterFinder.h>
Public Member Functions | |
DBSCANClusterFinder (double eps, size_t minPoints) | |
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 |
Clusters | process (const std::vector< const geom::Geometry * > &components, index::strtree::TemplateSTRtree< std::size_t > &index, UnionFind &uf) override |
bool | shouldJoin (const geom::Geometry *, const geom::Geometry *) override |
DBSCANClusterFinder clusters geometries according to the DBSCAN algorithm.
|
overrideprotectedvirtual |
Given a vector and index of components,
components | a vector of Geometry components |
index | a spatial index storing pointers to those components |
uf | a UnionFind |
Reimplemented from geos::operation::cluster::AbstractClusterFinder.
|
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.