04/10/2018, 17:49

Đo khoảng cách giữa 2 địa điểm – 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 ...

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.

do-khoang-cach-giua-2-dia-diem-php-code

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.

Chúc các bạn thành công !

Tags: code php code

Chuyên Mục: PHP

Bài viết được đăng bởi webmaster

0