googlemaps / google-maps-services-python

Python client library for Google Maps API Web Services
Apache License 2.0
4.49k stars 1.3k forks source link

Multiple avoid problems #382

Open tpchris1 opened 4 years ago

tpchris1 commented 4 years ago

Problem

When I passed the avoid parameters in the distance_matrix method, it told me that it is an invalid restriction. However, I wonder if it's possible to allow multiple avoid options like avoid=tolls|highways|ferries. Thank you!

Environment details

  1. API: Distance_Matrix
  2. Win 10 v2004
  3. lib version: 4.4.2, Jupyter Notebook

Steps to reproduce

  1. Simply add multiple avoids in the distance_matrix parameter

    Code example

# example
gmaps = googlemaps.Client(key=YOUR_KEY)
gmaps.distance_matrix(origins=SOMEPLACE,destinations=SOMEPLACE, mode='driving', avoid='tolls|highways|ferries')

Stack trace

# example
D:\Program_Files\Anaconda3\lib\site-packages\googlemaps\distance_matrix.py in distance_matrix(client, origins, destinations, mode, language, avoid, units, departure_time, arrival_time, transit_mode, transit_routing_preference, traffic_model, region)
    107     if avoid:
    108         if avoid not in ["tolls", "highways", "ferries"]:
--> 109             raise ValueError("Invalid route restriction.")
    110         params["avoid"] = avoid
    111 

ValueError: Invalid route restriction.
wangela commented 1 year ago

I've confirmed that multiple arguments are supported by Distance Matrix API, just as they are with Directions API. Getting the documentation updated to reflect that.

I've left some review comments in #417 to hopefully get that merged soon.