-
Notifications
You must be signed in to change notification settings - Fork 15.6k
Description
[SIP-130] Proposal for migrating from Mapbox to MapLibre
Motivation
With the Mapbox GL JS library becoming closed source and the existing map plugins available in Superset being based on the legacy data API, migrating to the MapLibre project (an open source Mapbox fork) should make the transition simpler while providing the opportunity to bring the map plugins into the fold of the new data framework.
Proposed Change
Create new map plugins using deck.gl (or perhaps kepler.gl?) and MapLibre GL JS (https://github.com/maplibre/maplibre-gl-js).
Although backporting code (that is not covered by the BSD 3-Clause license) from Mapbox GL JS to MapLibre GL JS is not permitted, the expectation is that the gap in functions/features required by Superset to implement MapLibre is not large (see API documentation: https://maplibre.org/maplibre-gl-js/docs/).
The new plugins would be implemented using TypeScript and the new data API framework.
Details on the specifics may have to be provided on a per plugin basis.
The MapLibre Style Specification (https://github.com/maplibre/maplibre-style-spec) may offer useful utilities for managing a MapLibre implementation.
Examples of what is possible with MapLibre GL JS are available here: https://maplibre.org/maplibre-gl-js/docs/examples/
New or Changed Public Interfaces
Plugins using Mapbox will need to be either modified, or (preferably) replaced. These will be discussed in subsequent SIPs.
Add new plugins/charts:
- MapLibre
- deckgl
Would deprecate:
- legacy-plugin-chart-map-box (https://github.com/apache/superset/tree/master/superset-frontend/plugins/legacy-plugin-chart-map-box)
- legacy-preset-chart-deckgl (https://github.com/apache/superset/tree/master/superset-frontend/plugins/legacy-preset-chart-deckgl)
New dependencies
MapLibre GL JS is licensed under the 3-Clause BSD license.
Migration Plan and Compatibility
It is unknown whether any database migrations are necessary.
However, by deprecating the Mapbox-based plugins, existing charts based on those would have to be re-implemented by users or preferably supported by a migration.
Rejected Alternatives
Various past discussions covered alternatives such as kepler.gl (https://github.com/keplergl/kepler.gl), Leaflet (https://github.com/Leaflet/Leaflet), and a deck.gl + Leaflet implementation (https://github.com/zakjan/deck.gl-leaflet).
Although not all of these were firmly rejected, MapLibre potentially offers a less cumbersome migration.
Metadata
Metadata
Labels
Type
Projects
Status