Android纬度经度与半径

时间:2012-08-19 06:13:37

标签: android sqlite latitude-longitude

我有一个应用程序,其中用户标记位置,如家庭,办公室等。这些位置的纬度和经度数据存储在sqlite DB中。我定期检查用户的当前位置。我想检查用户当前位置是否落在标记位置的半径内。

例如,家庭的用户坐标是(a,b)如何找到当前坐标(m,n)是否在半径0.5公里的家中。

3 个答案:

答案 0 :(得分:3)

您可以使用Location.distanceTo()Location.distanceBetween()方法测量两个位置之间的距离。如果计算的距离小于500米,则低于所需半径。希望这会有所帮助。

答案 1 :(得分:1)

对于两个坐标之间的距离测量,您可以在此处找到解决方案:

Calculating distance between two geographic locations

您还可以进行数据库查询以按距离对记录进行排序: http://forums.phpfreaks.com/index.php?topic=175951.0

答案 2 :(得分:0)

或者,老式的方式:radius = sqrt((m-a)^ 2 +(n-b)^ 2)假设平地球模型。一旦你的距离非常大,这个公式就不再适用了