以前紹介した「Google Map API v3で距離を算出する方法(JavaScript)」のPHP版です。
APIを使うと自分はプログラムできるんじゃない?と勘違いしそうになりますね。危険です。
緯度経度情報があれば、円周率絡みの計算だけでできるなんて思いもしなかったです。
思い返すと、地球は丸いんだった。なんとなく納得。

famous on google maps? / activefree
このページの目次
ソースコード
PHPでのソースコードはこちらです。
function getPointsDistance($lat1, $lng1, $lat2, $lng2){
$pi1 = pi();
$lat1 = $lat1*$pi1/180;
$lng1 = $lng1*$pi1/180;
$lat2 = $lat2*$pi1/180;
$lng2 = $lng2*$pi1/180;
$deg = sin($lat1)*sin($lat2) + cos($lat1)*cos($lat2)*cos($lng2-$lng1);
return round(6378140*(atan2(-$deg,sqrt(-$deg*$deg+1))+$pi1/2), 0);
}
ソースコード解説
2点間の距離を求める関数です。
$lat1, $lng1に1つ目の緯度と経度を入れます。
$lat2, $lng2に2つ目の緯度と経度を入れます。
これをやれば勝手に計算してくれます。
中の処理はややこしすぎて訳がわかりませんw
最後は小数点を四捨五入してメートルで返しています。
参考にしたサイトは「2点間の距離 (GoogleMaps API3用に) | kuwattel,」です。
ありがとうございます!






