Tính quãng đường vận chuyển bằng hàm API của Google Map

Trước hết, tất cả chúng ta cùng đồng ý chấp thuận với nhau là việc tính km giữa 02 điểm hay nhiều điểm bất kể trên Google Map ( miễn là bạn có địa chỉ đúng chuẩn và phương pháp vận tải đường bộ tương thích – tức không đi xe tải ra hòn đảo là được ) sẽ thực thi rất thuận tiện trải qua Google Maps được phân phối sẵn và không lấy phí. Tuy nhiên, bài toán ngày hôm nay tôi đặt ra là bạn cần tìm số km của khoảng 300 quãng đường cùng lúc. Vậy bạn sẽ mất thời hạn là bao lâu để vừa lên website vừa nhập liệu, vừa đo lường và thống kê và vừa ghi nhận lại. Chắc hẳn sẽ tốn khá nhiều thời hạn ( mà thực ra nhiều người thậm chí còn nhiều Công ty phân phối dịch vụ Logistics vẫn làm như vậy hàng ngày ) .
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 .

  • 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, ““) – 6)

tim_e = Left ( bodytxt, InStr ( 1, bodytxt, ” ” ) – 1 )

    bodytxt = Right(bodytxt, Len(bodytxt) – InStr(1, bodytxt, ““) – 6)

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, ““) – 6)

tim_e = Left ( bodytxt, InStr ( 1, bodytxt, ” ” ) – 1 )

    bodytxt = Right(bodytxt, Len(bodytxt) – InStr(1, bodytxt, ““) – 6)

    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 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, ““) – 6)

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

Dịch vụ liên quan

Thủ Dầu Một có gì chơi, có gì vui – Top 8 địa điểm du lịch ấn tượng – Vi Vu Xuyên Việt

Thành phố Thủ Dầu Một thuộc tỉnh Tỉnh Bình Dương là nơi có nhiều khu...

Các Địa Điểm Du Lịch Los Angeles Truyền Cảm Hứng – Klook Blog

Đã đến lúc ghi lại những địa điểm du lịch Los Angeles đầy sức hút,...

Du Lịch Mandalay: Có Gì Ở Thành Phố Lớn Thứ Nhì Myanmar? – Klook Blog

Bạn muốn khám phá những ngôi đền cổ kính, những lịch sử huy hoàng của...

Tham quan du lịch là gì? Các loại hình tham quan du lịch?

Tham quan du lịch là gì ? Các mô hình tham quan du lịch ?...

Điểm đến của du lịch quốc tế trong năm mới

Những “cơn mưa” giải thưởng quốc tế Nếu so với lượng khách quốc tế đạt...

Đặng hoàng giang điểm đến của cuộc đời?

GhimBạn đang đọc: Đặng hoàng giang điểm đến của cuộc đời? 0 Chia SẻBạn đang...
Alternate Text Gọi ngay