mySQL经度和纬度查询x英里半径内的其他行

mySQL经度和纬度查询x英里半径内的其他行,第1张

mySQL经度和纬度查询x英里半径内的其他行

这是我在商店定位器上使用的查询:

SELECt    `id`,    (        6371 *        acos( cos( radians( :lat ) ) * cos( radians( `lat` ) ) * cos(     radians( `long` ) - radians( :long ) ) + sin(radians(:lat)) * sin(radians(`lat`))        )    ) `distance`FROM    `location`HAVINg    `distance` < :distanceORDER BY    `distance`LIMIT    25

:lat
:long
是用户传递的点,其中
lat
long
是存储在数据库中的点。

:distance以英里为单位,在代码的工作版本中,:distance实际上是从10-50英里范围内的下拉列表中拉出

借助joshhendo的解决方案,可以将3959(从地球中心到地面的距离,以英里为单位)更改为6371(将3959英里转换为公里),从而将代码更改为以千米为单位。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4900626.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存