maplibre-rs: Cross-platform Map Rendering using Rust

Room: Workshops and Loop-Cinema - Room 103

Friday, 17:30
Duration: 20 minutes (plus Q&A)


slides


video on media.ccc.de


Back to schedule
  • Max Ammann (MapLibre)

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. Today, the idea of exploring your surroundings using digital maps has become 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 WebGPU.


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)