Hướng dẫn google maps api calculate distance between two points python - google maps api tính toán khoảng cách giữa hai điểm python

Bạn có thể tính khoảng cách giữa hai điểm bằng API Google Maps.

Để tìm khoảng cách giữa hai thành phố:

import googlemaps 
# Requires API key 
gmaps = googlemaps.Client(key='Your_API_key')  
# Requires cities name 
distance = gmaps.distance_matrix('Delhi','Mumbai')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'1,418 km', u'value': 1417632},
 u'duration': {u'text': u'1 day 0 hours', u'value': 87010},
 u'status': u'OK'}

Nếu bạn có tọa độ địa lý (vĩ độ và kinh độ) của nguồn gốc và điểm đến, thì hãy làm như dưới đây:

# Requires geo-coordinates(latitude/longitude) of origin and destination
origin_latitude = 12.9551779
origin_longitude = 77.6910334
destination_latitude = 28.505278
destination_longitude = 77.327774
distance = gmaps.distance_matrix([str(origin_latitude) + " " + str(origin_longitude)], [str(destination_latitude) + " " + str(destination_longitude)], mode='walking')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'2,014 km', u'value': 2013656},
 u'duration': {u'text': u'16 days 23 hours', u'value': 1464529},
 u'status': u'OK'}

API ma trận khoảng cách Google Map là một dịch vụ cung cấp khoảng cách di chuyển và thời gian được thực hiện để đến đích. API này trả về tuyến đường được đề xuất (không chi tiết) giữa nguồn gốc và đích, bao gồm các giá trị thời lượng và khoảng cách cho mỗi cặp.

Để sử dụng API này, người ta phải cần khóa API, có thể có hình thức ở đây.

Các mô -đun cần thiết:

import requests
import json

& nbsp; bên dưới là việc thực hiện:
Below is the implementation :

Đầu ra:

dehradun
haridwar

{'destination_addresses': ['Haridwar, Uttarakhand, India'], 
'origin_addresses': ['Dehradun, Uttarakhand, India'], 'rows': 
[{'elements': [{'distance': {'text': '56.3 km', 'value': 56288}, 
'duration': {'text': '1 hour 40 mins', 'value': 5993},
'status': 'OK'}]}], 'status': 'OK'}

Sử dụng mô -đun
# Requires geo-coordinates(latitude/longitude) of origin and destination
origin_latitude = 12.9551779
origin_longitude = 77.6910334
destination_latitude = 28.505278
destination_longitude = 77.327774
distance = gmaps.distance_matrix([str(origin_latitude) + " " + str(origin_longitude)], [str(destination_latitude) + " " + str(destination_longitude)], mode='walking')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'2,014 km', u'value': 2013656},
 u'duration': {u'text': u'16 days 23 hours', u'value': 1464529},
 u'status': u'OK'}
3:

Khoảng cách giữa hai nơi cũng có thể được tính toán bằng mô -đun Googlemaps.

Lệnh để cài đặt mô -đun googlemaps:

pip install googlemaps

# Requires geo-coordinates(latitude/longitude) of origin and destination
origin_latitude = 12.9551779
origin_longitude = 77.6910334
destination_latitude = 28.505278
destination_longitude = 77.327774
distance = gmaps.distance_matrix([str(origin_latitude) + " " + str(origin_longitude)], [str(destination_latitude) + " " + str(destination_longitude)], mode='walking')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'2,014 km', u'value': 2013656},
 u'duration': {u'text': u'16 days 23 hours', u'value': 1464529},
 u'status': u'OK'}
4
# Requires geo-coordinates(latitude/longitude) of origin and destination
origin_latitude = 12.9551779
origin_longitude = 77.6910334
destination_latitude = 28.505278
destination_longitude = 77.327774
distance = gmaps.distance_matrix([str(origin_latitude) + " " + str(origin_longitude)], [str(destination_latitude) + " " + str(destination_longitude)], mode='walking')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'2,014 km', u'value': 2013656},
 u'duration': {u'text': u'16 days 23 hours', u'value': 1464529},
 u'status': u'OK'}
3

# Requires geo-coordinates(latitude/longitude) of origin and destination
origin_latitude = 12.9551779
origin_longitude = 77.6910334
destination_latitude = 28.505278
destination_longitude = 77.327774
distance = gmaps.distance_matrix([str(origin_latitude) + " " + str(origin_longitude)], [str(destination_latitude) + " " + str(destination_longitude)], mode='walking')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'2,014 km', u'value': 2013656},
 u'duration': {u'text': u'16 days 23 hours', u'value': 1464529},
 u'status': u'OK'}
6
# Requires geo-coordinates(latitude/longitude) of origin and destination
origin_latitude = 12.9551779
origin_longitude = 77.6910334
destination_latitude = 28.505278
destination_longitude = 77.327774
distance = gmaps.distance_matrix([str(origin_latitude) + " " + str(origin_longitude)], [str(destination_latitude) + " " + str(destination_longitude)], mode='walking')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'2,014 km', u'value': 2013656},
 u'duration': {u'text': u'16 days 23 hours', u'value': 1464529},
 u'status': u'OK'}
7
# Requires geo-coordinates(latitude/longitude) of origin and destination
origin_latitude = 12.9551779
origin_longitude = 77.6910334
destination_latitude = 28.505278
destination_longitude = 77.327774
distance = gmaps.distance_matrix([str(origin_latitude) + " " + str(origin_longitude)], [str(destination_latitude) + " " + str(destination_longitude)], mode='walking')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'2,014 km', u'value': 2013656},
 u'duration': {u'text': u'16 days 23 hours', u'value': 1464529},
 u'status': u'OK'}
8
# Requires geo-coordinates(latitude/longitude) of origin and destination
origin_latitude = 12.9551779
origin_longitude = 77.6910334
destination_latitude = 28.505278
destination_longitude = 77.327774
distance = gmaps.distance_matrix([str(origin_latitude) + " " + str(origin_longitude)], [str(destination_latitude) + " " + str(destination_longitude)], mode='walking')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'2,014 km', u'value': 2013656},
 u'duration': {u'text': u'16 days 23 hours', u'value': 1464529},
 u'status': u'OK'}
7
import requests
import json
0
import requests
import json
1

Các

dehradun
haridwar

{'destination_addresses': ['Haridwar, Uttarakhand, India'], 
'origin_addresses': ['Dehradun, Uttarakhand, India'], 'rows': 
[{'elements': [{'distance': {'text': '56.3 km', 'value': 56288}, 
'duration': {'text': '1 hour 40 mins', 'value': 5993},
'status': 'OK'}]}], 'status': 'OK'}
7
dehradun
haridwar

{'destination_addresses': ['Haridwar, Uttarakhand, India'], 
'origin_addresses': ['Dehradun, Uttarakhand, India'], 'rows': 
[{'elements': [{'distance': {'text': '56.3 km', 'value': 56288}, 
'duration': {'text': '1 hour 40 mins', 'value': 5993},
'status': 'OK'}]}], 'status': 'OK'}
8

Đầu ra:

{'distance': {'text': '1,415 km', 'value': 1415380}, 'duration': {'text': '23 hours 42 mins', 'value': 85306}, 'status': 'OK'}

Sử dụng mô -đun

# Requires geo-coordinates(latitude/longitude) of origin and destination
origin_latitude = 12.9551779
origin_longitude = 77.6910334
destination_latitude = 28.505278
destination_longitude = 77.327774
distance = gmaps.distance_matrix([str(origin_latitude) + " " + str(origin_longitude)], [str(destination_latitude) + " " + str(destination_longitude)], mode='walking')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'2,014 km', u'value': 2013656},
 u'duration': {u'text': u'16 days 23 hours', u'value': 1464529},
 u'status': u'OK'}
3:aishwarya.27 for contributing this method.


Trong bài viết trước của chúng tôi, chúng tôi đã ánh xạ 100 điểm dữ liệu tại các vị trí ngẫu nhiên ở Rwanda. Trong bài viết này, chúng ta sẽ thấy cách nhanh nhất - và được cho là đơn giản nhất - để có được khoảng cách giữa một vị trí cụ thể và nhiều địa điểm khác, và thời gian cần thiết để di chuyển khoảng cách đó. Chúng tôi sẽ sử dụng mã Python rất đơn giản cùng với API của Google. Lý do chúng tôi sử dụng API Google là vì nó cung cấp cho bạn khoảng cách đúng/thực tế, trái ngược với khoảng cách đường thẳng (được gọi là khoảng cách Euclidian) được cung cấp bởi hầu hết các công cụ. Dịch vụ API của Google sử dụng khoảng cách lái xe (mặc dù bạn có thể chọn sử dụng khoảng cách "đi bộ"), điều đó có nghĩa là nó sẽ tính khoảng cách dựa trên các tuyến đường hoặc đường dẫn nhanh nhất bằng hệ thống mạng đường thực tế (nếu có!). Nhiệm vụ của chúng tôi là lập danh sách các khoảng cách (và thời gian) cho tất cả các điểm dữ liệu (100 điểm dữ liệu) chúng tôi đã tạo ngẫu nhiên và sử dụng trong bài viết trước. Chúng tôi sẽ đạt được điều này trong ba tác vụ đơn giản: (1) nhập thư viện và tải dữ liệu; (2) tính toán thời lượng/thời gian; và (3) cuối cùng thêm các khoảng cách tương ứng (bạn có thể bắt đầu với khoảng cách nếu bạn thích) vào danh sách. Ý tưởng là chúng ta có thể sử dụng các kết quả này làm biến để phân tích thêm (ví dụ: nghĩ về các phân tích hồi quy đòi hỏi khoảng cách là biến). Như mọi khi, ý tưởng là để đạt được điều này theo cách đơn giản nhất có thể. Không có công cụ ưa thích!

Làm thôi nào!

Đầu tiên, chúng tôi nhập thư viện PANDAS và sau đó tải dữ liệu. Một lần nữa, bạn có thể nhận được dữ liệu ở đây, nếu bạn muốn sử dụng của tôi. Bạn sẽ nhận thấy rằng tôi đã thêm một cột mới có tên tọa độ tham gia cả dữ liệu vĩ độ và kinh độ trong một cột. Đó là định dạng theo yêu cầu của mã chúng tôi sẽ sử dụng sau; Vì vậy, chúng tôi chỉ có thể tuân thủ.

import pandas as pd

data = pd.read_excel(r'data.xlsx', 'data')

Để hoàn thành nhiệm vụ của mình, chúng tôi sẽ cần một vài điều: Thư viện Google Maps (GMAPs), Thư viện SimpleJson và khóa API Google để truy cập ma trận khoảng cách. Hãy xử lý điều đó trước.

Hãy bắt đầu với GMAP:

pip install googlemaps

Sau đó, chúng tôi cài đặt SimpleJson:

pip install simplejson

Cuối cùng, chúng tôi cài đặt Google-Auth-Oauthlib. Vì chúng tôi sẽ phải sử dụng Google API, chúng tôi sẽ cần một khóa. Thông qua quá trình đó, chúng tôi sẽ cần ủy quyền. Đó là lý do tại sao chúng ta cần điều này.

pip install --upgrade google-auth-oauthlib

Tất cả chúng ta đã sẵn sàng để bắt đầu phép thuật.

Hãy nhập thư viện của chúng tôi mà chúng tôi vừa cài đặt

# Requires geo-coordinates(latitude/longitude) of origin and destination
origin_latitude = 12.9551779
origin_longitude = 77.6910334
destination_latitude = 28.505278
destination_longitude = 77.327774
distance = gmaps.distance_matrix([str(origin_latitude) + " " + str(origin_longitude)], [str(destination_latitude) + " " + str(destination_longitude)], mode='walking')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'2,014 km', u'value': 2013656},
 u'duration': {u'text': u'16 days 23 hours', u'value': 1464529},
 u'status': u'OK'}
0

Bước thứ hai để hoàn thành nhiệm vụ của chúng tôi là tính toán thời gian hoặc thời gian lái xe từ mọi vị trí của hàng trăm vị trí ngẫu nhiên chúng tôi tạo ra gốc. Giả sử rằng (-2,0123469, 29.377851) là nguồn gốc; Đây là mục đầu tiên trong tập dữ liệu được tạo ngẫu nhiên của chúng tôi. Để nhận khóa API, hãy truy cập API ma trận khoảng cách của Google. Nó miễn phí, và bạn chỉ làm điều đó một lần. Ngoài ra, bạn sử dụng cho mọi dự án yêu cầu API của Google.

Khi bạn đã hoàn tất, hãy viết mã sau để tính thời gian/thời lượng. .

# Requires geo-coordinates(latitude/longitude) of origin and destination
origin_latitude = 12.9551779
origin_longitude = 77.6910334
destination_latitude = 28.505278
destination_longitude = 77.327774
distance = gmaps.distance_matrix([str(origin_latitude) + " " + str(origin_longitude)], [str(destination_latitude) + " " + str(destination_longitude)], mode='walking')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'2,014 km', u'value': 2013656},
 u'duration': {u'text': u'16 days 23 hours', u'value': 1464529},
 u'status': u'OK'}
1

Bước thứ ba và cuối cùng của chúng tôi là tính khoảng cách chúng tôi vừa đi (!).

# Requires geo-coordinates(latitude/longitude) of origin and destination
origin_latitude = 12.9551779
origin_longitude = 77.6910334
destination_latitude = 28.505278
destination_longitude = 77.327774
distance = gmaps.distance_matrix([str(origin_latitude) + " " + str(origin_longitude)], [str(destination_latitude) + " " + str(destination_longitude)], mode='walking')['rows'][0]['elements'][0]

print(distance)
{u'distance': {u'text': u'2,014 km', u'value': 2013656},
 u'duration': {u'text': u'16 days 23 hours', u'value': 1464529},
 u'status': u'OK'}
2

Đơn giản và ngọt ngào! Chúng tôi có danh sách của chúng tôi cho 100 mục (chỉ hiển thị 15 mục đầu tiên).

Bây giờ, chúng ta hãy kiểm tra xem những gì chúng ta có có ý nghĩa. Lấy hai điểm ngẫu nhiên và kiểm tra xem thời gian và khoảng cách mà dịch vụ Google Maps cho thấy có giống như (hoặc gần với hợp lý) những gì chúng ta có trong tập dữ liệu chúng ta đã tạo.

Thoạt nhìn thông báo làm thế nào mục đầu tiên là 0 cho khoảng cách; Đó là một dấu hiệu tốt. Hãy nhớ rằng chúng tôi đã lấy mục đầu tiên làm tài liệu tham khảo.

Chúng ta hãy lấy mục thứ hai (ID 2) trong bộ dữ liệu của chúng tôi (-1.66881597155677, 30.5838648247755) và thấy cả khoảng cách đến nguồn gốc (dường như ở đâu đó ở quận Rutsiro!) Và thời gian cần có. Với những ngón tay của chúng tôi vượt qua, sau đó chúng tôi có thể so sánh điều đó với những gì chúng tôi nhận được từ mã.

Google Map cho thấy tuyến đường ngắn nhất dài 233 km và phải mất khoảng 5 giờ để di chuyển khoảng cách đó. So sánh, mã của chúng tôi xác định rằng tuyến đường ngắn nhất sẽ dài khoảng 240 km và sẽ mất 5,2 giờ để di chuyển khoảng cách đó.

Eureka!

Một ví dụ nữa. Một cho con đường. Hãy kiểm tra khoảng cách và thời gian cho ID 11.

Google Map nói rằng đối với ID 11, hành trình sẽ dài 144 km và sẽ mất khoảng 3 giờ để hoàn thành. So sánh, kết quả từ mã của chúng tôi cho thấy hành trình sẽ là khoảng 143 km và sẽ mất khoảng 3,3 giờ. Khá hợp lý.

Tất cả trong tất cả, nó hoạt động. Tuy nhiên, trong một số trường hợp, nó có thể không chính xác nhưng trong phần lớn các trường hợp, nó đưa ra câu trả lời hợp lý đáng kể. Hãy nhớ rằng có những yếu tố khác có thể gây ra sự khác biệt nhỏ mà chúng ta có thể không bao thanh toán. Trong mọi trường hợp, nó đủ để sử dụng các kết quả này như các biến trong phân tích thống kê. Với suy nghĩ này, hãy nghĩ về cách bạn có thể tính toán khoảng cách ngắn nhất đến một cơ sở hạ tầng vật lý nhất định như bệnh viện hoặc tài nguyên gần nhất như sông hoặc hồ. Chúng tôi sẽ làm điều đó trong các lần lặp khác của loạt bài này.

Nhưng lần lặp tiếp theo của loạt bài này sẽ giải quyết một câu hỏi: nếu bạn biết tọa độ của một địa điểm nhất định, bạn có thể nói độ cao bằng Python không? Điều này rất quan trọng nếu bạn cần độ cao cho phân tích của bạn. Không cần phải đi để thu thập dữ liệu trong lĩnh vực này. Python có bạn.

Ad astra!

Google Maps API có thể tính toán khoảng cách giữa hai điểm không?

API trả về thông tin dựa trên tuyến đường được đề xuất giữa điểm bắt đầu và điểm cuối. Bạn có thể yêu cầu dữ liệu khoảng cách cho các chế độ du lịch khác nhau, yêu cầu dữ liệu khoảng cách theo các đơn vị khác nhau như các km hoặc dặm và ước tính thời gian di chuyển trong giao thông.. You can request distance data for different travel modes, request distance data in different units such kilometers or miles, and estimate travel time in traffic.

Bạn có thể sử dụng API Google Maps với Python không?

Máy khách Java, Máy khách Python, GO Client và Node.js Client cho Google Maps Services cho phép bạn làm việc với Google Maps Web Services trên máy chủ của bạn.Chúng bao bọc chức năng của API API sau: Hướng dẫn API. js Client for Google Maps Services enable you to work with Google Maps web services on your server. They wrap the functionality of the following APIs: Directions API.

Làm thế nào để bạn tìm thấy khoảng cách giữa các điểm trên Google Maps?

Đo khoảng cách giữa các điểm..
Trên điện thoại Android hoặc máy tính bảng của bạn, hãy mở ứng dụng Google Maps ..
Chạm và giữ bất cứ nơi nào trên bản đồ không phải là tên hoặc biểu tượng của địa điểm.....
Chọn khoảng cách đo ..
Di chuyển bản đồ để vòng tròn màu đen ở điểm tiếp theo bạn muốn thêm ..
Ở phía dưới bên phải, nhấn thêm điểm ..

Làm thế nào để Python sử dụng API ma trận khoảng cách?

Kịch bản Python..
Phụ thuộc.Nhập các gói cần thiết: ....
Tải tệp CSV và lưu trữ trong khung dữ liệu.Trong bước này, chúng tôi tải tệp CSV vào khung dữ liệu.....
Thiết lập khóa API.....
Lặp lại các hàng trong khung dữ liệu.....
Tạo cột 'khoảng cách' mới trong khung dữ liệu.....
Viết khung dữ liệu cuối cùng cho CSV ..