Charting MapLibre’s Future with New Proposals

Written by Steve Gifford

September 12, 2023

Currently, we’re a geospatial consultancy and a weather product company. This post focuses on the geospatial side and, specifically, a few follow-on proposals for the Metal port of MapLibre Native that will change MapLibre’s future.

Example of MapLibre on Metal

We’ve done some good MapLibre work and we hope to do more (for money).

Quick Background

The Metal port is just starting to work, and we now understand the toolkit a lot better. For any given functionality, we have a sense of what parts of the toolkit it will touch and how hard it will be, on iOS, in particular.

We also still have experience with our toolkit, WhirlyGlobe, which does many things that MapLibre doesn’t. We borrowed the rendering architecture from WhirlyGlobe.

Are there other bits we can use? More to the point, what do you people want?

About the Proposals

We looked through the outstanding bounties, our notes on interesting conversations, and some things we knew were useful and came up with a few proposals. They start with:

  • The globe – A genuinely interactive 3D globe. Who doesn’t love a globe?
  • Flexible Map Coordinate Systems – Data sources are in all sorts of projections and displayed in anything else.
  • 3D Terrain Support – Starting with what’s implemented on the web and going from there.
  • General Data Loading – Make it easier to load new data formats on Mobile.

Those are probably all best done together. When ripping up the loading system, you might as well make it more flexible and take care of tiles with elevation in them simultaneously.

We’re considering a few other proposals, like 3D buildings and an optimized map construction pipeline, but let’s start with these. The individual proposals are on the bounties board, where we hope to spark some discussion.

Mobile vs Web

That’s a significant amount of work up there. We’re talking about iOS and Android, in that order, even though most of the work is in C++. But what about the web?

We figured we’d get things working on the mobile side and then consider how to do some of it in Javascript. Not all of it makes sense in JS; you might not take the same approach. We’ll submit a proposal when we feel more confident.