我有一个应用程序,用户可以在其中标记家庭、办公室等位置。这些位置的纬度和经度数据存储在 sqlite DB 中。我定期检查用户的当前位置。我想检查用户当前位置是否落在标记位置的半径内。
例如,用户家的坐标是 (a,b) 如何查找当前坐标 (m,n) 是否落在家的 0.5 公里半径内。
我有一个应用程序,用户可以在其中标记家庭、办公室等位置。这些位置的纬度和经度数据存储在 sqlite DB 中。我定期检查用户的当前位置。我想检查用户当前位置是否落在标记位置的半径内。
例如,用户家的坐标是 (a,b) 如何查找当前坐标 (m,n) 是否落在家的 0.5 公里半径内。
您可以使用Location.distanceTo()
orLocation.distanceBetween()
方法测量两个位置之间的距离。如果计算出的距离小于 500m,则在规定的半径范围内。希望这可以帮助。
对于两个坐标之间的距离测量,您可以在此处找到解决方案:
您还可以进行数据库查询以按距离对记录进行排序: http: //forums.phpfreaks.com/index.php?topic=175951.0
或者,老式的方法:半径 = sqrt( (ma)^2 + (nb)^2 ) 假设平坦的地球模型。一旦你的距离非常大,这个公式就不再适用