campus_flutter
campus_flutter copied to clipboard
[Feature] Migrating from Google Maps to maplibre/flutter-maplibre-gl
Is your feature request related to a problem? Please describe.
Navigatum has invested a lot of effort into making our map look nice. Google has too, but their focus is on different things and it shows.
As such, vehecular infrastructure is always too overexagerated (compared how students actually move around) and the map looks kind of out of place due to not being TUM-styled.
Describe the solution you'd like
I would like to have the map we have in navigatum in the campus app. I think either of the following two is the good way to do this:
- https://pub.dev/packages/flutter_map with https://pub.dev/packages/flutter_map_maplibre
- https://github.com/maplibre/flutter-maplibre-gl
This would likely also make #295 simpler.
Describe alternatives you've considered
Alternatives:
- Rastering on NavigaTUMs' server and sending raster tiles to the client is not great as it does not have zoom-transtitons, rotating labels/symbols and many more
- Sticking with googles map works, but is ugly
Additional context
Here are a few screenshots from navigatum for motivation:
We can definitely do that! I'm not sure about the "good first issue" though as it requires some work and knowledge about Flutter to implement properly.
Could you provide us with the style url NavigaTUM uses?
The reason why I think that his is https://github.com/TUM-Dev/campus_flutter/labels/good%20first%20issue is that it is kind of an isolated component. Plus it is an impactfull one. A 1:1 translation of features from google to maplibre should be fairly doable, at least it does not look advanced from the docs.
Here is the style: https://nav.tum.de/tiles/style/navigatum-basemap
I agree that it's a good first issue. I got it into a functional state in 2 afternoons. I probably shouldn't submit a pull request until it is a full replacement and not so janky. Just thought I'd say something in case someone was working in parallel, although nobody is assigned to this currently.
Feel free to submit a draft pr if you want early feedback, even if not fully done ^^
And thanks for working on this issue ❤️