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

#include <EnvelopeDistanceClusterFinder.h>

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

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

Protected Member Functions

const geom::EnvelopequeryEnvelope (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)
 

Detailed Description

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.

Member Function Documentation

◆ queryEnvelope()

const geom::Envelope& geos::operation::cluster::EnvelopeDistanceClusterFinder::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::EnvelopeDistanceClusterFinder::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::Envelope::distanceSquared(), and geos::geom::Geometry::getEnvelopeInternal().


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