Computer >> Máy Tính >  >> Lập trình >> Python

Tính toán khoảng cách và thời gian giữa hai địa điểm bằng cách sử dụng API ma trận khoảng cách của google trong Python?

Hầu như chúng ta đều sử dụng bản đồ google để kiểm tra khoảng cách giữa nguồn và điểm đến và kiểm tra thời gian di chuyển. Đối với các nhà phát triển và những người đam mê, google cung cấp 'API ma trận khoảng cách của google' để tính toán khoảng cách và thời gian giữa hai địa điểm.

Để sử dụng api ma trận khoảng cách của google, chúng tôi cần các khóa API của google maps, bạn có thể lấy khóa này từ liên kết dưới đây:

https://developers.google.com/maps/documentation/distance-matrix/get-api-key

Thư viện bắt buộc

Chúng tôi có thể thực hiện điều này bằng cách sử dụng thư viện python khác nhau, như:

  • Gấu trúc
  • googlemaps
  • Yêu cầu
  • Json

Tôi đang sử dụng các yêu cầu rất cơ bản và thư viện json. Sử dụng gấu trúc, bạn có thể điền vào nhiều địa điểm nguồn và đích cùng một lúc và nhận kết quả trong tệp csv.

Dưới đây là chương trình để thực hiện tương tự:

 # Nhập thư viện yêu cầu nhập yêu cầu nhập json # Nhập nguồn và đích của bạn cityoriginPoint =input ("Vui lòng nhập thành phố xuất xứ của bạn:") destinationPoint =input ("Vui lòng nhập thành phố đích của bạn:") # Đặt google map API_KEY của bạn vào một biếnapiKey ='YOUR_API_KEY' # Lưu trữ url api của google maps trong một variableurl ='https://maps.googleapis.com/maps/api/distancematrix/json?'# gọi lấy phương thức của mô-đun yêu cầu và lưu trữ resose objectr =request.get ( url + 'origin =' + originPoint + '&domains =' + destinationPoint + '&key =' + apiKey) # Nhận kết quả định dạng json từ phản hồi ở trên objectres =r.json () # in giá trị của resprint (res)  

Đầu ra

 Vui lòng nhập thành phố xuất xứ của bạn:Delhi Vui lòng nhập thành phố đến của bạn:Karnataka {'destination_addresses':['Karnataka, India'], 'origin_addresses':['Delhi, India'], 'row':[{'Elements' :[{'distance':{'text':'1.942 km', 'value':1941907}, 'time':{'text':'1 day 9 hours', 'value':120420}, 'status' :'OK'}]}], 'status':'OK'}