Phương pháp tính khoảng cách giữa 2 tọa độ GPS Haversine

Haversine là một công thức tính khoảng cách giữa 2 điểm tọa độ được sử dụng nhiều hiện nay. Để sử dụng phương pháp này, bạn cần phải xác định được điểm A và B trên mặt phẳng trái đất. Vậy cách tính khoảng cách giữa 2 tọa độ GPS trong Haversine như thế nào? Hãy cùng Đo Vẽ Nhanh đi tìm lời giải ngay dưới bài viết này nhé!

Cách xác định và lấy tọa độ GPS trên Google Maps

Vĩ độ (ký hiệu bằng chữ cái phi () trong bảng chữ cái Hy Lạp) là một giá trị dùng để xác định vị trí của một điểm trên bề mặt Trái Đất. Còn vĩ tuyến là những đường nằm ngang được chỉ ra trên bản đồ chạy dọc theo hướng Đông – Tây.

Bạn cần phải xác định và lấy tọa độ trước khi tính khoảng cách giữa 2 điểm
Bạn cần phải xác định và lấy tọa độ trước khi tính khoảng cách giữa 2 điểm

Về mặt toán học thì vĩ độ là giá trị góc được tính bằng độ (ký hiệu °). Các đơn vị nhỏ hơn (như phút, giây v.v) nằm trong khoảng 0° ở xích đạo tới 90° ở hai cực (90° vĩ bắc (Bắc Cực) hay 90° vĩ nam (Nam cực) của Trái Đất).

Để tính khoảng cách giữa 2 tọa độ GPS trước tiên bạn cần xác định cũng như lấy được tọa độ các điểm. Người dùng có thể tìm bằng cách thông qua ứng dụng Google Map trên điện thoại di động hoặc máy tính. Cách thực hiện chi tiết cụ thể như sau:

Sử dụng trên máy tính

Khi xác định điểm tọa độ GPS trên máy tính bạn cần:

Bước 1: Trước tiên, người dùng cần truy cập vào ứng dụng Google Maps trên máy tính của mình.

Bước 2: Tiếp đến, bạn chọn một vị trí bất kỳ trên bản đồ sẽ thấy tọa độ GPS hiển thị ở phía cuối màn hình. Người dùng có thể di chuyển chuột hoặc chọn vào dấu “+” hoặc “-” ở góc dưới bên phải màn hình để thu phóng.

Bước 3: Sau đó, bạn click vào vị trí tọa độ để mở bảng điều khiển.

Tại đây, người dùng có thể xem được vị trí tọa độ ở 2 dạng: Độ – Phút/giây (DMS), 9°48’47.0″N 106°25’57.2″E và Độ – Thập phân (DD), 9.813050, 106.432541, địa chỉ tọa độ chi tiết…

Bước 4: Cuối cùng, bạn chỉ cần nhập tọa độ vào thanh tìm kiếm trên Google map để tìm vị trí cụ thể mình muốn. Người dùng có thể nhập ở cả 3 định dạng là: Độ, phút và giây (DMS), Độ và phút thập phân (DMM), Độ thập phân (DD).

Xác định điểm tọa độ GPS trên máy tính khá đơn giản
Xác định điểm tọa độ GPS trên máy tính khá đơn giản

Google Maps điện thoại

Cách lấy tọa độ điểm GPS từ Google Map được thực hiện trên điện thoại như sau:

Bước 1: Bạn tiến hành mở ứng dụng Google Maps trên điện thoại của mình ra (nếu chưa có thì người dùng tải Google Maps về máy)

Bước 2: Tiếp theo, bạn chọn một vị trí mà mình muốn lấy và nhấn giữ trên màn hình tới khi xuất hiện chấm đỏ. Lúc này, người dùng sẽ thấy thông số tọa độ xuất hiện ngay trên thanh tìm kiếm ở trên cùng màn hình.

Bước 3: Sau đó, bạn click chọn vào thông tin bên dưới màn hình để xem địa chỉ cụ thể của vị trí này.

Bước 4: Cuối cùng, người dùng có thể nhập tọa độ vào thanh tìm kiếm trên Google Maps để vị trí tọa độ mình cần.

Lấy tọa độ điểm GPS từ Google Map trên điện thoại để đo khoảng cách
Lấy tọa độ điểm GPS từ Google Map trên điện thoại để đo khoảng cách

Xem thêm:

Hệ tọa độ Oxyz và ứng dụng trong đo đạc địa chính

Hệ trục tọa độ Oxy và những điều cần biết

Gốc tọa độ là gì và ứng dụng thực tiễn của tọa độ địa lý

Công thức tính khoảng cách tọa độ trong Haversine

Khoảng cách độ cong của Trái đất được tính bằng sự kết hợp giữa công thức Haversine với phương trình lượng giác. Do đó, khi tính khoảng cách giữa 2 tọa độ GPS ở địa điểm khác nhau trên Trái Đất, một đường thẳng thực chất là đường cung.

Tính khoảng cách tọa độ trong Haversine được xem là phương pháp dễ nhất
Tính khoảng cách tọa độ trong Haversine được xem là phương pháp dễ nhất

PHP: Tính khoảng cách 2 điểm vĩ độ và kinh độ

Đây là công thức PHP dùng để tính khoảng cách giữa hai điểm (cùng với chuyển đổi Mile so với Kilômét) thường làm tròn đến hai chữ số thập phân.

function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2, $unit = ‘miles’) { $theta = $longitude1 – $longitude2; $distance = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta))); $distance = acos($distance); $distance = rad2deg($distance); $distance = $distance * 60 * 1.1515; switch($unit) { case ‘miles’: break; case ‘kilometers’ : $distance = $distance * 1.609344; } return (round($distance,2)); }.

PHP giúp bạn tính được khoảng cách 2 điểm vĩ độ và kinh độ
PHP giúp bạn tính được khoảng cách 2 điểm vĩ độ và kinh độ

SQL: Lấy tất cả số liệu có cùng phạm vi By Tính, trong Miles và sử dụng Latitude – Longitude.

Bạn cũng có thể sử dụng SQL để thực hiện một phép tính. Từ đó, tìm tất cả các bản ghi trong một khoảng cách cụ thể. Người dùng cần phải truy vấn để lấy tất cả các bản ghi trong một khoảng cách bằng việc tính khoảng cách giữa 2 tọa độ GPS (vĩ độ và kinh độ) là:

$query = “SELECT *, (((acos(sin((“.$latitude.”*pi()/180)) * sin((`latitude`*pi()/180)) + cos((“.$latitude.”*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((“.$longitude.”- `longitude`)*pi()/180)))) * 180/pi()) * 60 * 1.1515) as distance FROM “Table” WHERE distance “.$distance.”

Bạn sẽ phải tùy chỉnh các thông số sau: Kinh độ, Vĩ độ, Khoảng cách, Bàn (là bảng thay thế tên bảng của mình).

Bạn có thể sử dụng SQL để thực hiện phép tính khoảng cách dễ dàng
Bạn có thể sử dụng SQL để thực hiện phép tính khoảng cách dễ dàng

SQL: Truy xuất tất cả các bản ghi trong cùng phạm vi bằng cách tính khoảng cách theo Km và sử dụng vĩ độ và kinh độ

Truy vấn SQL sử dụng Km trong MySQL cụ thể như sau:

$query = “SELECT *, (((acos(sin((“.$latitude.”*pi()/180)) * sin((`latitude`*pi()/180)) + cos((“.$latitude.”*pi()/180)) * cos((`latitude`*pi()/180)) * cos(((“.$longitude.”- `longitude`) * pi()/180)))) * 180/pi()) * 60 * 1.1515 * 1.609344) as distance FROM “Table” WHERE distance <-“.$distance.”

Có thể bạn quan tâm:

Cách chuyển tọa độ VN2000 sang WGS-84 và ngược lại

Cách chuyển tọa độ VN2000 sang Google Map dễ dàng nhất

Cách cài đặt phần mềm xác định tọa độ VN2000 cho Android

Trên đây là toàn bộ những thông về phương pháp tính khoảng cách giữa 2 tọa độ GPS. Mong rằng, người dùng có thể áp dụng thành công trong việc lập bản đồ với nhiều địa điểm trên toàn thế giới.