Make a GEOSSTRtree that stores a pointer to a variable containing the array index of the input geoms.
Definition at line 80 of file lwgeom_geos_cluster.c.
81{
86
88 if (
tree.tree == NULL)
89 {
91 }
94
95 if (is_lwgeom)
96 {
97 uint32_t i;
100 {
101 tree.geom_ids[i] = i;
103 GEOSSTRtree_insert(
tree.tree,
tree.envelopes[i], &(
tree.geom_ids[i]));
104 }
105 }
106 else
107 {
108 uint32_t i;
109 tree.envelopes = NULL;
111 {
112 tree.geom_ids[i] = i;
113 GEOSSTRtree_insert(
tree.tree, geoms[i], &(
tree.geom_ids[i]));
114 }
115 }
116
118}
void * lwalloc(size_t size)
static const int STRTREE_NODE_CAPACITY
static GEOSGeometry * geos_envelope_surrogate(const LWGEOM *g)
GEOSGeometry ** envelopes
References STRTree::envelopes, geos_envelope_surrogate(), lwalloc(), STRTree::num_geoms, STRTREE_NODE_CAPACITY, and STRTree::tree.
Referenced by union_dbscan_general(), union_dbscan_minpoints_1(), and union_intersecting_pairs().