以前紹介した「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,」です。
ありがとうございます!