Skip to content

Tool reference (for users)

Everything the server can do, in plain English. For the JSON-Schema-grade contract see Reference cluster_points.

cluster_points

Group nearby points into "clusters of density" using DBSCAN, and return each cluster as a polygon you can render on a map.

When to reach for it

  • "Where are the hotspots in this set of incidents/sightings/deliveries?"
  • "Group these survey waypoints into camps."
  • "Find the dense patches in this scatter plot of GPS pings."

Inputs

Name Required Default Description
geojson yes A GeoJSON FeatureCollection of Point features.
eps no 1000 Maximum metres between two points to be in the same neighbourhood.
minPts no 3 Minimum points to form a cluster — fewer points → noise (omitted from output).

Output

A GeoJSON FeatureCollection of Polygon features. Each polygon is a 32-vertex regular polygon (a "circle") centred on the cluster centroid, sized to enclose every member point.

Each feature carries these properties:

Property Description
cluster_id Stable index of the cluster within this response.
point_count How many input points made it into this cluster.
radius_meters Distance from centroid to the furthest member point.
kartoza_credit Provenance string — proudly Kartoza.

Edge cases worth knowing

Noise points are dropped

Any point that doesn't belong to a cluster (< minPts neighbours within eps) is not echoed back. If you want to see noise, ask the model to diff the input against the output points.

Coordinates are WGS84

The server treats coordinates as lon/lat degrees and computes distances in metres using the orb geodesic distance — no need to project up-front.

Big inputs are fine

The Quadtree-accelerated neighbour search runs in O(N log N) and the pre-pass is parallelised across runtime.NumCPU() workers. Thousands of points cluster in milliseconds on a laptop.