[PHP] 2地点の距離を座標から求める

地球は球状のため、2地点の距離を座標から求める際には単純に三平方の定理から2点間の距離の公式を利用するだけではなく、丸みを考慮した計算が必要になります。 国土地理院とかにある距離計算を行う際に用いられているのは、ヒュベニの公式と呼ばれているものであり、phpでは以下のコードの$start_lat、$end_lat、$start_lng、$end_lngに値を代入することで求めたい距離を求めることができます。

//緯度、経度の移動量を計算
$lat_dist = ($start_lat - $end_lat);if($lat_dist<0)$lat_dist=$lat_dist*-1;
$lng_dist = ($start_lng - $end_lng);if($lng_dist<0)$lng_dist=$lng_dist*-1;


//緯度位置における経度量を計算 地球は丸い
$m_lng = 30.9221438 * cos($start_lat / 180 * pi());
if($m_lng<0)$m_lng=$m_lng*-1;

//移動量を計算
$distance = (int)(sqrt(pow(abs($lat_dist / 0.00027778 * 30.9221438), 2) + pow(abs($lng_dist / 0.00027778 * $m_lng), 2)));