需要一个经纬度位置周围的半径



所以我得到了一个FQL查询,得到了一个人的纬度和经度。

例如:纬度:51.21921589999990000和经度:4.402881799999932000

现在这是一个位置,我需要像所有事件一样,在这些坐标周围50000米的半径内。所以我得到了我的FQl查询:

WHERE uid1 = me() LIMIT 500 ))  AND start_time>'" + startTime + "' 
    AND start_time<'" + endTime + "' AND venue.latitude < "NEED" 
    AND venue.latitude > "NEED" and venue.longitude < "NEED" 
    AND venue.longitude > "NEED" 
ORDER BY attending_count DESC 
LIMIT 25

在任何有需要的地方,我都需要输入坐标,这样我就可以得到这个人所在位置的50000米半径。我该如何计算?

一度纬度为111.13公里。

经度为111.32公里*cos(纬度)。

计算余弦时,不要忘记将纬度转换为弧度。此外,我想你会意识到,使用你正在使用的FQL,你实际上得到的是一个正方形,而不是圆形。

把所有这些放在一起,你可以说两点之间的南北距离(以公里为单位)是(纬度差)*111.13,东西距离是(经度差)*111.32*cos(纬度以弧度为单位)。为了确保距离小于50km,可以使用毕达哥拉斯定理得到条件

((difference in latitude) * 111.13)^2 + (difference in longitude * 111.32 * cos(latitude in radians))^2 < 2500

我不知道FQL是否有三角函数。如果没有,你就必须计算出FQL之外的余弦,然后相应地构建FQL。

最新更新