MCH2022

World in Vectors - Cross-platform Map Rendering using Rust
2022-07-24, 10:00–10:30, Clairvoyance 🔮

Digital maps are ubiquitous tools in our everyday life. In the early 90s, the idea of browsing the world digitally and visiting any place was groundbreaking. The first solution to this problem is known as "TerraVision", which was breathtaking at that time. Today, the idea of exploring your surroundings using digital maps has become pretty normal.

But how do these maps work? In this talk, I want to provide an overview of the foundations of digital mapping solutions. Differences between maps which use vector data and rasterized satellite imaginary will be outlined. Furthermore, a new and open-source map renderer called maplibre-rs will be presented, which is created using Rust and modern web technologies like WebWorkers and WebAssembly. Lastly, I want to show differences between commercial solutions and free and open-source ones.

A lot of mobile and web applications depend on customizing and displaying maps. There are not many cross-platform solutions available. Some only work in the web. Some only work on mobile devices.
Furthermore, there are only a few truly free and open-source mapping stacks available.
I want to highlight challenges and differences between different commercial and open-source approaches. By doing this, we will also discover state-of-the-art limits in accuracy and quality of maps.


Last year I had a lot of spare time and decided to kick-start a project which combines different areas of interest: Rust, 3D rendering, Geo data
This project was adopted recently by the MapLibre project and is now known as maplibre-rs.

The maplibre-rs library is a proof of concept which showed me the complexity of mapping solutions. It takes a lot of steps until edits from OpenStreetMap contributors are finally rendered in consumer applications. With this task I want to take listeners on a journey from drawing changes in the OpenStreetMap editor all the way until vectors are uploaded to from memory to GPUs.

Like outlined in the abstract, I want to cover multiple topics:

  • Foundations of digital maps (How to determine which data should be loaded? What are vector and raster tiles?)
  • Show the technology stack which allows us to design and develop a cross-platform map renderer (Web, Mobile, Desktop)
  • Show the limits of current open-source solutions. I want to highlight why it is difficult to reach the rendering quality of Google Maps for example.

Lastly, I want to provide a software developer perspective. Why is every developer using either Google Maps or Apple Maps today? What does it take to operate a mobile app which is built only on open-source frontend and backend infrastructure?

I’m Max and I’m a software engineer and aspiring security researcher. I enjoy writing open-source software. I regularly contribute to various open-source projects. I’m also a passionate photographer.

I work for a non-profit which builds free and open-source software for governments in Germany.

https://www.linkedin.com/in/maximilian-ammann/