mysql使用纬度和经度计算距离

标签 mysql

我使用 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/

相关文章:

PHP Mysql IF 语句

MySQL 与 PDO

MYSQL 对单个表计算唯一行,即使计数为零

mysql - Liquibase mysql 存储换行符

php - mysql查询通过根据日期添加总和来从2个表中获取结果

MySQL JOIN 显示所需的输出

MySQL 过程创建表语句语法错误

php - 如何从 SQL 查询中获取整数输出

mysql - 在mysql中导入日期

mysql - 是否可以更新 information_schema 表以便将前导文本添加到列名中?