程云来 / 杭州
MapLibre · Clustering · Camera state

From a label to a map.

Find a point, expand a cluster and change perspective. Explore how one dataset connects a list and a map.

Points & perspective

Preparing the map…

30 points · Zoom 14.3 · Pitch 0°Local schematic streets & synthetic points · not real features

Select a point, then follow the map

Select P01 to move the map and open its details. Switch to 3D, then choose another point: the camera keeps its tilt while changing center and zoom. Fit all points to see clusters, then expand a cluster.

Labels and the list share one dataset

Snapshot + filter Visible points List / map

Search and group filters produce one result for both the list and GeoJSON source. Selection stores only a point ID. Both views use it for highlighting. If a snapshot or filter removes the selected point, its detail is cleared rather than showing stale state.

Clustering and perspective are separate

Clustering groups nearby points at a given zoom; counts reflect the filtered dataset. Clicking a cluster requests its expansion zoom before moving the camera. The 2D/3D switch changes pitch and bearing, not geographic coordinates. Reduced motion makes camera changes immediate.

Make the example self-contained

The default streets, buildings and points are locally generated schematic data in a coordinate range near Hangzhou. They do not represent real streets or facilities. The 3D buildings are illustrative volumes. The optional OpenStreetMap basemap falls back to the local schematic if unavailable, preserving point interactions.

Snapshots A and B exercise data updates, point removal and state cleanup. Sidebar values are synthetic scalars from 0 to 99 with no business meaning. This study focuses on map interaction, not a navigation or monitoring product.

MapLibre HTML clusters · Camera API · OpenStreetMap attribution