以米为单位获取给定半径内以及给定经纬度的纬度和经度

2ekbmq32  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(416)

我试着从给定的纬度和经度得到所有可能的纬度和经度,在一米范围内。下面是我找到的mysql查询。但是下面的一个是以公里为单位的距离。我要米。有人能帮我修改一下查询,这样我就可以直接进入特定的米范围而不是公里范围吗?

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公里,不是米。如何让步?在这个查询中,我不能总是将米转换成公里,因为我的数据是以米为单位的。有人能帮忙吗?

eivnm1vs

eivnm1vs1#

6371是以公里为单位的地球半径。换成米。来自维基百科
地球的平均半径为6371.0088公里(3958.7613英里)。[16]
6371.0088公里=6371008.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

相关问题