MapLibre Proposals Are Unlocking Geospatial Innovation

Written by Steve Gifford

October 27, 2023

We’re a weather product company with a sideline in geospatial consulting. This post lands firmly in the latter category. It’s about the MapLibre project. We’re successfully winding up our work upgrading MapLibre Native to Metal and looking for the next thing. There’s a budget and interest, so we embarked on a sprint of writing MapLibre proposals.

An Introduction to MapLibre Proposals

MapLibre is a community project with a board and sponsors. We took the existing proposals talked to a fair number of stakeholders and then came up with a list of 14.

Yeah, that was too many. But once you start something like this you have to respect the process. We tried to include everything that had a compelling case and we were qualified to evaluate: Data formats yes, Routing no.

These are similar to what we’d produce for a client before contract was signed. Maybe a bit chatty, but specific enough to turn into milestones.

But that was a lot of words. Maybe too many words. Perhaps stakeholders haven’t actually ….read…. the proposals. We can’t say we blame them and we’re not mad. Or disappointed.

So what if we told you which ones we thought were worthwhile and in what order?

Globes and Map Coordinate Systems

The community seems to want a globe, and so do one. Also, do atmosphere and stars because they’re cool. Sometimes, things are popular for a reason.

Support more than one coordinate system. Web Mercator was fine a decade ago (actually no) but now you know better. Many government users won’t touch the toolkit without proper map projections and OpenLayers has this one on you.

Do these together. They involve different gestures, but touch a lot of the same internals. They’re not easy.

One Toolkit, Multiple Platforms

Having one set of source code you deploy on every platform sure is appealing. It’s more likely in 2023 than it was in 2013. But it’s not a sure thing.

If you really wanted to try… you might sneak up on it like this.

  • Start with the globe and map coordinate goodies above on Native
  • Cross compile to Web Assembly
  • Tie the new renderer into the existing one for MapLibre JS and use them side by side

That last sentence is doing a lot of work. Several weeks worth.

Dealing with WASM is a big ask for the MapLibre JS crowd, so give them something new and exciting in exchange.

3D Terrain and Cesium Integration

Next up, we’ve got 3D terrain support, which is already partly there on the web and Cesium’s 3D Tiles, which is not.

These touch the same parts of the system, with similar gestures and similar needs from the core. Do them together. Also, Cesium may pay for a good bit of the 3D Tile Support.

Performance and Expandability

The real time part of “Real Time Geospatial” is where MapLibre excels… in comparison to other open source toolkits. Keep doing that. But the expandability part is really lagging. Other toolkits are fairly voracious about data formats.

Two of the proposals address these directly, but we don’t see much appetite for them on their own. So just apply them to new work.

New data loading, like the 3D Tiles or elevation data above should include Threading Support. To do the globe mode or map coordinate systems you’ll need some of the Data Loading Architecture.

If those projects work out, consider reworking the vector tile loading.

OpenGL Optimization and Slower Connection Speeds seem like good candidates for sponsors. Worthy, but more end user issues.

Rendering SDKs and Operating Systems

Vulkan, WebGPU, DirectX, and even VisionOS would all have their proponents. You have more freedom to do these now, at least for Native. So keep the proposals on the back burner and see if sponsors want to pay for or implement them.

Style Sheet Support and Editing

Keeping parity between Web and Native is possibly something MapLibre should try to do on its own.

Whether or not you adopt a Style Sheet Editor is outside the scope of this document (but we say ‘yes’).

Static Map Rendering improvements are the kind of thing a sponsor ought to pay for if they want it. Doesn’t really get you more developers

Vector Map Pipeline

There’s not much appetite to fund this one at the moment, so consider it more of a roadmap proposal. One way of looking at how the various vector map styling and processing tools could fit together and how MapLibre could own a good chunk of them.

Shaping the Future of MapLibre

Start with some basic display stuff, like the globe and coordinate systems. Add in a sprinkling of core improvements as side requirements. Cross compile to WASM to try out the unified approach. See where you land, making sure to produce usable upgrades as you go.

For everything else, see what the sponsors might pay for.