clustering-system

Group geotagged photos into hierarchical map clusters across zoom levels.

132|42|Updated Aug 19, 2020
One-click install
npx skills add https://github.com/OpenLitterMap/openlittermap-web --skill clustering-system
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: clustering-system
Source: https://github.com/OpenLitterMap/openlittermap-web/tree/main/.ai/skills/clustering-system
Command: npx skills add https://github.com/OpenLitterMap/openlittermap-web --skill clustering-system

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

ClusteringSystem provides scalable, hierarchical clustering of geotagged photos for map visualizations, reducing rendering load and improving user experience by grouping nearby items into multi-level clusters.

Core Features & Use Cases

  • Hierarchical grid-based clustering across 9 zoom levels to balance detail and performance.
  • Global and per-team clustering with a unified storage model and strict verification thresholds.
  • Public GeoJSON API endpoints for map rendering and a team-scoped API for authenticated access.
  • Dirty-tile tracking and incremental updates via PhotoObserver and scheduled processes to keep clusters in sync with new data.

Quick Start

Start by rebuilding all clusters with the clustering:update command and then fetch the clusters from the public API to render the map.

Frequently Asked Questions about clustering-system

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I cluster geotagged photos for map visualization at multiple zoom levels?▼

Group geotagged photos into scalable map clusters using a hierarchical grid-based approach across 9 zoom levels. This reduces rendering load by grouping nearby items into multi-level clusters for simplified visualization.

How does dirty-tile tracking keep map clusters in sync with new data?▼

Dirty-tile tracking identifies modified grid tiles when new geotagged photos are added, allowing scheduled incremental updates to reprocess only affected clusters instead of rebuilding the entire map.

How do I get GeoJSON output from clustered map data for a specific team?▼

Fetch clustered data via team-scoped GeoJSON API endpoints for authenticated access, or use public endpoints for global map rendering. Both return clustered geographic features formatted for visualization.

Can I use this clustering system with a Laravel backend for large-scale maps?▼

Yes, the system integrates with Laravel backends to manage global and per-team clustering. It uses a unified storage model with tile-key management and strict verification thresholds to handle large-scale maps efficiently.

What is the best way to rebuild all map clusters after initial setup?▼

Execute the clustering:update command to perform a full rebuild of all clusters. This processes every geotagged photo and regenerates the complete hierarchical grid structure from scratch.

Why does my GeoJSON API return overlapping clusters on the map?▼

Overlapping clusters may occur if dirty tiles are not fully processed during incremental updates. Run a full rebuild command to regenerate the entire hierarchical grid and synchronize all cluster boundaries.