距离(直线)
来自: (lat) 48.73233 (long) 2.36618
至: lat() 48.84647 (long) 2.41026
等于一些:13096.16 米
如果我使用 PHP 公式,我会得到正确的结果。
但是当我将相同的 PHP 公式直接翻译成 MySQL 查询时 - 我得到 5904.2757 等。
这是代码:
php:
$distance = atan2(sqrt(pow(sin((($to_lat - $from_lat) * M_PI / 180) / 2), 2) + cos(($from_lat * M_PI / 180)) * cos(($to_lat * M_PI / 180)) * pow(sin((($to_long - $from_long) * M_PI / 180) / 2), 2)), sqrt(1 - (pow(sin((($to_lat - $from_lat) * M_PI / 180) / 2) , 2) + cos(($from_lat * M_PI / 180)) * cos(($to_lat * M_PI / 180)) * pow(sin((($to_long - $from_long) * M_PI / 180) / 2), 2)))) * 2 * $radiusOfEarth;
mysql:
atan2(sqrt(pow(sin(((ap.Latitude - $from_lat) * pi() / 180) / 2), 2) + cos(($from_lat * pi() / 180)) * cos((ap.Latitude * pi() / 180)) * pow(sin(((ap.Longitude - $from_long) * pi() / 180) / 2), 2)), sqrt(1 - (pow(sin(((ap.Latitude - $from_lat) * pi()) / 180) / 2), 2) + cos(($from_lat * pi() / 180)) * cos((ap.Latitude * pi() / 180)) * pow(sin(((ap.Longitude - $from_long) * pi() / 180) / 2), 2)))) * 2 * 6371000 作为距离