この式をphpで使用したいと思います。緯度と経度の値が保存されたデータベースがあります。
入力に緯度と経度の特定の値を使用して、データベース内の各ポイントでこのポイントからのすべての距離(km単位)を見つけたいと思います。これを行うために、私はgooglemapsapiの式を使用しました。
( 6371 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) )
もちろん、phpでそれを使用して、ラジアンをに置き換えましたdeg2rad
。値37、-122は入力の値であり、lat、lngはデータベースの値です。
以下に私のコードがあります。問題は何かがおかしいということですが、私には何がわかりません。もちろん距離の値は間違っています。
//values of latitude and longitute in input (Rome - eur, IT)
$center_lat = "41.8350";
$center_lng = "12.470";
//connection to database. it works
(..)
//to take each value in the database:
$query = "SELECT * FROM Dati";
$result = mysql_query($query);
while ($row = @mysql_fetch_assoc($result)){
$lat=$row['Lat']);
$lng=$row['Lng']);
$distance =( 6371 * acos((cos(deg2rad($center_lat)) ) * (cos(deg2rad($lat))) * (cos(deg2rad($lng) - deg2rad($center_lng)) )+ ((sin(deg2rad($center_lat))) * (sin(deg2rad($lat))))) );
}
たとえば、値の場合:$ lat = 41.9133741000 $ lng = 12.5203944000
distance="4826.9341106926"の出力があります