feat(tours): bike tours in the planner, CyclOSM, and the planned cards' last points (BIK-01 to BIK-06, RTE-01, IO-01, LIB-02)

The tour type is a dropdown; a bike tour picks its profile, routes for it,
says when a point lies off every way, and shows what it runs on: surfaces,
kinds of way and, for a mountain bike, the trail grades, each pointed at on
the map. A type's own map (OpenHikingMap for a hike, CyclOSM for a bike tour)
is offered while a tour of that type is open, with an admin switch each.

From the planned cards: a hike avoids steep climbs, steps or ferries, nothing
else; a saved tour can be shared where the platform takes GPX files; and the
tours rail adds a tour from one menu: plan new, import GPX, or take one over
from another trip.
This commit is contained in:
Maurice
2026-10-19 21:33:49 +02:00
parent adcaca3c5f
commit 73237ffedb
85 changed files with 3728 additions and 647 deletions
+11
View File
@@ -40,6 +40,17 @@ export const OPENHIKINGMAP_TILE_ATTRIBUTION =
'&copy; <a href="https://wiki.openstreetmap.org/wiki/OpenHikingMap">OpenHikingMap</a> | &copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> | <a href="https://openmaps.fr/donate">❤️ Donation</a>'
export const OPENHIKINGMAP_TILE_MAXZOOM = 18
/**
* BIK-06: CyclOSM, the cycling base map the Tours planner offers a bike tour while the admin
* allows it. Served by OpenStreetMap France on three shards, free for moderate use with a
* Referer under its usage policy; loaded only as viewed, like OpenHikingMap. Checked on
* 19.10.2026: zoom 0 to 20, CORS open, a day's Cache-Control.
*/
export const CYCLOSM_TILE_URL = 'https://{s}.tile-cyclosm.openstreetmap.fr/cyclosm/{z}/{x}/{y}.png'
export const CYCLOSM_TILE_ATTRIBUTION =
'&copy; <a href="https://www.cyclosm.org">CyclOSM</a> | &copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a>'
export const CYCLOSM_TILE_MAXZOOM = 20
/**
* The basemap for a browser that will not give MapLibre a WebGL context (#2288).
*