Jun 2, 2025
Welcome to the May edition of the MapLibre newsletter!
This month’s updates range from seamless Cloud Optimized GeoTIFF support in GL JS to fresh releases for Martin Tile Server and native SDKs, and the addition of a new team member.
A special thanks to Mierune for renewing their sponsorship for 2025! Now in its fourth consecutive year, their support has played a vital role in sustaining MapLibre’s growth and development.
We’ve also published our Q1 2025 Financial Report, continuing our commitment to transparency and open governance. Read on to catch up on updates from last month and a glimpse of what’s ahead.
Plugin layers will allow users to register custom layers with custom style spec extensions. The design proposal was merged this month, with the implementation PR nearing the finish line. Both are spearheaded by Malcolmn Toon working for HudHud who released their navigation app this month.
The first version will have some limitations. Since iOS is the main focus of HudHud right now, it is only available for iOS from the outset. In addition, the custom layers do not have access to sources i.e. the built-in machinery for loading data. You also need to interact with the low-level graphics API (e.g. Metal) directly, and cannot use Drawables which internal layers uses for (platform aspecific) rendering. Lastly, plugin layers cannot participate in things like label placement.
Refinements and further functionality can be added incrementally based on the needs of the community. Extendability is something that was often discussed the last few years, and it is great to see a functional and pragmatic implementation becoming reality. Malcolm shared a GLTF model loading plugin as an example of what a custom plugin layer could do.
GLTF model plugin, rendering the Arc de Triomphe in 3D. Satellite layer courtesy of MapTiler.
Action Journal for Debugging: Thanks to Adrian Cojocaru, a new action journal was merged this month. This is a persistent log of actions the library took, sort of like a black box in a plane, which should help with investigating crashes that are hard to reproduce. Check out the documentation for iOS or Android for more information.
Dynamic Texture Atlas for Glyphs: The library now uses a dynamic texture atlas for storing glyphs, thanks to Alex Cristici. This change has the potential to reduce memory usage, if you have some interesting real-world numbers to share, we would love to know.
Goodbye legacy renderer: Two years ago, the legacy OpenGL ES rendering architecture, was replaced with a modular one allowing multiple rendering backends. The code parts of the legacy renderer were stubbed out with #ifdef
s for a while, meaning it was still possible to make a build that used the legacy renderer. However, this old unused code was finally removed in April, with some more cleanup this month.
Releases this month:
Hillshade Rendering: MapLibre GL JS v5.5.0 was released this month, featuring support for multiple hillshade rendering methods. This will be a great addition for enhanced terrain visualisation. The release also includes several important bug fixes and performance refinements.
New Team Member: We are also thrilled about Marc Wilson joining our team as our new Graphics Engineer 🎉! Marc brings deep expertise in rendering and graphics, and we’re excited to see the impact he’ll have on MapLibre GL JS and beyond.
Cloud Optimized GeoTIFF(COG) support: A new COG protocol extension by @geomatico improves how raster data is loaded in MapLibre GL JS, with no server-side preprocessing required.
This maplibre-cog-protocol library allows:
Try it out:
Martin v0.17.0 was released in May, bringing several quality-of-life improvements, along with three new features:
ETag
headers and supports the If-None-Match
request header, enabling more efficient CDN-style caching. This potentially reduces bandwidth usage and improves performance, especially in low-connectivity environments.MapLibre for Compose Multiplatform has officially been onboarded as a hosted project, marking another step forward in expanding the MapLibre ecosystem.
MapLibre Compose is a Compose Multiplatform wrapper around the MapLibre SDKs for rendering interactive maps. You can use it to add maps to your Compose UIs across Android, iOS, Desktop, and Web.
The MapLibre team will be at State of the Map US this month in Boston. If you’re attending, we’d love to connect. Come say hi, and let’s talk maps!
🗓️ Dates: June 19-21, 2025
📍 Location: Boston, MA
We continue our regular community calls on the second Wednesday of each month, with an additional session on the last Wednesday to better accommodate Asia/Oceania time zones.
Upcoming Calls
🌏 MapLibre Eastern Call
Held on the last Wednesday of the month at an Asia/Oceania-friendly hour:
🔗 View meeting times in your local timezone.
All calls are open to everyone. Zoom links are shared in the MapLibre Slack. Not yet a member? Request an invite via the OpenStreetMap US Slack. We’d love to see you there!