Flutter app that uses TileServer GL and OSRM for loading maps and navigating.
TileServer and OSRM are both existing project.
The goal of this app is to make them usable together and conveniently via your preferred device (Web, Android, iOS).
Flutter is used for the interface, and its project base is created using Gemini. This file itself, starting from the next chapter onward, is initially created and maintained using AI.
The app follows the MVVM (Model-View-ViewModel) architectural pattern with Provider for state management.
- Map View: Core component based on
maplibre_glto display vector tiles from TileServer GL. - Destination Input: UI component to allow users to input or select their destination.
- Route Overlay: Draws the calculated route from OSRM on the map.
- Navigation Panel: Provides turn-by-turn instructions and navigation status.
- Map Rendering: Support for vector tiles.
- Routing: Route calculation using OSRM with driving profile.
- Navigation: Turn-by-turn guidance with voice instructions (TTS).
- User Location: Real-time tracking of user position.
Sensitive information such as server URLs are stored in config.json (ignored by git).
The project_base.json file contains the static configuration and feature flags for the application.
{
"tileserver_url": "https://your-tileserver.com/",
"osrm_url": "https://your-osrm-server.com/",
"route_example": "https://your-osrm-server.com/route/v1/..."
}- Ensure you have Flutter ^3.x installed.
- Create a
config.jsonfile in the root directory with the necessary server URLs. - Run
flutter pub getto install dependencies. - Run the app on your preferred platform (Android, iOS, or Web).