# Appendix - MapLibre Rust Documentation

# Appendix

## Goals

### Next Major Goals

- Improve buffer_pool eviction rules
- Use MPI: https://doc.rust-lang.org/book/ch16-02-message-passing.html
- Input-handling via events and functional pipelines
- Show old tiles until new tile is ready / Show mixed tiles, based on availability
- Use a simple style definition
  - type: background/fill/line
  - minzoom/maxzoom
  - source
  - source-layer
  - paint (fill-color)
- Map feeling:
  - Wrap world around in x direction
  - Limit panning in y direction
  - Nicer default map style

### Intermediate Goals

- Support multiple projections? PoC such that we are sure the renderer is acceptable

### Future Goals

- Very simple text rendering
- Cache tessellation results
  - We have three "caches": downloaded tiles, tessellated tiles, gpu tiles
- Handle missing tiles
- Support different tile raster addressing

## Future Ideas

- Use rust-gpu as shading language
- Focus on accessibility of maps: https://www.w3.org/WAI/RD/wiki/Accessible_Maps
- Display in AR: https://developer.apple.com/documentation/arkit/displaying_an_ar_experience_with_metal
- Use tracing framework: tracing

## Challenges:

- Accuracy of floating point numbers is very bad for big world view coordinates (Plot)
- Perils of World Space

### Create paths for tessellating streets

Streets can have unusual shaped like shown here in Munich. OSM does not offer such data and therefore just renders an ordinary street contour like shown here. Because the data is probably not available this is a very hard challenge.