/// Map and routing endpoints. /// /// Everything here is open source and keyless: /// /// * **Tiles** — OpenFreeMap (), OpenStreetMap data /// built with Planetiler and served as MapLibre vector tiles. No API key, no /// registration, no request limits, MIT licensed. MapLibre adds the required /// attribution automatically. /// * **Routing** — OSRM (), the Open Source Routing /// Machine. Also keyless. /// /// Both are overridable at build time so production can point at self-hosted /// instances without a code change: /// /// flutter build apk \ /// --dart-define=OSRM_BASE_URL=https://osrm.internal.nearle.in \ /// --dart-define=MAP_STYLE_URL=https://tiles.internal.nearle.in/styles/liberty class MapConfig { const MapConfig._(); /// MapLibre style document. Passed straight to the map — no key to inject, /// so unlike a commercial provider there is nothing to patch or proxy. /// /// OpenFreeMap styles: `liberty` (detailed), `bright`, `positron` (muted). static const String styleUrl = String.fromEnvironment( 'MAP_STYLE_URL', defaultValue: 'https://tiles.openfreemap.org/styles/liberty', ); /// Base URL of an OSRM instance, without a trailing slash. /// /// The default is the FOSSGIS community server. It is free and needs no key, /// but it is donation-funded infrastructure with a fair-use policy — fine for /// development, NOT appropriate for a production delivery fleet. Point this /// at your own OSRM before shipping; see `deploy/osrm/README.md`. static const String osrmBaseUrl = String.fromEnvironment( 'OSRM_BASE_URL', defaultValue: 'https://routing.openstreetmap.de/routed-car', ); /// True when routing points somewhere other than the shared community server. static bool get usingOwnRoutingServer => !osrmBaseUrl.contains('routing.openstreetmap.de'); }