MapLibre Newsletter June 2023

Categories: newsletter
Authors: duje

MapLibre Newsletter - June 2023

Highlights

JawgMaps

We would like to thank JawgMaps for their trust. As you might have read in our previous announcement, JawgMaps has joined the MapLibre Sponsorship Program and supports us as a Silver Sponsor!

MapLibre Native

Getting Ready For The Mega Merge

As part of the effort to implement a Metal backend for iOS, first the renderer needed to be made modular. A team of graphics engineers has been working steadily on this for the last few months, and the PRs for this big refactor of the existing OpenGL ES rendering architecture will be landing soon.

These are the most significant architectural changes to MapLibre Native since the fork. Not only will they allow the creation of alternate rendering backends (including using Metal), the library will also be more extendible and ‘hackable’ in general. We are looking for external graphics engineers, in particular with OpenGL (ES) and C++ software design experience, to help review these changes. See the suggested PR process from Steve Gifford, project lead of the Metal project, on Slack and keep an eye out for the PRs that will start popping up near the end of this month.

Design Proposals

  • Android Annotations proposal Fynn Godau wrote this design proposal with the aim to revamp the Annotations API on Android. Leave your thoughts on the PR: #1255.
  • FFI Design Proposal. Joel Winarske proposes to add a C API to MapLibre Native to enable an ABI stable interface to the library. This would play well with code generation tools for performant Flutter and Rust bindings.

Contributions

  • Fynn Godau replaced over 10.000 references to mapbox for the Android platform (#1201).
  • Siarhei Fedartsou implemented and added the slice and index-of expressions to the Core and added them to the Android API. (#1113, #1133).
  • Hsieh Chin Fan Android contributed two getting started guides for Android. The code of these example guides has been added to the example app inside the repo and included by reference, which makes it possible to ensure they keep working.
  • Fynn Godau fixed 5 Android instrumentation tests (i.e. tests running on actual hardware). We only have 1 failing test with 616 passing. We expect Android CI to be green again soon.
  • After adding the render tests to the coverage report, we are now at 79% coverage.
  • Birk Skyum contributed various PRs.

MapLibre GL JS

Version 3

As with our best release yet of v3 you find the separate post here. Worth noting with v3.1 is that a WebGL1 fallback was added to accomodate users without WebGL2 support: #2653

Martin

Martin, a blazingly fast tile server that supports generating and serving vector tiles on the fly from large PostGIS databases, PMTiles, and MBTile files has released v0.8.7. What’s new?

Dynamic Sprite Support

Given a directory with SVG images, Martin will dynamically generate a sprite index and a PNG image, for both low and high resolution displays. Per MapLibre sprites API, the new feature supports:

/sprite/<sprite_id>.json: Metadata about the sprite file - all images from a directory /sprite/<sprite_id>.png: All images combined into a single PNG /sprite/<sprite_id>@2x.json: Same but for high DPI devices /sprite/<sprite_id>@2x.png

Copy MBTile Tool

The mbtiles tool lets users partially copy an mbtiles file, filtering to specific zooms, and convert de-duplicated to a flat mbtiles format from now on.

Bounties 💰

As with every newsletter, we would like to call attention to the fact that we have monetary awards available for developers wanting to push MapLibre forward in one of the Bounty Directions. For MapLibre Native in particular, we are looking for iOS developers with Objective-C experience to help modernize the iOS codebase.

Check out the Step-by-Step Bounties Guide and get in touch via GitHub or Slack (#maplibre-native).