# Vélo

### classification des tag

**Cat 1 — infra séparée physiquement**
- `highway=cycleway`
- `cycleway=track`
- `cycleway:left|right|both=track`
- `cycleway=separate`
- `cyclestreet=yes` (seul)
- `bicycle=designated`
- `cycleway:left|right|both=share_busway`
- `sidewalk:left|right|both=separate`

**Cat 1- — bande cyclable exclusive (peinture)**
- `cycleway=lane` + `cycleway:lane=exclusive`
- `cycleway:left=lane` + `cycleway:left:lane=exclusive`
- `cycleway:right=lane` + `cycleway:right:lane=exclusive`
- `cycleway:both=lane` + `cycleway:both:lane=exclusive`
- `cycleway=opposite_lane`

**Cat 2 — route mineure (calme explicite)**
- `highway=residential` + `maxspeed=30` (± `oneway=yes`)
- `highway=residential` + `oneway=yes` + `oneway:bicycle=no` (DSC zone 30)
- `highway=living_street`
- `highway=unclassified` + `maxspeed≤30`
- `highway=service` + `access=destination` (même avec DSC ou bicycle=yes)

**Cat 2- — fond résidentiel (contexte de carte)**
- `highway=residential` (sans signal de calme)

**Cat 3 — partagé piéton (vélo ambigu)**
- `highway=path|footway|pedestrian` (seul)
- `area=yes` + `highway=pedestrian`
- `highway=path` + `segregated=yes`
- `highway=track` + `motor_vehicle=no`

**Cat 3++ — partagé piéton, vélo explicite**
- `highway=path` + `bicycle=designated` + `foot=designated`
- `highway=path|footway|pedestrian` + `bicycle=yes`
- `highway=track` + `motor_vehicle=no` + `bicycle=yes`
- `sidewalk:left|right|both:bicycle=yes`

**Cat 4 — partagé voiture, marquage léger**
- `cycleway=lane` (sans qualifieur ou + `advisory`)
- `cycleway:left|right|both=lane` (idem)
- `cycleway:both=lane` + `cycleway:both:lane=advisory`
- `cycleway=opposite` (DSC sans aménagement)
- `cyclestreet=yes` + `highway=residential` + `maxspeed=20`
- `bicycle=yes` + `highway=service` + `oneway=yes` + `oneway:bicycle=no`

**Cat 5 — praticable mais pénible**
- `bicycle=dismount`
- `highway=steps`
- `highway=path|footway|pedestrian` + `bicycle=no`

**Cat 6 — overlay balisage (surcouche au rendu)**
- `route=bicycle` (relation)
- `network=icn|ncn|rcn|lcn` (relation)

**Règles de priorité (plus spécifique gagne)**
1. `path|footway|pedestrian` + `bicycle=no` → **Cat 5** (overrides Cat 3)
2. `path` + `bicycle=designated` + `foot=designated` → **Cat 3++** (overrides Cat 1)
3. `cyclestreet` + `residential` + `maxspeed=20` → **Cat 4** (overrides Cat 1)
4. `residential` + `cycleway=track` ou `bicycle=designated` → **Cat 1** (infra dédiée gagne sur Cat 2-)
5. `residential` + `maxspeed=30` + `cycleway=lane` (sans `exclusive`) → **Cat 4** (lane gagne sur calme)
6. `service` + `access=destination` + DSC → **Cat 2** (calme gagne sur DSC)

**Exclu / mis de côté**
- `cycleway:right=shared_lane` (chevrons casse-gueule)
- `cycleway=opposite_share_busway` (rare)
- `cycleway=opposite_track` (deprecated)
- `amenity=bicycle_parking` et autres amenities vélo (à traiter plus tard)
- `bicycle=no` seul sur autres types de voies (Cat 0 « interdit » — non décidée)
- `proposed:route=bicycle`

## Filtrage

```
osmium tags-filter midi-pyrenees-260507.osm.pbf \
  w/highway=cycleway,path,footway,pedestrian,track,steps,residential,living_street,unclassified,service \
  w/cycleway \
  w/cycleway:left \
  w/cycleway:right \
  w/cycleway:both \
  w/bicycle=yes,designated,dismount \
  w/cyclestreet=yes \
  w/sidewalk:left=separate \
  w/sidewalk:right=separate \
  w/sidewalk:both=separate \
  w/sidewalk:left:bicycle=yes \
  w/sidewalk:right:bicycle=yes \
  w/sidewalk:both:bicycle=yes \
  r/route=bicycle \
  r/network=icn,ncn,rcn,lcn \
  -o velo.osm.pbf
  ```