获得给定半径范围内的纬度和经度,以及给定的经度和纬度(以米为单位)

时间:2018-05-16 11:16:16

标签: javascript mysql angular google-maps google-maps-api-3

我试图从给定的纬度和经度获得所有可能的纬度和经度。以下是我发现的MySQL查询。但是下面的一个是检查KM中的距离。我想用米。有人可以帮助如何修改查询,以便我直接在某些米内而不是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而不是米。如何给米?我无法始终在此查询中将米转换为KM,因为我的数据以米为单位。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

6371是以千米为单位的地球半径。将其更改为米。 来自wikipedia

  

对于地球,平均半径为6,371.0088公里(3,958.7613英里)。[16]

6,371.0088 km = 6,371,008.8 m

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