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é!
Mục lục nội dung
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.
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).
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.
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
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.
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)); }.
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).
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.”
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.