Versions 3.5.2, 3.6.0, 3.6.1 were released, and we started going into the pre-release mode for MapLibre GL JS v4. The most significant breaking change in version 4 will be the replacement of outdated JavaScript callbacks with Promises in several public APIs.
You can now start testing the version 4 pre-releases at https://github.com/maplibre/maplibre-gl-js/releases. Your feedback and bug reports are more than welcome!
Not just one, but actually two proofs of concept for a globe view were shared by two independent developers this month. See https://github.com/maplibre/maplibre/discussions/161.
We are excited to see where this will bring us!
Globe view proof of concept by Vivan Larrieu. Link: https://pheonor.github.io/globe-demo/.
The Metal project is now in its final stage. A big push was made this month to get the render tests to a 100% success rate again with the new Metal based renderer. Check out this PR for an overview of the changes that were needed. Interestingly, aside from a handful of exceptions, the team got the Metal renderer to conform to OpenGL renderer without adjusting the acceptable pixel difference threshold or generating a new set of expected images.
The target of at most 5% binary size increase will be hit after the shader tooling overhaul PR is merged.
Another current focus is performance. While frame times on iOS were comparable to the legacy renderer with a non-moving map, benchmarking with a moving map (doing a tour) revealed performance degradations especially on symbol-heavy maps (iOS results, Android benchmark). The plan is to investigate these findings and fix the found bottlenecks. Work is underway to run these benchmarks on CI to track progress and prevent regressions.
With regards to stability of the Metal rendering backend, no crashes have been reported on the pre-release issue. More conclusive results on stability require testing on a wide variety of devices and as a part of real applications. Such results are expected early next year, when big users will start an A/B rollout of the new renderer.
Re-enabling macOS support using the Metal renderer (native macOS, Qt, Node.js) will be one of the last topics to be addressed as part of the Metal project.
Tadej Novak has made a lot of progress with the MapLibre Native Qt repo. In the future, the Qt platform will live in this repository instead of the main repository.
Multi-sprites support for MapLibre Native is expected to land soon. More information about this feature can be found in the MapLibre Style Spec documentation.
Two design proposals were accepted this month:
Martin tile server has a new tool similar to tilelive-copy
and tippecanoe
to bulk-copy tiles from any supported source. The martin-cp
tool uses the same source configuration system/CLI parameters as Martin itself, but without starting up the whole tile server in order to generate them. The tool is available as a standalone binary with no external dependencies.
Use case: generate several areas of the map from PostgreSQL tables/functions or other sources, and even merge multiple tile layers together into a single .mbtiles tileset file.
In other news, mbtiles summary
tool can now print in-depth details about an mbtiles file such as per-zoom statistics.
See https://github.com/maplibre/martin/releases/tag/v0.11.0
State of the Map Europe was held the 10-12th of November, 2023 in Antwerp. Luke Seelenbinder and Bart Louwers represented the MapLibre team at the event and gave a talk to spread the word about MapLibre.
Jonas Vautherin presented a talk about Ramani Maps, a plugin for MapLibre Native that wraps the core Android library, allowing a declarative syntax with Jetpack Compose.
SotM EU speakers. From left to right: Bart Louwers, Luke Seelenbinder, Jonas Vautherin.
We thank the organizers of SotM EU for organizing a great event and for bringing the open data and open source geospatial communities together!
Some members of the MapLibre Community will participate in the Maptime Meetup at the TomTom office in Amsterdam on December 15th, 2023. Read more…