developmentseed / developmentseed/cng-sandbox

feat(frontend): automatic clustering and labeling for point datasets

Open
#219 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
3
Forks
0
Avg merge
2h 21m
Merged PRs (30d)
3

Description

## Problem

Users exploring an unfamiliar point dataset have no way to quickly grasp its structure — where the clusters are, what regions contain what.

## Proposal

Adopt the auto-clustering + labeling approach from [Geospatial Atlas](https://github.com/do-me/geospatial-atlas) (Embedding Atlas research: https://arxiv.org/abs/2504.07285). Clusters are computed client-side from the visible extent; labels pulled from a user-chosen text column.

## Scope

- Works on point layers with at least one text-typed column
- Cluster computation runs in a web worker (don't block render)
- Labels render as map annotations with collision avoidance
- Users pick which column supplies labels (UI control)

## Dependencies

Best built on top of #216 (WebGPU point layer) so cluster computation and rendering share the same data path.

## References

- https://arxiv.org/abs/2504.07285 — the clustering algorithm paper

Contributor guide

Open the contributing guide

Research direction

Start by reviewing dependency issue #216 and the Geospatial Atlas implementation, then read the linked Embedding Atlas paper to understand the proposed clustering approach. Map the visible-extent data flow, web worker boundary, point-layer label rendering, collision avoidance, and text-column selector. Done means point layers with a text column can be clustered and labeled without blocking rendering.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
data-visualization, frontend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.