Distance_matrix not working with metrics parameter
Here's what I did
Used following code:
client_ors = openrouteservice.Client(key='<KEY>')
df_bus_stops_distances = client_ors.distance_matrix(llist_coords_bus_stops, metrics="distance")
and same without metrics parameter.
Tried on the API-Playground, it worked. Tried with the example code as python snippet from the API-Playground, that also worked.
Here's what I got
url:
https://api.openrouteservice.org/v2/matrix/driving-car/json?
Headers:
{
"headers": {
"User-Agent": "ORSClientPython.v2.2.2",
"Content-type": "application/json",
"Authorization": "<KEY>"
},
"timeout": 60,
"json": {
"locations": [
[
x,
y
],
[
x,
y
],
[
x,
y
],
[
x,
y
],
[
x,
y
],
[
x,
y
],
[
x,
y
],
[
x,
y
],
[
x,
y
],
[
x,
y
]
],
"profile": "driving-car",
"metrics": "distance"
}
}
openrouteservice.exceptions.ApiError: 400 ({'error': {'code': 6003, 'message': "Parameter 'metrics' has incorrect value or format."}, 'info': {'engine': {'build_date': '2023-06-16T03:06:42Z', 'version': '7.1.0'}, 'timestamp': 1687986526446}})
Here's what I was expecting
Should get a working response, as using metrics-parameter works on normal REST-API calls (API-Playground/python example code)
Here's what I think could be improved
Looked at the code of this package, especially at the distance_matrix.py. Couldn't figure out the problem. I'm sorry.
A belated answer: I think the intended usage is that the metrics argument needs to be a list of strings to work correctly even if you only want to get the distance:
ors.distance_matrix.distance_matrix(ors_client, locations, metrics=['distance'])
I'm not sure this behaviour is very intuitive or clear from the documentation, and kinda different to how the api playground handles this iirc.
I would be inclined to make that argument a bit smarter and deal with both a string and a list of string