Google Map API v3で2点間の距離を算出する方法(PHP)

スポンサーリンク

以前紹介した「Google Map API v3で距離を算出する方法(JavaScript)」のPHP版です。

APIを使うと自分はプログラムできるんじゃない?と勘違いしそうになりますね。危険です。

緯度経度情報があれば、円周率絡みの計算だけでできるなんて思いもしなかったです。
思い返すと、地球は丸いんだった。なんとなく納得。

famous on google maps?
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,」です。
ありがとうございます!