Hi,
We’ve found that the route optimization when using car_delivery as the profile seems to ignore the road that the destination is on and instead snaps to a nearby road which does not actually provide access to the address.
Here is the route on GraphHopper maps: GraphHopper Maps | Route Planner
And the same route via the optimization API:
{
"configuration": {
"routing": {
"calc_points": true,
"consider_traffic": false,
"fail_fast": false,
"network_data_provider": "openstreetmap",
"return_snapped_waypoints": true,
"snap_preventions": [
"motorway",
"tunnel",
"ferry"
]
}
},
"objectives": [
{
"type": "min",
"value": "completion_time"
}
],
"relations": [],
"services": [
{
"address": {
"curbside": "any",
"lat": 51.7708035,
"location_id": "hWC07t66mpkAK5gKwATC",
"lon": -0.9428901,
"name": "Haddenham & Thame Parkway, Aylesbury",
"street_hint": "Haddenham"
},
"allowed_vehicles": [
"GOSOpqtTIDYbWOueNBcZ"
],
"duration": 600,
"group": "medium",
"id": "hWC07t66mpkAK5gKwATC",
"name": "Haddenham & Thame Parkway, Aylesbury",
"priority": 2,
"size": [
1
],
"time_windows": []
}
],
"shipments": [],
"vehicle_types": [
{
"capacity": [
2147483647
],
"profile": "car_delivery",
"service_time_factor": 1,
"speed_factor": 1,
"type_id": "vhc_GOSOpqtTIDYbWOueNBcZ"
}
],
"vehicles": [
{
"earliest_start": 1714647600,
"min_jobs": 1,
"return_to_depot": false,
"start_address": {
"curbside": "any",
"lat": 51.7771128,
"location_id": "YJs7SzSKx3ytPY
![Screenshot 2024-05-03 at 10.55.11|690x462](upload://x4h1mUZ0LEd1Bn9iNt3YU0bu3iv.jpeg)
KxvVdg",
"lon": -0.9687678,
"name": "Thame Freight Services Ltd, Long Crendon",
"street_hint": "Unit 19 Notley Farm"
},
"type_id": "vhc_GOSOpqtTIDYbWOueNBcZ",
"vehicle_id": "GOSOpqtTIDYbWOueNBcZ"
}
]
}
The correct access to the address is from the red arrow direction in this screenshot:
The only thing unusual seems to be that the service road is marked as access: destination
in OSM: Way: 97825188 | OpenStreetMap
I’ve tried using a custom model through the graphhopper open source repo, and it was able to plan the route correctly, but only after I removed this condition from the car profile:
{ "if": "!car_access", "multiply_by": "0" }
Is there something about access: destination
that means that car_access
is not granted or do you know if there’s something else happening here?