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.
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.