Une adresse → ce que l’API chargeur sait. POST /v1/check
Ce que le check applique vraiment. tranché = gelé. hypothèse = en vigueur, pas encore gelé. hors V1 = pas calculé. Les nombres viennent de constants.ts.
H1 — Arrêt à l’adresse, pas un trajet
tranchéOn juge si le camion peut s’arrêter pour livrer à l’adresse BAN. Pas d’itinéraire, pas d’OSRM, pas de virage en chemin. Impasse, piéton, privé, largeur : on reste à l’adresse. L’impasse est un warning (sortie), pas un repli.
H2 — Confiance à trois états, pas un score
tranchéoui = rien ne s’y oppose. risque = doute. non = veto mesuré. Le plus mauvais critère gagne (non > risque > oui). Pas de 0–100.
H3 — Frontière non / risque
tranchéUne plaque légale bat le gabarit → non. Se garer impossible (BDTOPO < gabarit) → no. Circuler douteux ou se garer en bloquant → risque.
| non (veto) | risque (doute) |
|---|
| Interdiction d’accès (tous / PL) | Rue piétonne, piste, privé |
| Hauteur / poids / largeur légales sous le gabarit | Pente ≥ 16 % (revue) |
| Se garer : BDTOPO < gabarit (park = no) | ZFE, vignette véhicule inconnue |
| Circuler : largeur_safe < gabarit (H4) |
| Se garer : reste < 2 m (park = blocks) — H6 |
| Accès légal inconnu : OSM muet (TNL-255) |
H4 — Largeur_safe = circuler (voitures garées incertaines)
tranchéBDTOPO mesure tantôt avec, tantôt sans les voitures entre les trottoirs : ça ne sert qu’à juger si le camion peut circuler jusqu’à l’arrêt. On convertit en largeur_safe, puis on compare au gabarit nu (20 m³ 2.1 m, 19 t 2.5 m, semi 2.55 m). Constante unique : dérate 0.8 m. Double sens ville : on ne dérate pas — circuler = oui. Sens unique / campagne / sens inconnu : largeur_safe = BDTOPO − 0.8 m. Échec → risque (incertitude), pas non. Ville = dense, urbain, bourg.
| Double sens | Sens unique | Sens inconnu |
|---|
| Ville (dense, urbain, bourg) | circuler = oui (pas de dérate) | BDTOPO − 0.8 m | BDTOPO − 0.8 m |
| Campagne (périurbain, rural) | BDTOPO − 0.8 m | BDTOPO − 0.8 m | BDTOPO − 0.8 m |
H5 — Circuler et se garer sont deux valeurs
tranchéChaque camion a circulate (oui / risque / non) et park (safe / blocks / no). pass global = le plus mauvais de tous les critères. Circuler = largeur_safe (H4). Se garer = BDTOPO brute vs gabarit (H6). Des baies hors chaussée peuvent plus tard remonter un park = no vers safe ; tant qu’elles ne sont pas détectées, BDTOPO < gabarit = no.
| Circuler (circulate) | Se garer (park) |
|---|
| Question | Le camion passe-t-il ? | Peut-il s’arrêter sans tout bloquer ? |
| Nombre | largeur_safe (H4) | reste = BDTOPO − gabarit |
| BDTOPO absente | risque | blocks |
| BDTOPO < gabarit | risque (sauf double sens ville) | no |
H6 — Se garer : safe, risque de bloquer, ou no
tranchéReste = BDTOPO − gabarit. ≥ 2 m → park = safe (les autres passent). 0 < reste < 2 m → park = blocks (risque de bloquer la rue). reste ≤ 0 → park = no. Le seuil 2 m est une hypothèse chiffrée. Les baies hors chaussée (pas encore détectées) pourront plus tard remonter un no.
| Reste après arrêt | park |
|---|
| ≥ 2 m | safe |
| 0 < reste < 2 m | blocks — risque de bloquer la rue |
| reste ≤ 0 (BDTOPO < gabarit) | no |
| BDTOPO absente | blocks |
Silence si on ne sait rien
hypothèseSi BAN, BDTOPO et OSM sont muets : available = false. L’appelant ignore la fiche. Timeout serveur 800 ms. Jamais de 5xx métier. OSM muet seul : accès légal et type de voie = inconnu (pas « ouvert »), risque sur les 3 gabarits ; OSM qui répond sans voie = ouvert (un fait).
Trois gabarits, pas plus
hypothèse20 m³ : 2.1 m × 2.5 m, PTAC 3.5 t (pas PL). 19 t : 2.5 m × 3.5 m, PTAC 19 t. Semi : 2.55 m × 4 m, PTAC 44 t. Pas de 4e camion. Grue = scénario à part (pas encore).
Restrictions légales = non
tranchéHauteur max < hauteur camion + 0.3 m → non. Poids max < PTAC → non. Largeur max < largeur camion → non. Accès interdit tous → non. Interdit PL → non pour 19 t et semi, oui pour 20 m³.
Piéton, piste, privé : on reste à l’adresse
hypothèseRue piétonne, track/path, voie privée → risque. On ne déplace pas le stop (H1). Le marchand voit le doute sur cette adresse.
Cul-de-sac : warning, on reste à l’adresse
tranchéImpasse ou boucle seulement si le bout est intérieur au graphe (fetch 120 m, élargi une fois à 320 m). Bout au bord du fetch → inconnu, pas une impasse. Impasse prouvée → warning « le camion risque de ne pas pouvoir sortir ». On n’en fait pas un repli : pas de nextBest, pas de pénalité pass. Portage : hors verdict Phase 0 (nextBest désactivé).
ZFE sans vignette véhicule
hypothèseHors zone → pas de pénalité. Dans une ZFE, le véhicule n’est pas connu → risque sur les 3 gabarits. On ne déplace pas le camion (une autre rue est dans la même zone).
H-pente — Hayon et tire-palette
tranchéSeuils ADR-042 (engine). Pente < 8 % → hayon ok. ≥ 8 % → hayon nok : trop dangereux pour le tire-palette (le camion peut quand même s’arrêter). ≥ 16 % → risque sur les 3 gabarits (revue), jamais un non. Pente inconnue → hayon unknown, pas de pénalité camion.
| Pente | Hayon | pass camion |
|---|
| < 8 % | ok | inchangé |
| 8–16 % | nok | inchangé |
| ≥ 16 % | nok | risque |
| inconnue | unknown | inchangé |
Stationnement : info, pas un verdict camion
hypothèseRue < 5.5 m → le camion barre la chaussée (autorisation obligatoire en dense/urbain, recommandée ailleurs). Info stationnement. Le verdict camion, lui, est park (H6). Double sens libre à partir de 8 m, sens unique à partir de 5.5 m.
Maison vs immeuble
hypothèseEmprise BDTOPO < 200 m² → maison, sinon immeuble. Inconnu si pas de bâti. Hors verdict camion.
Le stop par défaut est celui du 19 t
hypothèseLa carte « Adresse livrable » suit le 19 t à l’adresse BAN, y compris en impasse. Les 3 gabarits ont chacun leur confiance ; on n’upsell pas le semi si le 19 t est oui.
Camion-grue
hors V1Pas une 4e colonne. Scénario à part (stabilisateurs, aérien, pente). Pas encore de règle chiffrée.
Pas de D10 / Street View / OSRM
hors V1La largeur est celle que BDTOPO ou OSM déclare. Pas de mesure image, pas de virage, pas de ponts en chemin.