From d9d7ca0dd50f2b8b0ded7832eb6124960c87abec Mon Sep 17 00:00:00 2001 From: Joel Lappalainen Date: Mon, 22 May 2023 22:15:13 +0300 Subject: [PATCH] Remove walk leg in a stay seated transfer --- .../algorithm/mapping/RaptorPathToItineraryMapper.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/opentripplanner/routing/algorithm/mapping/RaptorPathToItineraryMapper.java b/src/main/java/org/opentripplanner/routing/algorithm/mapping/RaptorPathToItineraryMapper.java index 578e59034c3..ce26a6ac417 100644 --- a/src/main/java/org/opentripplanner/routing/algorithm/mapping/RaptorPathToItineraryMapper.java +++ b/src/main/java/org/opentripplanner/routing/algorithm/mapping/RaptorPathToItineraryMapper.java @@ -106,7 +106,7 @@ public Itinerary createItinerary(RaptorPath path) { legs.add(transitLeg); } // Map transfer leg - else if (pathLeg.isTransferLeg()) { + else if (pathLeg.isTransferLeg() && !staySeatedInTransferFrom(transitLeg)) { legs.addAll( mapTransferLeg( pathLeg.asTransferLeg(), @@ -321,4 +321,12 @@ private Place mapPlace(GenericLocation location) { private ZonedDateTime createZonedDateTime(int timeInSeconds) { return transitSearchTimeZero.plusSeconds(timeInSeconds); } + + private boolean staySeatedInTransferFrom(Leg transitLeg) { + return ( + transitLeg != null && + transitLeg.getTransferToNextLeg() != null && + transitLeg.getTransferToNextLeg().getTransferConstraint().isStaySeated() + ); + } }