我想在 php 中使用这个公式。我有一个保存了一些纬度和经度值的数据库。
我想通过输入中的某个纬度和经度值来查找从该点到数据库中每个点的所有距离(以公里为单位)。为此,我使用了 googlemaps api 上的公式:
( 6371 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) )
当然在 php 中使用它我用deg2rad
.The 值替换了弧度。值 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" 的输出