gpt4 book ai didi

mysql - 在距纬度/经度一定距离内查询时出现奇怪的结果

转载 作者:行者123 更新时间:2023-11-29 14:55:35 24 4
gpt4 key购买 nike

我在这里获得了查询帮助,以查找某个点的特定半径(纬度/经度)内的记录。该查询非常适合查找距离实际中心不太近的记录。所以它可以找到 400 英里以内的东西,但不能找到 20 英里内的东西。

我正在使用MySQL。这是查询:

select id , lat , lng , ( 3959 * acos( cos( radians(37) ) * cos( radians( lat ) ) *
cos( radians( lng ) - radians(-122.517349) ) + sin( radians(37.780182) ) * sin( radians( lat ) ) ) ) AS distance FROM my_table HAVING distance < 1000 ORDER BY distance LIMIT 0 , 50

这是一个小数据集:

    lat           lng
| 0.000000 | 0.000000 |
| 37.223465 | -122.090363 |
| 39.320980 | -111.093735 |
| 38.031715 | -84.495132 |
| 37.787144 | -122.493263 |
| 52.975361 | -1.458620 |
| 40.848557 | -111.906883 |
| 40.572498 | -111.859718 |

我的中心起点是旧金山,纬度/经度为 37.787144 , -122.493263

因此无法找到附近的纬度/经度。

谢谢你,亚历克斯

最佳答案

您的 select 语句中有一些硬编码值(37、-122.517349、37.780182)与您的中心点不对应。

关于mysql - 在距纬度/经度一定距离内查询时出现奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4702666/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com