我试图从给定的纬度和经度获取一些米范围内的所有可能的纬度和经度。以下是我找到的MySQL查询。但下一个是以 KM 为单位检查距离。我想要以米为单位。有人可以帮助如何修改查询,以便我直接在某些米内而不是公里内吗?
SELECT id, location_name,
(6371 * acos( cos( radians(@myLat) ) * cos( radians(latitude) ) * cos( radians(longitude) - radians(@myLng)) + sin(radians(@myLat)) * sin(radians(latitude)) )) as distance FROM sample.locations
HAVING distance <= 50
这里的 50 是公里而不是米。如何以米为单位?我不能总是在此查询中将米转换为 KM,因为我的数据以米为单位。有人可以帮忙吗?
最佳答案
6371 是以公里为单位的地球半径。将其更改为米。 来自 wikipedia
For Earth, the mean radius is 6,371.0088 km (3,958.7613 mi).[16]
6,371.0088 公里 = 6,371,008.8 米
SELECT id, location_name,
(6371008.8 * acos( cos( radians(@myLat) ) * cos( radians(latitude) ) * cos( radians(longitude) - radians(@myLng)) + sin(radians(@myLat)) * sin(radians(latitude)) )) as distance FROM sample.locations
HAVING distance <= 50
关于javascript - 获取给定半径内以及给定纬度和经度(以米为单位)的纬度和经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50369466/