Google Maps has worked great and still works great. In the past we had discussions about wind-up display and needed to work around a lack of vector-based maps. Since vector-based Google Maps support we have a native wind-up implementation, only it cannot handle satellite view while rotated.
There are two issues with using the Google Maps API:
- Google logo: this may be an issue for some usage scenarios, such as for Olympic Summer Games when showing any branding is not an option, especially for non-sponsors (as reported, e.g., by @radek-masnica)
- need for an API key and usage limits with the free tier may make consumption for low-budget but high-visibility events a problem
As of this writing, we have already conducted a few steps towards a prototype that provides an alternative map implementation. The work has been massively supported by AI (in particular PiDev + GPT 5.6, as well as Claude Code + Opus 4.8) (thanks, @kohlermsap). It can be found on branch maplibre-runtime-loader and is based on the idea that we can provide a JavaScript adapter that makes the MapLibre API look and behave like the Google Maps API, thus fitting in nicely with our GWT wrapper we use for accessing the Google Maps JavaScript API from our GWT client application.
The prototype on the maplibre-runtime-loader branch activates the MapLibre map when the RaceBoard.html entry point is used with the "maps=maplibre" URL query parameter. This currently needs to be added manually to each such RaceBoard.html page load, which already points to one piece of remaining work.
Remaining work, as far as we see it so far:
- make a single feature flag or maybe setting or user preference regarding map provider selection, so that map selection works without repeated manual user intervention or manual URL editing
- clarify impact of https://openfreemap.org/ attribution requirements regarding de-branded usage scenarios
- clarify open issues in the prototype's code (@kohlermsap), such as the new
FixesAndTails.synchronizeTailPath(...) method and its usage
Google Maps has worked great and still works great. In the past we had discussions about wind-up display and needed to work around a lack of vector-based maps. Since vector-based Google Maps support we have a native wind-up implementation, only it cannot handle satellite view while rotated.
There are two issues with using the Google Maps API:
As of this writing, we have already conducted a few steps towards a prototype that provides an alternative map implementation. The work has been massively supported by AI (in particular PiDev + GPT 5.6, as well as Claude Code + Opus 4.8) (thanks, @kohlermsap). It can be found on branch
maplibre-runtime-loaderand is based on the idea that we can provide a JavaScript adapter that makes the MapLibre API look and behave like the Google Maps API, thus fitting in nicely with our GWT wrapper we use for accessing the Google Maps JavaScript API from our GWT client application.The prototype on the
maplibre-runtime-loaderbranch activates the MapLibre map when the RaceBoard.html entry point is used with the "maps=maplibre" URL query parameter. This currently needs to be added manually to each such RaceBoard.html page load, which already points to one piece of remaining work.Remaining work, as far as we see it so far:
FixesAndTails.synchronizeTailPath(...)method and its usage