Tính khoảng cách giữa 2 điểm bằng code PHP

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.

Tọa độ, đo khoảng cách, khoảng cách giữa hai điểm, Google Geotargetting API, khoảng cách

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).'<br />';

}

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.

 

 HỖ TRỢ TRỰC TUYẾN