Cas limite à la frontière hexagonale -> faut appeler transitous
publié le , mis à jourDécrivez votre problème, votre suggestion
Hello, Je suis à nouveau confronté à un problème de routing; cette fois-ci j'ai comparé avec transitous.org (j'apprends!).
Pour comparaison, les deux URLs ci-dessous utilisent exactement les mêmes coordonnées et le même horodatage (note: il me semble que l'encodage de l'heure est faux, par exemple: time=2026-09-30T12%3A11Z00.000Z):
- Cartes / MOTIS2: https://serveur2.cartes.app/motis2/api/v2/plan?timetableView=true&fromPlace=47.5583059,7.5559697&directModes=WALK&maxDirectTime=36000&toPlace=47.5616622,7.586051&time=2026-09-30T12:11:00.000Z&preTransitModes=WALK&PedestrianProfile=FOOT&maxPreTransitTime=900&postTransitModes=WALK&maxPostTransitTime=900
- Transitous (config par défaut): https://api.transitous.org/api/v6/plan?time=2026-09-30T12:11:00.000Z&fromPlace=47.5583059,7.5559697&toPlace=47.5616622,7.586051&withFares=true&numLegAlternatives=3&joinInterlinedLegs=false&noCompulsoryReservation=false&maxMatchingDistance=250
Avec le même point de départ, le même point d'arrivée et la même heure, Transitous retourne plusieurs itinéraires en transport public, alors que MOTIS2 ne retourne qu'un trajet piéton.
Dans la réponse MOTIS2, les compteurs de debug indiquent:
n_start_offsets = 3
n_dest_offsets = 0
n_earliest_trip_calls = 0
itineraries = []
Cela semble montrer que le moteur ne parvient pas à générer les offsets de destination nécessaires au calcul des itinéraires de transport public. Concernant le message "Pas de transport trouvé qui soit plus rapide que 30 min directement à vélo", même si personnellement je favorise les déplacements à vélo, ce trajet devait être effectué en transports en commun.
Système d'exploitation
No response
Navigateur
No response
laem
Attends, je ne pige pas. Notre instance Motis (ici sur serveur2, celle quon utilise en prod) n'a pas les données de TeC hors de France. Du coup, c'est normal qu'elle ne trouve rien non ?
Mais quand tu utilises cartes.app pour un trajet suisse, il utiliser l'instance Transitous, non ?
gregori
Je n'ai rien touché, juste regardé les appels dans le developer mode... Aucune idée de pourquoi il n'utilise pas Transitous dans mon cas!
laem
Ah, c'est parce que Bâle est à la frontière. Or notre test se fait avec https://codeberg.org/cartes/web/src/branch/master/components/transit/hexagoneMotisPerimeter.ts qui est forcément imprécis.
Donc c'est un cas limite. Rediriger vers Transitous en fonction de la distance à ce polygone me semble une solution simple pour gérer ces cas limites.
gregori
Bien vu! En effet le polygone empiète complètement sur Bâle:
@laem je suis sûr que t'es content d'avoir un testeur habitant juste à la frontière :-D