Tính khoảng cách giữa 2 tọa độ gps

-

Mình đã có lần có nội dung bài viết về chủ đề này trước đây, nhưng thực hiện Google maps API để tính khoảng cách từ điểm A tới điểm B. Lần này họ sử dụng PHP nhằm tính khoảng cách từ một điểm đến chọn lựa điểm sót lại – cũng áp dụng kinh độ và vĩ độ như Google Map.

Bạn đang xem: Tính khoảng cách giữa 2 tọa độ gps

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 xử lý bằng phương pháp Haversine. Để vận dụng được cách làm này, bọn họ cần tất cả vị trí điểm A với điểm B trên bề mặt trái đất.

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

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

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

Ngoài ra, chúng ta có nửa đường kính của trái khu đất là 3,936 miles, tương tự với 6.378 km. Bởi 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))> sinh sống kilomet.

Xem thêm: Lời Bài Hát Mệnh Lệnh Hoa Hồng ), Mệnh Lệnh Hoa Hồng

Nếu bạn có nhu cầu tính theo đơn vị là mile, bí quyết sẽ là:

Distance= <3936 * acos((sin(latitude1) * sin(latitude2)) + cos(latitude1) * cos(latitude2) * cos(longitude2 – longitude1))> sinh hoạt kilomet.

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

The distance between two places using latitude & longitude in PHP

Cùng coi đoạn mã trình diễn công thức Haversine đã nhắc tới ở bên trên nhé.


// latitude and longitude of Two Points $latitude1 = 19.017656 ; $longitude1 = 72.856178; $latitude2 = 40.7127; $longitude2 = -74.0059; //Converting to lớn radians $longi1 = deg2rad($longitude1); $longi2 = deg2rad($longitude2); $lati1 = deg2rad($latitude1); $lati2 = deg2rad($latitude2); //Haversine Formula $difflong = $longi2 - $longi1; $difflat = $lati2 - $lati1; $val = pow(sin($difflat/2),2)+cos($lati1)*cos($lati2)*pow(sin($difflong/2),2); $res1 =3936* (2 * asin(sqrt($val))); //for miles $res2 =6378.8 * (2 * asin(sqrt($val))); //for kilometers //display distance in miles print_r("Distance:".$res1." "."miles "."OR ".$res2." "." kilometers"); ?>


Output mình vẫn nhận được:

Distance:7748.9344580629 miles OR 12558.156280765 kilometers


Filed Under: PHP Tutorial Tagged With: định vị bằng Google Map, google map, tính khoảng cách

*
*
*
Mình viết cái blog này từ thời mình sản phẩm U2x, giờ là 3Ux cùng sắp cách sang U4x. Nói kết luận là mình già rồi mấy bạn teen ơi! vị vậy mấy bạn đọc để tham khảo, đọc để share và hiểu để học hỏi là bao gồm chứ đừng có chửi thề, đừng có gây nên war nha. Mình già - mình ngại va va lắm... Nếu bạn cảm thấy nội dung bài viết có các điểm không thiết yếu xác, hãy bình luận và share để tôi còn được học hỏi từ các góp ý của bạn. Read More…


*

Core web Vitals – Hiểu làm thế nào cho đúng ?


Mình tính câu hỏi về sự việc này hơn nửa tháng ni nhưng đúng khi em bé bỏng nhà bản thân sinh bắt buộc cứ ngồi lên đồ vật gõ được vài chữ là “người đẹp” công ty mình lại oe oe… và tụt mood mất tiêu nên lại ko viết nữa. Cố gắng lắm hiện nay ráng viết vài mẫu <…>


*

Core web Vitals report thay thế sửa chữa Speed report trong Google search Console và những tin tức bạn phải biết


Nếu bạn đang tìm kiếm báo cáo tốc độ trong Google search Console thì tin mới cho bạn là nó đang được thay tên thành chip core Web Vitals report (Báo cáo chỉ số cần thiết về trang web) rồi nhé !


*

Tất tần tật về Lazy Loading Images


Lazy loading images (Tải lười biếng) là 1 trong mẫu kiến thiết thường được thực hiện trong lập trình laptop để trì hoãn việc khởi tạo thành một đối tượng cho đến thời vấn đề cần thiết. Lazy loading không số đông giúp tăng hiệu xuất và thời gian tải web kết quả mà còn góp thêm phần giúp <…>