phpは2つの緯度間の距離を計算する
639 ワード
/**
* 2 ,
* @param $lat1
* @param $lon1
* @param $lat2
* @param $lon2
* @param $radius
* @return float
*/
function distance($lat1, $lon1, $lat2, $lon2, $radius = 6378140)
{
$rad = floatval(M_PI / 180.0);
$lat1 = floatval($lat1) * $rad;
$lon1 = floatval($lon1) * $rad;
$lat2 = floatval($lat2) * $rad;
$lon2 = floatval($lon2) * $rad;
$theta = $lon2 - $lon1;
$dist = acos(sin($lat1) * sin($lat2) +
cos($lat1) * cos($lat2) * cos($theta)
);
if ($dist < 0) {
$dist += M_PI;
}
$dist = ceil($dist * $radius);
return $dist;
}