Tính khoảng phương pháp theo trục đường chim bay và thực tại trong Excel, Google Sheets

có hồ hết yêu cầu về tính khoảng cách theo tuyến đường chim bay và thực tiễn, từ những hộ buôn bán nhỏ cho tới những doanh nghiệp giao vận lớn, hệ thống bưu cục, hay thuần tuý là nhu cầu tư nhân để tra cứu… không những thế, ko phải ai cũng biết bí quyết cũng như không mang được lực lượng lập trình để vun đắp nên hệ thống tính toán. Dù vậy, ta hoàn có thể tự làm một biện pháp đơn giản dùng Google Sheets hoặc Excel. Học Excel Online sẽ chỉ dẫn bạn làm điều ấy qua bài viết này.

Tính khoảng phương pháp theo con đường chim bay và thực tại

Tính toán khoảng bí quyết theo tuyến đường chim bay giữa hai điểm bằng công thức Haversine

một công thức không quá phức tạp được dùng để tính khoảng cách thức theo đường chim bay giữa 2 tọa độ mà ta sở hữu thể tiêu dùng là công thức Haversine. Công thức được mô tả:

Công thức Haversine

một bí quyết tổng quát, ta viết lại công thức này trong Excel như sau:

=6371*2*ASIN(SQRT(POWER(SIN(PI()/180*(lat2-lat1)/2),2)+COS(PI()/180*lat1)*COS(PI()/180*lat2)*POWER(SIN(PI()/180*(lng2-lng1)/2),2)))

Trong đó:

6371 là bán kính trái đất (đơn vị: Km)

lat1, lat2: Vĩ độ lần lượt của tọa độ một (lattitude 1) và tọa độ hai (lattitude 2)

lng1, lng2: kinh độ lần lượt của tọa độ một (longitude 1) và tọa độ hai (longitude 2)

tỉ dụ, ta tính khoảng cách với 2 điểm với tọa độ 1 (20.98705, 105.8138) và tọa độ 2 (21.00433, 105.8155)
áp dụng công thức ta có:

=6371*2*ASIN(SQRT(POWER(SIN(PI()/180*(21.00433-20.98705)/2),2)+COS(PI()/180*20.98705)*COS(PI()/180*21.00433)*POWER(SIN(PI()/180*(105.8155-105.8138)/2),2)))

=1.929536024

. Anh chị với thể thử tra trên google map để rà soát lại kết quả.

không những thế, ta sở hữu thể tạo một UDF bằng VBA có tên Haversine cho mục đích trên:

Public Function Haversine(Lat1 As Variant, Lon1 As Variant, Lat2 As Variant, Lon2 As Variant) Dim R As Integer, dlon As Variant, dlat As Variant, Rad1 As Variant Dim a As Variant, c As Variant, d As Variant, Rad2 As VariantR = 6371 dlon = Excel.WorksheetFunction.Radians(Lon2 - Lon1) dlat = Excel.WorksheetFunction.Radians(Lat2 - Lat1) Rad1 = Excel.WorksheetFunction.Radians(Lat1) Rad2 = Excel.WorksheetFunction.Radians(Lat2) a = Sin(dlat / 2) * Sin(dlat / 2) + Cos(Rad1) * Cos(Rad2) * Sin(dlon / 2) * Sin(dlon / 2) c = hai * Excel.WorksheetFunction.Asin(Sqr(a)) d = R * c Haversine = d End Function

Ta dùng công thức như sau:

=Haversine(20.98705, 105.8138, 21.00433, 105.8155)

Đối sở hữu Google sheets, ta cũng có thể viết 1 công thức tương tự trên chính trang tính, hoặc bằng Google Apps Script để khiến cho việc này:

function haversine(lat1, lng1, lat2, lng2)  const R = 6371 var dlon = Math.PI/180*(lng2 - lng1) var dlat = Math.PI/180*(lat2 - lat1) var ra1 = Math.PI/180*lat1 var ra2 = Math.PI/180*lat2 var a = Math.sin(dlat / 2) * Math.sin(dlat / 2) + Math.cos(ra1) * Math.cos(ra2) * Math.sin(dlon / 2) * Math.sin(dlon / 2) var c = 2 * Math.asin(Math.sqrt(a)) var d = R * c return d 

sở hữu công thức trên, ta sở hữu thể tính được khoảng bí quyết giữa hai tọa độ. Lưu ý, tọa độ ở đây là tọa độ thập phân – Decimal degrees. Trong trường hợp ta sử dụng tọa độ đi kèm khoảnh khắc – Degrees Minutes Seconds, ta cần thêm một bước chuyển tọa độ về dạng thập phân. Ví dụ: 72*17'55 sẽ cần được chuyển về 72.29861.

Ngoài công thức Haversine, bạn sở hữu thể tham khảo dùng một công thức khác có phần phức tạp hơn là công thức Vincenty.

Tính toán quãng đường vận động thực tại giữa 2 tọa độ dùng API

"Đi từ nhà lên bờ toàn bộ bao lăm km?" – khi hỏi thắc mắc này, chắc hẳn chúng ta ko mong chờ 1 đáp án kiểu như "3km theo tuyến đường chim bay" phải ko. Trong trường hợp này, gần như mọi người sẽ tiêu dùng các công cụ bản đồ, chẳng hạn như Google Maps, để tra cứu quãng trục đường và đề cập ra quãng con đường phải chăng nhất được gợi ý.

Khoảng 7.5km

như vậy tình huống trên, giả thử chúng ta sở hữu 2 liên hệ (hoặc phổ thông hơn) lưu trong Excel/Google Sheets và cần biết quãng các con phố giữa hai địa chỉ ấy thì sao?

Trong trường hợp này, mang phổ quát bên đã cung ứng những API để ta tiện dụng tra cứu dữ liệu liên quan đến quãng các con phố mà ta với thể tìm kiếm ưng chuẩn từ khóa "distance matrix". Ở đây Học Excel Online sẽ tiêu dùng Bing Maps API để lấy dữ liệu về quãng đường từ tọa độ 20.98705, 105.8138 tới 21.00433, 105.8155. những bước tiến hành sẽ được nói dưới đây.

Lấy Bing Maps Key

Bước đầu tiên đó là ta cần với một "mã cá nhân". Để khiến điều này, ta tróc nã cập địa chỉ: https://www.bingmapsportal.com/ và đăng nhập bằng account Microsoft (hoặc đăng kí ví như chưa có).

Sau lúc đã đăng nhập thành công, tróc nã cập vào My account và chọn My keys:

Bước tiếp theo, ta chọn "Click here lớn create a new key" sau đấy chọn "Show key" để hiển thị mã. Lưu mã đó lại.

khi đã với mã, bước tiếp theo ta sẽ tiến hành dùng Bing Maps API để lấy dữ liệu về quãng tuyến phố.

ngày nay, ta sẽ ngó qua một tẹo về API, cụ thể ở đây trong trường hợp này ta sẽ tiêu dùng Distance Matrix tại link này.

Url ta dùng sẽ có dạng:

https://dev.virtualearth.net/REST/v1/Routes/DistanceMatrix?origins=lat1,lng1&destinations=lat2,lng2&travelMode=driving&key=BingMapsAPIKey

Trong đó:

lat1, lng1, lat2, lng2: tuần tự là vĩ độ và độ kinh của tọa độ một và tọa độ hai

travelMode=driving: loại hình đi lại, như vậy như chọn lái xe hoặc đi bộ khi bạn thao tác trên Google Map. Mục này có thể bỏ qua.

BingMapsAPIKey: key bạn vừa lấy được ở portal trên

Sau khi điền rất nhiều thông báo vào Url trên mang tọa độ 20.98705, 105.813821.00433, 105.8155 ta sẽ nhận được thông tin hiển thị như sau:

Ta quan tâm tới loại "TravelDistance". Đây là quãng trục đường (đơn vị km) giữa 2 tọa độ. Lúc rà soát lại bằng Bing Maps, ta với kết quả như vậy.

công tác tiếp theo ta cần phải khiến cho đó là lấy được dữ liệu từ TravelDistance về.

sử dụng Google Apps Script để thu thập dữ liệu về quãng tuyến phố

Bạn cần có kiến thức căn bản của Google Apps Script để hiểu cách thức hoạt động. Tham gia ngay khóa học GAS101: Tự động hóa công việc sở hữu Google Apps Script

Đoạn code sau sẽ giúp bạn làm cho điều này:

function getlocation(lat1,lng1,lat2,lng2) var link = 'https://dev.virtualearth.net/REST/v1/Routes/DistanceMatrix?' var key = 'điền key của bạn vào đây' var response = UrlFetchApp.fetch(link + 'origins=' + lat1 + ',' + lng1 + '&destinations=' + lat2 + ',' + lng2 + '&travelMode=driving' + '&key=' + key); var json = response.getContentText(); var parse = JSON.parse(json); var result = parse.resourceSets[0].resources[0].results[0].travelDistance; return result 

Sau lúc đã lưu và cấp quyền, ta mở lại Google Sheet và viết cú pháp: =getlocation(20.98705, 105.8138, 21.00433, 105.8155) để lấy ra quãng trục đường giữa 2 tọa độ

Ta cũng hoàn toàn có thể làm cho được mang VBA trong Excel. Chỉ dẫn chi tiết cho phần này đã được giới thiệu trong khóa học

VBA201: Lập trình VBA nâng cao trong Excel,

Trên đây là rất nhiều hướng dẫn về cách tính khoảng cách thức giữa hai điểm đơn thuần mà từ đó chúng ta mang thể mở mang ra cho rộng rãi trường hợp, chẳng hạn như để tính toán tổng quãng các con phố một shipper đi trong ngày, thời kì đi hay thậm chí với thể trực quan hóa dữ liệu thành 1 bản đồ tuyến phố đi nữa. Các bạn cũng đừng quên ghẹ thăm trang web https://dtnguyen.business/ để tham khảo những khóa học mới nhất nhé.

Share on Google Plus
    Blogger Comment
    Facebook Comment

0 nhận xét:

Đăng nhận xét