NHANWEB

How to: tính khoảng cách giữa 2 điểm sử dụng kinh độ, vĩ độ trong PHP

Một số mặt hàng của Adayroi được phục vụ hạn chế theo khu vựcMột số mặt hàng của Adayroi được phục vụ hạn chế theo khu vực

Một số mặt hàng của Adayroi được phục vụ hạn chế theo khu vực

Mình đã từng có bài viết về chủ đề này trước đây, nhưng sử dụng Google Map API để tính khoảng cách từ điểm A đến điểm B. Lần này chúng ta sử dụng PHP để tính khoảng cách từ một điểm đến điểm còn lại – cũng sử dụng kinh độ và vĩ độ như Google Map.

Công thức tính khoảng cách Haversine

Vấn đề tính khoảng cách từ điểm A đến điểm B có thể được giải quyết bằng công thức Haversine. Để áp dụng được công thức này, chúng ta cần có vị trí điểm A và điểm B trên bề mặt trái đất.

Sau đó, bạn cần chuyển đổi kinh độ và vĩ độ tương ứng từ đơn vị đô là độ sang đơn vị đo radian.

Hãy xem công thức cơ sở của phép đổi đơn vị này:

Latitude in Radians= (Latitude /180) pi radians
=(Latitude * 0.01746031) radians
Longitude in Radians= (Longitude /180) pi radians
=(Longitude * 0.01746031) radians

Ngoài ra, chúng ta có bán kính của trái đất là 3,936 miles, tương đương với 6.378 km. Như vậy , công thức tính khoảng cách giữa 2 điểm sẽ là:

Distance= [6378 * acos((sin(latitude1) * sin(latitude2)) + cos(latitude1) * cos(latitude2) * cos(longitude2 – longitude1))] ở kilomet.

Nếu bạn muốn tính theo đơn vị là mile, công thức sẽ là:

Distance= [3936 * acos((sin(latitude1) * sin(latitude2)) + cos(latitude1) * cos(latitude2) * cos(longitude2 – longitude1))] ở kilomet.

Bây giờ, chúng ta sẽ đưa công thức này vào PHP để tính được khoảng cách giữa 2 điểm A và B dựa trên kinh độ và vĩ độ.

The distance between two places using latitude and longitude in PHP

Cùng xem đoạn mã biểu diễn công thức Haversine đã nói ở trên nhé.


Output mình sẽ nhận được:

Distance:7748.9344580629 miles OR 12558.156280765 kilometers

Exit mobile version