The "breadcrumbs" element is always present, on top of the page.
It shows you where you are on the lab.
It enables you to reach any page on the lab.
The happy path from planner-v1 to the two OTP 2 recipes, call next to call. Every parameter is in the breaking changes tables.
OTP 2 as it is: one call is one OTP 2 query. Pick it when you need a precise or asymmetric trip shape.
Walk and transit, the everyday call. Places and time go through unchanged (fromPlace, toPlace, date, time, datetime, arriveBy, locale). Drop mode altogether: no mode parameter means walk everywhere plus every transit mode. Two renames: numItineraries → numTripPatterns, wheelchair → wheelchairAccessible.
/api/routing/trip-planner/recipe/bmc-planner-v1?fromPlace=50.8467,4.3525&toPlace=50.8798,4.4006&mode=WALK,TRANSIT&numItineraries=5&wheelchair=true/api/routing/trip-planner/recipe/bmc-planner-v2-1?fromPlace=50.8467,4.3525&toPlace=50.8798,4.4006&numTripPatterns=5&wheelchairAccessible=trueAny other mode: split the bag. The street modes of mode go to the three slots (accessMode to the first stop, egressMode from the last one, directMode door to door, one value each), the transit modes go to transportModes, lowercase. accessMode and egressMode always go together; leave directMode out for transit only.
/api/routing/trip-planner/recipe/bmc-planner-v1?fromPlace=50.8467,4.3525&toPlace=50.8798,4.4006&mode=BICYCLE,RAIL/api/routing/trip-planner/recipe/bmc-planner-v2-1?fromPlace=50.8467,4.3525&toPlace=50.8798,4.4006&accessMode=bicycle&egressMode=bicycle&directMode=bicycle&transportModes=railTransfer tuning: rename, and mind the defaults. maxTransfers → maximumTransfers (default 2 → 12), minTransferTime → transferSlack (default 0 → 120 s), boardSlack / alightSlack → boardSlackDefault / alightSlackDefault. bannedAgencies, walkSpeed and the reluctances keep their name. A next page is no longer a new call with a later time: pass the pageCursor of the response.
/api/routing/trip-planner/recipe/bmc-planner-v1?fromPlace=50.8467,4.3525&toPlace=50.8798,4.4006&mode=WALK,BUS,TRAM&maxTransfers=2&minTransferTime=180&bannedAgencies=tec/api/routing/trip-planner/recipe/bmc-planner-v2-1?fromPlace=50.8467,4.3525&toPlace=50.8798,4.4006&accessMode=foot&egressMode=foot&directMode=foot&transportModes=bus,tram&maximumTransfers=2&transferSlack=180&bannedAgencies=tecThe shortest migration: a named intent instead of mode slots. The mode selection UX page shows which preset fits which screen.
One parameter instead of three. Same recipe, same parameters, but modePreset replaces the three slots. public-transit is the default, so the everyday call needs no mode parameter at all; transportModes still narrows the transit modes.
/api/routing/trip-planner/recipe/bmc-planner-v1?fromPlace=50.8467,4.3525&toPlace=50.8798,4.4006&mode=WALK,TRAM,SUBWAY/api/routing/trip-planner/recipe/bmc-planner-v2-1-preset?fromPlace=50.8467,4.3525&toPlace=50.8798,4.4006&modePreset=public-transit&transportModes=tram,metroSeveral shapes, still one call. Own bike, bike Park&Ride and rental bike are three OTP 2 queries. bike-multimodal runs them in one request: results merged, one pageCursor for the lot. Same idea for car-multimodal.
/api/routing/trip-planner/recipe/bmc-planner-v1?fromPlace=50.8467,4.3525&toPlace=50.8798,4.4006&mode=BICYCLE,BICYCLE_RENT,BICYCLE_PARK,TRANSIT/api/routing/trip-planner/recipe/bmc-planner-v2-1-preset?fromPlace=50.8467,4.3525&toPlace=50.8798,4.4006&modePreset=bike-multimodalThe car. car-only is the door to door drive of mode=CAR. Prefer car to also get the transit alternatives (two queries: OTP 2 would otherwise drop the transit itineraries slower than the drive), or best to let OTP 2 pick.
/api/routing/trip-planner/recipe/bmc-planner-v1?fromPlace=50.8467,4.3525&toPlace=50.8798,4.4006&mode=CAR/api/routing/trip-planner/recipe/bmc-planner-v2-1-preset?fromPlace=50.8467,4.3525&toPlace=50.8798,4.4006&modePreset=car-only