OSM et maps.ppsfleet.navy

Vélo

etapes

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
  
osmium export velo.osm.pbf -c velo.json -f geojsonseq -o velo.geojsonseq

cat velo.geojsonseq | python3 classify.py > velo-classify.geojsonseq
~/bin/tippecanoe -z14 -Z8 -l velo -o velo.mbtiles velo-classify.geojsonseq
~/bin/pmtiles convert velo.mbtiles velo.pmtiles

classification des tag

Cat 1 — infra séparée physiquement

Cat 1- — bande cyclable exclusive (peinture)

Cat 2 — route mineure (calme explicite)

Cat 2- — fond résidentiel (contexte de carte)

Cat 3 — partagé piéton (vélo ambigu)

Cat 3++ — partagé piéton, vélo explicite

Cat 4 — partagé voiture, marquage léger

Cat 5 — praticable mais pénible

Cat 6 — overlay balisage (surcouche au rendu)

Règles de priorité (plus spécifique gagne)

  1. path|footway|pedestrian + bicycle=noCat 5 (overrides Cat 3)
  2. path + bicycle=designated + foot=designatedCat 3++ (overrides Cat 1)
  3. cyclestreet + residential + maxspeed=20Cat 4 (overrides Cat 1)
  4. residential + cycleway=track ou bicycle=designatedCat 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é

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

Poi

Generation

# 1. Télécharger l'extrait OSM France
wget https://download.geofabrik.de/europe/france-latest.osm.pbf

# 2. Filtrer les POI
osmium tags-filter france-latest.osm.pbf \
  n/amenity n/shop n/tourism n/leisure n/healthcare n/office \
  -o france-pois.osm.pbf

# 3. Exporter en GeoJSONL (tags aplatis proprement)
osmium export france-pois.osm.pbf -f geojsonseq -o france-pois.geojsonl

# 4. Générer le PMTiles
tippecanoe -o france-pois.pmtiles -l poi -z17 -Z12 \
  --no-feature-limit --no-tile-size-limit \
  france-pois.geojsonl

Basemap

Génération

# Générer les tuiles France en schéma OpenMapTiles
java -Xmx4g -jar planetiler.jar --download --area=france --output=france-basemap.pmtiles