Deep Map panel knowledge: Leaflet lifecycle, NavSatFix/LocationFix/GeoJSON handling, tile layers, and the FilteredPointLayer pixel-deduplication grid that bounds rendering cost.
72%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.github/skills/panel-map/SKILL.mdA geographic visualization tool built on Leaflet for displaying GPS/NavSatFix data.
panels/Map/
├── MapPanel.tsx # main panel, Leaflet lifecycle, PanelExtensionContext
├── FilteredPointLayer.ts # performance-critical point deduplication
├── support.ts # message type detection (NavSatFix, GeoJSON, GPS)
└── config.ts # settings tree, tile layer configFeatureGroup for efficient bulk operationsPixel-deduplication using a sparse 2D grid.
GPS at 10 Hz for 1 hour = 36,000 points. Rendering each as a Leaflet marker is prohibitively slow.
Screen space is divided into a sparse grid of pixel-sized cells.
Each cell holds at most ONE marker.
Points overlapping in screen space → only one is rendered.
On zoom change → the grid is recalculated.`${Math.floor(pixelX)},${Math.floor(pixelY)}`O(visible pixels) markers instead of O(data points)| Message Type | Fields Used |
|---|---|
sensor_msgs/NavSatFix | latitude, longitude, altitude |
sensor_msgs/msg/NavSatFix | (ROS 2 variant) |
foxglove.LocationFix | latitude, longitude, altitude |
| GeoJSON | Feature / FeatureCollection geometry |
FilteredPointLayer is the primary optimization — bounds rendering costFeatureGroup enables bulk add/remove (single DOM update)packages/suite-base/src/panels/Map/MapPanel.tsxpackages/suite-base/src/panels/Map/FilteredPointLayer.tspackages/suite-base/src/panels/Map/support.tspackages/suite-base/src/panels/Map/config.tslichtblick-suite/lichtblick
9589f38
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.