我使用 php 查找经纬度
发件人地址:202 Roat St, Ithaca, NY, United States
纬度:42.466004 长:-76.469566
致地址:344 Elmira Rd, Ithaca, NY, United States
纬度:42.424604 长:-76.514676
使用php获取客户想要搜索的地址的纬度和经度
list($find_lat,$find_long) = $this->findLatLongFromAddress($res_address);
我正在使用此查询
SELECT restaurant_id, restaurant_name, ROUND( ( 3959 * acos( cos( radians( 42.466004 ) ) * cos( radians( restaurant_lat ) ) * cos( radians( restaurant_long ) - radians( - 76.469566 ) ) + sin( radians( 42.466004 ) ) * sin( radians( restaurant_lat ) ) ) ) , 2 ) AS distance, restaurant_delivery_distance
FROM rt_restaurant
WHERE restaurant_lat != ''
AND restaurant_long != ''
我从查询中得到的距离为 3.67 英里。从查询来看这是错误的。
但我正在使用这 2 个地址通过互联网从谷歌地图进行搜索。其距离为 7.2 英里
请帮助我。 提前致谢
最佳答案
这只是因为 Google map 会向您显示旅行距离(例如开车时)。您的 MySQL 查询计算将显示 line of sight距离。
您的查询有效,但结果无法比较。此外,除非您拥有道路数据库并拥有像 Google map 这样的算法,否则您将无法自己计算行程距离。
关于mysql使用纬度和经度计算距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20280509/