GEOS  3.14.0dev
Public Member Functions | Protected Member Functions | List of all members
geos::operation::cluster::GeometryDistanceClusterFinder Class Reference

#include <GeometryDistanceClusterFinder.h>

Inheritance diagram for geos::operation::cluster::GeometryDistanceClusterFinder:
geos::operation::cluster::AbstractClusterFinder

Public Member Functions

 GeometryDistanceClusterFinder (double distance)
 
- 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::GeometryclusterToCollection (std::unique_ptr< geom::Geometry > &&g)
 
std::unique_ptr< geom::GeometryclusterToCollection (const geom::Geometry &g)
 

Protected Member Functions

bool shouldJoin (const geom::Geometry *a, const geom::Geometry *b) override
 
const geom::EnvelopequeryEnvelope (const geom::Geometry *a) 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)
 

Detailed Description

GeometryDistanceClusterFinder clusters geometries according to the distance between them. Any two geometries that are within the specified threshold distance will be included in the same cluster.

Member Function Documentation

◆ queryEnvelope()

const geom::Envelope& geos::operation::cluster::GeometryDistanceClusterFinder::queryEnvelope ( const geom::Geometry a)
inlineoverrideprotectedvirtual

Provide an query Envelope that can be used to find all geometries possibly in the same cluster as the input.

Parameters
aGeometry
Returns
an Envelope suitable for querying

Implements geos::operation::cluster::AbstractClusterFinder.

References geos::geom::Envelope::expandBy(), and geos::geom::Geometry::getEnvelopeInternal().

◆ shouldJoin()

bool geos::operation::cluster::GeometryDistanceClusterFinder::shouldJoin ( const geom::Geometry a,
const geom::Geometry b 
)
inlineoverrideprotectedvirtual

Determine whether two geometries should be considered in the same cluster.

Parameters
aGeometry
bGeometry
Returns
true if the clusters associated with a and b should be merged.

Implements geos::operation::cluster::AbstractClusterFinder.

References geos::geom::prep::PreparedGeometryFactory::prepare().


The documentation for this class was generated from the following file: