Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Itineraries with leg that ignore GeofencingZones restriction #6294

Open
dommy1985 opened this issue Dec 2, 2024 · 0 comments
Open

Itineraries with leg that ignore GeofencingZones restriction #6294

dommy1985 opened this issue Dec 2, 2024 · 0 comments

Comments

@dommy1985
Copy link

Plan and PlanConnection query get some itineraries that ignore geofencingZones restriction for rental vehicle.

Expected behavior

The legs inside itineraries should be split the final path in order to avoid to arrive at destination with a rental vehicle in a geofencingZone not permitted.

Observed behavior

The itineraries have a leg that arrive to a position with rental vehicle that can't park there , because is outside a geofencingZone.

Version of OTP used (exact commit hash or JAR name)

otp-2.6.0-shaded.jar

Data sets in use (links to GTFS and OSM PBF files)

https://s3.eu-west-1.amazonaws.com/providers.urbi.co/geojsonotp/osm.pbf

Command line used to start OTP

java -Xmx2G -jar otp-2.6.0-shaded.jar --load /path with router-config graph.obj ecc

Router config and graph build config JSON

https://s3.eu-west-1.amazonaws.com/providers.urbi.co/geojsonotp/router-config.json
https://s3.eu-west-1.amazonaws.com/providers.urbi.co/geojsonotp/build-config.json
https://s3.eu-west-1.amazonaws.com/providers.urbi.co/geojsonotp/otp-config.json

Steps to reproduce the problem

Done plan query
query ( $alightSlack: Int $allowKeepingRentedBicycleAtDestination: Boolean $allowedTicketTypes: [String] $allowedVehicleRentalNetworks: [String] $arriveBy: Boolean $banned: InputBanned $bannedVehicleRentalNetworks: [String] $bikeBoardCost: Int $bikeReluctance: Float $bikeSpeed: Float $bikeSwitchCost: Int $bikeSwitchTime: Int $bikeWalkingReluctance: Float $boardSlack: Int $carReluctance: Float $date: String $debugItineraryFilter: Boolean $from: InputCoordinates $fromPlace: String $ignoreRealtimeUpdates: Boolean $keepingRentedBicycleAtDestinationCost: Int $locale: String $maxTransfers: Int $minTransferTime: Int $modeWeight: InputModeWeight $nonpreferredTransferPenalty: Int $numItineraries: Int $omitCanceled: Boolean $optimize: OptimizeType $pageCursor: String $parking: VehicleParkingInput $preferred: InputPreferred $searchWindow: Long $startTransitStopId: String $time: String $to: InputCoordinates $toPlace: String $transferPenalty: Int $transportModes: [TransportMode] $triangle: InputTriangle $unpreferred: InputUnpreferred $waitReluctance: Float $walkBoardCost: Int $walkReluctance: Float $walkSafetyFactor: Float $walkSpeed: Float $wheelchair: Boolean ) { plan( alightSlack: $alightSlack allowKeepingRentedBicycleAtDestination: $allowKeepingRentedBicycleAtDestination allowedTicketTypes: $allowedTicketTypes allowedVehicleRentalNetworks: $allowedVehicleRentalNetworks arriveBy: $arriveBy banned: $banned bannedVehicleRentalNetworks: $bannedVehicleRentalNetworks bikeBoardCost: $bikeBoardCost bikeReluctance: $bikeReluctance bikeSpeed: $bikeSpeed bikeSwitchCost: $bikeSwitchCost bikeSwitchTime: $bikeSwitchTime bikeWalkingReluctance: $bikeWalkingReluctance boardSlack: $boardSlack carReluctance: $carReluctance date: $date debugItineraryFilter: $debugItineraryFilter from: $from fromPlace: $fromPlace ignoreRealtimeUpdates: $ignoreRealtimeUpdates keepingRentedBicycleAtDestinationCost: $keepingRentedBicycleAtDestinationCost locale: $locale maxTransfers: $maxTransfers minTransferTime: $minTransferTime modeWeight: $modeWeight nonpreferredTransferPenalty: $nonpreferredTransferPenalty numItineraries: $numItineraries omitCanceled: $omitCanceled optimize: $optimize pageCursor: $pageCursor parking: $parking preferred: $preferred searchWindow: $searchWindow startTransitStopId: $startTransitStopId time: $time to: $to toPlace: $toPlace transferPenalty: $transferPenalty transportModes: $transportModes triangle: $triangle unpreferred: $unpreferred waitReluctance: $waitReluctance walkBoardCost: $walkBoardCost walkReluctance: $walkReluctance walkSafetyFactor: $walkSafetyFactor walkSpeed: $walkSpeed wheelchair: $wheelchair ) { date debugOutput { pathCalculationTime precalculationTime renderingTime timedOut totalTime } from { lat lon name vertexType } itineraries { accessibilityScore arrivedAtDestinationWithRentedBicycle duration elevationGained elevationLost end endTime generalizedCost numberOfTransfers start startTime waitingTime walkDistance legs { agency { id name } from { lat lon name vertexType arrivalTime departureTime rentalVehicle { id vehicleId name vehicleType { formFactor propulsionType } network lat lon } vehicleRentalStation { id stationId name vehiclesAvailable spacesAvailable capacity allowDropoff allowPickup allowOverloading network lat lon } stop { id gtfsId name } } to { lat lon name vertexType arrivalTime departureTime rentalVehicle { id vehicleId name vehicleType { formFactor propulsionType } network lat lon } vehicleRentalStation { id stationId name vehiclesAvailable spacesAvailable capacity allowDropoff allowPickup allowOverloading network lat lon } stop { id gtfsId name } } rideHailingEstimate { provider { id } productName arrival minPrice { currency { code } amount } maxPrice { currency { code } amount } } legGeometry { length } startTime endTime departureDelay arrivalDelay mode duration generalizedCost realTime realtimeState distance transitLeg walkingBike rentedBike serviceDate intermediatePlace pickupType dropoffType interlineWithPreviousLeg route { id gtfsId agency { id name } shortName longName mode desc color textColor } trip { id gtfsId tripShortName tripHeadsign routeShortName wheelchairAccessible } } walkTime } messageEnums messageStrings nextDateTime nextPageCursor prevDateTime previousPageCursor routingErrors { code description inputField } searchWindowUsed to { lat lon name vertexType } } }
Variable:
{ "from": { "lat": 45.45189175712617, "lon": 9.171926222445034 }, "to": { "lat": 45.5845001, "lon": 9.2744485 }, "transportModes": [{"mode": "SCOOTER", "qualifier": "RENT"}] }

Return

{ "data": { "plan": { "date": 1733139182726, "debugOutput": { "pathCalculationTime": 4, "precalculationTime": 0, "renderingTime": 0, "timedOut": false, "totalTime": 1499 }, "from": { "lat": 45.4518918, "lon": 9.1719262, "name": "Origin", "vertexType": "NORMAL" }, "itineraries": [ { "accessibilityScore": null, "arrivedAtDestinationWithRentedBicycle": false, "duration": 6407, "elevationGained": 0, "elevationLost": 0, "end": "2024-12-02T14:19:49+01:00", "endTime": 1733145589000, "generalizedCost": 17387, "numberOfTransfers": 0, "start": "2024-12-02T12:33:02+01:00", "startTime": 1733139182000, "waitingTime": 0, "walkDistance": 448.94, "legs": [ { "agency": null, "from": { "lat": 45.4518918, "lon": 9.1719262, "name": "Origin", "vertexType": "NORMAL", "arrivalTime": 1733139182000, "departureTime": 1733139182000, "rentalVehicle": null, "vehicleRentalStation": null, "stop": null }, "to": { "lat": 45.45355, "lon": 9.170316, "name": "Default vehicle type", "vertexType": "BIKESHARE", "arrivalTime": 1733139613000, "departureTime": 1733139613000, "rentalVehicle": { "id": "UmVudGFsVmVoaWNsZTptaWxhbm86OmJpcmQ6MTE4NWI0ZGEtYTJkNi00ZTBjLTk0YjktMGVmZGZiNjkwMTQ3", "vehicleId": "milano::bird:1185b4da-a2d6-4e0c-94b9-0efdfb690147", "name": "Default vehicle type", "vehicleType": { "formFactor": "SCOOTER", "propulsionType": "ELECTRIC" }, "network": "milano::bird", "lat": 45.45355, "lon": 9.170316 }, "vehicleRentalStation": null, "stop": null }, "rideHailingEstimate": null, "legGeometry": { "length": 24 }, "startTime": 1733139182000, "endTime": 1733139613000, "departureDelay": 0, "arrivalDelay": 0, "mode": "WALK", "duration": 431, "generalizedCost": 814, "realTime": false, "realtimeState": null, "distance": 448.94, "transitLeg": false, "walkingBike": false, "rentedBike": false, "serviceDate": null, "intermediatePlace": false, "pickupType": "SCHEDULED", "dropoffType": "SCHEDULED", "interlineWithPreviousLeg": false, "route": null, "trip": null }, { "agency": null, "from": { "lat": 45.45355, "lon": 9.170316, "name": "Default vehicle type", "vertexType": "BIKESHARE", "arrivalTime": 1733139613000, "departureTime": 1733139613000, "rentalVehicle": { "id": "UmVudGFsVmVoaWNsZTptaWxhbm86OmJpcmQ6MTE4NWI0ZGEtYTJkNi00ZTBjLTk0YjktMGVmZGZiNjkwMTQ3", "vehicleId": "milano::bird:1185b4da-a2d6-4e0c-94b9-0efdfb690147", "name": "Default vehicle type", "vehicleType": { "formFactor": "SCOOTER", "propulsionType": "ELECTRIC" }, "network": "milano::bird", "lat": 45.45355, "lon": 9.170316 }, "vehicleRentalStation": null, "stop": null }, "to": { "lat": 45.5845001, "lon": 9.2744485, "name": "Destination", "vertexType": "NORMAL", "arrivalTime": 1733145589000, "departureTime": 1733145589000, "rentalVehicle": null, "vehicleRentalStation": null, "stop": null }, "rideHailingEstimate": null, "legGeometry": { "length": 1225 }, "startTime": 1733139613000, "endTime": 1733145589000, "departureDelay": 0, "arrivalDelay": 0, "mode": "SCOOTER", "duration": 5976, "generalizedCost": 16572, "realTime": false, "realtimeState": null, "distance": 21770.88, "transitLeg": false, "walkingBike": false, "rentedBike": true, "serviceDate": null, "intermediatePlace": false, "pickupType": "SCHEDULED", "dropoffType": "SCHEDULED", "interlineWithPreviousLeg": false, "route": null, "trip": null } ], "walkTime": 431 } ], "messageEnums": [], "messageStrings": [], "nextDateTime": null, "nextPageCursor": null, "prevDateTime": null, "previousPageCursor": null, "routingErrors": [], "searchWindowUsed": null, "to": { "lat": 45.5845001, "lon": 9.2744485, "name": "Destination", "vertexType": "NORMAL" } } } }

There is a mode "SCOTER" that arrive "to": { "lat": 45.5845001, "lon": 9.2744485, "name": "Destination", "vertexType": "NORMAL",
but destination is not inside zone in the update url

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant