Mapbox has been extremely generous in releasing their rendering libraries under a permissive license. Creating a map renderer that matches the user experience of Google Maps is a FAANG-level effort, and Mapbox GL also encompasses:
* A single style specification format that works well for both base map rendering and data overlays
* Parity across native and web rendering
* Smooth SDF text rendering with decent i18n support
* A font to SDF renderer that is open source: https://github.com/mapbox/node-fontnik
* A tiled data format that is open source: https://github.com/mapbox/vector-tile-spec
I hope this licensing change can spur some competition among open source renderers. I’d recommend taking a look at:
* Tangram: https://github.com/tangrams/tangram - another WebGL based renderer with some key advantages over MapboxGL JS such as custom shaders and canvas text
* OpenLayers: https://openlayers.org has some vector and WebGL capabilities now as well
* Harp: https://www.harp.gl is another new WebGL option
I've been working recently with Tangram, so contact me (see user link) if you have questions or are interested in collaborating!
- GeoJSON-VT (fast GeoJSON processing) https://github.com/mapbox/geojson-vt
- Earcut (triangulating polygons) https://github.com/mapbox/earcut
- Supercluster (point clustering) https://github.com/mapbox/supercluster
- vt-pbf (converting GeoJSON tiles to VT) https://github.com/mapbox/vt-pbf
- vector-tile (decoding vector tiles) https://github.com/mapbox/vector-tile-js
- pbf (fast reading/writing of protobuf) https://github.com/mapbox/pbf
- TinySDF (generating SDF from local CJK fonts) https://github.com/mapbox/tiny-sdf
- Potpack (generating sprite layouts) https://github.com/mapbox/potpack
- grid-index (spatial index for collisions/querying) https://github.com/mapbox/grid-index
- Pixelmatch (image comparison in render tests) https://github.com/mapbox/pixelmatch
- Polylabel (fitting labels into polygons) https://github.com/mapbox/polylabel