birkskyum opened a new pull request, #38035: URL: https://github.com/apache/superset/pull/38035
Closes #30307 ## Summary Implements [SIP-130](https://github.com/apache/superset/issues/28356) — migrate map visualizations from proprietary Mapbox GL to open-source MapLibre GL JS. Two new plugins: - **`preset-chart-deckgl`** — All 11 deck.gl chart types on deck.gl 9 + MapLibre (keys: `deck_*_maplibre`) - **`plugin-chart-maplibre`** — Scatter/cluster chart replacing legacy MapBox (key: `maplibre`) Legacy plugins unchanged — existing dashboards keep working with original keys (`deck_arc`, `deck_scatter`, etc.). They follow the new plugin style and will be the successors of the: - legacy-preset-chart-deckgl - legacy-plugin-chart-map-box ### Changes **Frontend** - New plugins use `react-map-gl` v8 + `MapboxOverlay`/`useControl` pattern (replaces v6 `StaticMap`) - Free map tiles by default (OpenFreeMap Liberty, Carto) — no API token needed - Map style configurable via Customize tab with freeForm URL support - Legacy deck.gl charts renamed to "(Legacy Mapbox)" in chart picker - Both presets registered side-by-side in `MainPreset.ts` **Backend** - `viz.py`: `MapLibreViz` + 11 `Deck*Maplibre` viz subclasses - `config.py`: CSP `connect-src` simplified to `https:` for tile provider flexibility ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF <img width="248" height="281" alt="Screenshot 2026-02-17 at 20 33 22" src="https://github.com/user-attachments/assets/faddd0fb-e382-4128-be2d-f1f993362e79" /> <img width="155" height="245" alt="Screenshot 2026-02-17 at 20 32 51" src="https://github.com/user-attachments/assets/c33f8a2e-de72-4725-89cb-9dfc5c979453" /> <img width="171" height="229" alt="Screenshot 2026-02-17 at 20 32 48" src="https://github.com/user-attachments/assets/cf6401fc-bc80-4b4d-a5ec-fc3e21862dcb" /> ### A new feature: #### Ability to runtime set the map style, by selecting from drop down or by inserting a url: <img width="1626" height="617" alt="Screenshot 2026-02-17 at 20 37 55" src="https://github.com/user-attachments/assets/64c12553-9a6c-44ea-af3f-d1ebb82a5e0e" /> <img width="1943" height="866" alt="Screenshot 2026-02-17 at 20 14 00" src="https://github.com/user-attachments/assets/02f5ec2a-1875-40cb-b074-1e553976f8e0" /> ## Test plan - [ ] Chart picker shows both legacy "(Legacy Mapbox)" and new MapLibre variants - [ ] New deck.gl charts render tiles, layers, tooltips, and autozoom - [ ] MapLibre scatter chart renders dots, clusters, and supports custom tile URLs - [ ] Legacy charts on existing dashboards still work - [ ] No CSP errors in browser console ### TESTING INSTRUCTIONS <!--- Required! What steps can be taken to manually verify the changes? --> ### ADDITIONAL INFORMATION <!--- Check any relevant boxes with "x" --> <!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue --> - [X] Has associated issue: #30307 - [ ] Required feature flags: - [ ] Changes UI - [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351)) - [ ] Migration is atomic, supports rollback & is backwards-compatible - [ ] Confirm DB migration upgrade and downgrade tested - [ ] Runtime estimates and downtime expectations provided - [X] Introduces new feature or API - Adds new chart types (new MapLibre and new DeckGL types, but keep all existing) - [ ] Removes existing feature or API -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
