Đo khoảng cách giữa 2 địa điểm bằng php code

Có rất nhiều ứng dụng giúp chúng ta đo khoảng cách giữa 2 địa điểm dựa trên giá trị của các tọa độ. Hôm nay mình sẽ không giới thiệu cho các bạn những dịch vụ đó, mà là chia sẻ cho các bạn code bằng PHP. Và qua đoạn code này, các bạn có thể tự tay tạo ứng dụng đó cho chính website hay blog của mình.

hoc thiet ke web | do khoang cach giua 2 diem

Các bạn chỉ việc copy đoạn code sau :

function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2) {
    $theta = $longitude1 - $longitude2;
    $miles = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));
    $miles = acos($miles);
    $miles = rad2deg($miles);
    $miles = $miles * 60 * 1.1515;
    $feet = $miles * 5280;
    $yards = $feet / 3;
    $kilometers = $miles * 1.609344;
    $meters = $kilometers * 1000;
    return compact('miles','feet','yards','kilometers','meters');
}

Và để sử dụng , chúng ta chỉ cần điền vào các tọa độ của từng địa điểm tương ứng là okie :

$point1 = array('lat' => 40.770623, 'long' => -73.964367);
$point2 = array('lat' => 40.758224, 'long' => -73.917404);
$distance = getDistanceBetweenPointsNew($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
foreach ($distance as $unit => $value) {
    echo $unit.': '.number_format($value,4).'
';
}

Và đoạn code trên sẽ trả về các giá trị tương ứng như sau :

miles: 2.6025
feet: 13,741.4350
yards: 4,580.4783
kilometers: 4.1884
meters: 4,188.3894

Để có thể tìm được tọa độ từ 2 địa điểm, các bạn có thể tận dụng Google Geotargetting API.

Đăng nhận xét - bình luận

Đào tạo tin học KEY

CN: Lê Trọng Tấn

Địa chỉ: 203 - 205 Lê Trọng Tấn, P. Sơn Kỳ, Q. Tân Phú, TP. HCM.
Điện thoại: (028) 22 152 521
Website: key.com.vn - Email: [email protected]

CN: Nguyễn Ảnh Thủ

Địa chỉ: 765-767A (Số mới: 558-560A) Nguyễn Ảnh Thủ, P. Tân Chánh Hiệp, Q. 12, TP. HCM.
Điện thoại: (028) 2242 2244
Website: key.com.vn - Email: [email protected]

Trở lên đầu trang