Tính quãng đường vận chuyển bằng hàm API của Google Map
Liệu có cách làm nào khác hơn không ? Chắc chắn là có nhé, bạn hãy theo dõi các bước mà tôi tư duy và thực thi .
-
Số km được tính trên Google Map mà bạn thấy chính là nhờ 1 hàm API ( tạm gọi là hàm ” Distance ” – khoảng cách ) dựa trên địa chỉ mà bạn nhập vào từ đó nó sẽ tính ra kinh độ, vĩ độ và giám sát các điểm với nhau. Nếu vậy ta chỉ cần có hàm API Distance là làm được. Thât như mong muốn, bạn hoàn toàn có thể tìm thấy các API này khi ĐK thông tin tài khoản Console với Google .
-
Bạn phải có tài khoản ngân hàng có giao dịch quốc tế (tôi dùng thẻ VISA) để đăng ký tài khoản với Google thì mới mua được API.
Bạn đang đọc: Tính quãng đường vận chuyển bằng hàm API của Google Map
-
-
Excel và VBA là một bộ đôi tuyệt vời để triển khai việc giải quyết và xử lý từ địa chỉ nhập vào đến việc tính toán số km ( dựa trên địa chỉ ) trải qua hàm API Distance vừa đề cập ở trên .
- Tôi không đề cập cách thiết lập VBA cũng như giúp bạn hiểu VBA tại bài viết này. Bạn hoàn toàn có thể tìm trên Google nhé hoặc đọc bài viết khác trên website của chúng tôi .
- Dùng 1 file Excel có VBA phối hợp với hàm API bạn sẽ có 1 ” tool ” lấy được số km ( và cả thời hạn vận động và di chuyển ) từ nhiều địa chỉ khác nhau một cách nhanh gọn .
Nào mở màn việc thiết lập file Excel và hàm API thôi các bạn !
Trước hết, bạn cần mở VBE của 1 file Excel bất kể và copy và paste code sau vào 1 module, sau đó lưu file dưới dạn “. xlsm ” hoặc “. xlsb ” ( để macro hoạt động giải trí ) .
Có 03 code ( mỗi code bạn paste vào 1 module ), ứng với từng mục tiêu khác nhau :
Code1 – tính km và thời gian di chuyển
Public Function get_dis_and_time2 ( origin_address As String, destination_address As String )
Dim surl As String
Dim oXH As Object
Dim bodytxt As String
Dim tim_e As String
Dim distanc_e As String
Dim APIkey As String
APIkey = ” xxx ” ‘https://developers.google.com/maps/documentation/javascript/get-api-key
surl = ” https://maps.googleapis.com/maps/api/distancematrix/xml?origins= ” và _
Replace ( Replace ( Replace ( origin_address, ” “, ” + ” ), “, “, ” + ” ), ” + + “, ” + ” ) và _
” và destinations = ” và _
Replace ( Replace ( Replace ( destination_address, ” “, ” + ” ), “, “, ” + ” ), ” + + “, ” + ” ) và _
” và mode = driving và sensor = false và units = metric và key = ” và APIkey
Set oXH = CreateObject ( ” msxml2.xmlhttp ” )
With oXH
. Open ” get “, surl, False
. send
bodytxt =. responseText
End With
bodytxt = Right(bodytxt, Len(bodytxt) – InStr(1, bodytxt, “
tim_e = Left ( bodytxt, InStr ( 1, bodytxt, ” ” ) – 1 )
bodytxt = Right(bodytxt, Len(bodytxt) – InStr(1, bodytxt, “
distanc_e = Left ( bodytxt, InStr ( 1, bodytxt, ” ” ) – 1 )
get_dis_and_time2 = tim_e và ” | ” và distanc_e
Set oXH = Nothing
End Function
Code2 – Chỉ tính km
Public Function get_dis ( origin_address As String, destination_address As String )
Dim surl As String
Dim oXH As Object
Dim bodytxt As String
Dim tim_e As String
Dim distanc_e As String
Dim APIkey As String
APIkey = ” xxx “‘https://developers.google.com/maps/documentation/javascript/get-api-key
surl = ” https://maps.googleapis.com/maps/api/distancematrix/xml?origins= ” và _
Replace ( Replace ( Replace ( origin_address, ” “, ” + ” ), “, “, ” + ” ), ” + + “, ” + ” ) và _
” và destinations = ” và _
Replace ( Replace ( Replace ( destination_address, ” “, ” + ” ), “, “, ” + ” ), ” + + “, ” + ” ) và _
” và mode = driving và sensor = false và units = metric và key = ” và APIkey
Set oXH = CreateObject ( ” msxml2.xmlhttp ” )
With oXH
. Open ” get “, surl, False
. send
bodytxt =. responseText
End With
bodytxt = Right(bodytxt, Len(bodytxt) – InStr(1, bodytxt, “
tim_e = Left ( bodytxt, InStr ( 1, bodytxt, ” ” ) – 1 )
bodytxt = Right(bodytxt, Len(bodytxt) – InStr(1, bodytxt, “
distanc_e = Left(bodytxt, InStr(1, bodytxt, “”) – 1)
get_dis = distanc_e / 1000
Set oXH = Nothing
End Function
Code3 – Chỉ tính thời gian
Public Function get_time ( origin_address As String, destination_address As String )
Dim surl As String
Dim oXH As Object
Dim bodytxt As String
Dim tim_e As String
Dim distanc_e As String
Dim APIkey As StringAPIkey = ” xxx ” ‘https://developers.google.com/maps/documentation/javascript/get-api-key
surl = ” https://maps.googleapis.com/maps/api/distancematrix/xml?origins= ” và _
Replace ( Replace ( Replace ( origin_address, ” “, ” + ” ), “, “, ” + ” ), ” + + “, ” + ” ) và _
” và destinations = ” và _
Replace ( Replace ( Replace ( destination_address, ” “, ” + ” ), “, “, ” + ” ), ” + + “, ” + ” ) và _
” và mode = driving và sensor = false và units = metric và key = ” và APIkey
Set oXH = CreateObject ( ” msxml2.xmlhttp ” )
With oXH
. Open ” get “, surl, False
. send
bodytxt =. responseText
End With
bodytxt = Right(bodytxt, Len(bodytxt) – InStr(1, bodytxt, “
tim_e = Left ( bodytxt, InStr ( 1, bodytxt, ” ” ) – 1 )
get_time = tim_e / 86400
Set oXH = Nothing
End Function
Lưu ý APIkey = ” xxx ” ==> xxx chính là hàm API mà bạn phải mua từ Google .
Đây là dạng ” hàm người dùng tự tạo “, bạn hoàn toàn có thể tìm hiểu thêm cách sử dụng trên Google ( từ khóa : user defined function )
Đến đây thì việc còn lại là mua 1 hàm API Distance. Nào tất cả chúng ta cùng xem cách mua như sau :
– Truy cập vào trang https://developers.google.com/maps/documentation/javascript/get-api-key Bạn cần ĐK 1 thông tin tài khoản Cloud Console và 1 thông tin tài khoản ngân hàng nhà nước có thanh toán giao dịch quốc tế .
– Đăng ký xong thông tin tài khoản Cloud Console thì vào ĐK API như sau :
Và ở đầu cuối là tạo được 1 API như sau :
Bạn cần chọn vào ” Restrict Key ” – khám phá thêm trên Google nhé ( bước này giúp bạn số lượng giới hạn quyền truy vấn của API, tránh bị lạm dụng tài nguyên … ). Thú thực người viết cũng không trọn vẹn hiểu hết API của Google nên bạn tự tìm hiểu và khám phá giúp nhé .
Và giờ đây tất cả chúng ta có 1 API được active như sau :
Thế là xong ! Bạn hoàn toàn có thể vào file Excel để thử đưa 2 địa chỉ vào 2 ô rồi dùng các hàm tự tạo nêu trên để lấy thông tin. Kết quả chắc như đinh sẽ rất nhanh và đúng chuẩn nhé ( bạn hoàn toàn có thể tự kiểm chứng lại bằng cách nhập vào Google Map ) .
Lưu ý : với hàm API Distance và code VBA mình đang cung ứng là dùng cho Mode ” Driving ” – tức xe hơi / xe tải nhé. Hàm sẽ ưu tiên chọn đường ” chính thống ” nhất ( cũng hoàn toàn có thể sẽ là đường dài nhất ) ví dụ như đi qua Quốc Lộ 1A hơn là đi theo đường núi ….
Minh họa tính từ Excel:
Minh họa tính từ Google Map
Xem thêm: Ẩm thực Nhật Bản – Wikipedia tiếng Việt
Source: https://dichvusuachua24h.com
Category : Du Lịch