检查一个GPS位置是否在android中另一个GPS位置的特定半径范围内

检查一个GPS位置是否在android中另一个GPS位置的特定半径范围内,android,google-maps,gps,latitude-longitude,Android,Google Maps,Gps,Latitude Longitude,我正在开发一个Android应用程序,它可以获取用户的当前位置,并在地图上显示其他用户的gps位置,该地图以一定的半径落下,比如说20公里 例如,如果我是用户,我希望在地图上看到其他用户的位置,这些用户的位置在距离我位置20公里的半径范围内 我可以保存我的位置和其他用户的位置,并将它们绘制在地图上。我无法确定这些用户是否落在距离我所在位置20公里的半径范围内 我使用谷歌地图Android API v2在地图上绘制位置,并解析以保存GPS位置(纬度和经度坐标) 我在谷歌上搜索解决方案,但徒劳无功。

我正在开发一个Android应用程序,它可以获取用户的当前位置,并在地图上显示其他用户的gps位置,该地图以一定的半径落下,比如说20公里

例如,如果我是用户,我希望在地图上看到其他用户的位置,这些用户的位置在距离我位置20公里的半径范围内

我可以保存我的位置和其他用户的位置,并将它们绘制在地图上。我无法确定这些用户是否落在距离我所在位置20公里的半径范围内

我使用谷歌地图Android API v2在地图上绘制位置,并解析以保存GPS位置(纬度和经度坐标)

我在谷歌上搜索解决方案,但徒劳无功。请任何人提供一个提示、参考或示例代码,说明如何检查一个GPS位置是否在另一个GPS位置的特定半径范围内


任何帮助都将不胜感激。

这很容易。当您将标记添加到地图中时,如果距离,只需获取从该标记到当前位置的距离。首先获取2个位置之间的距离:

float[] distance = new float[1];
Location.distanceBetween(oldPosition.latitude, oldPosition.longitude,
        currentPosition.latitude, currentPosition.longitude, distance);
距离以米为单位

因此,我们必须将我们的设计半径(20公里)以米为单位进行转换,以进行比较

double radiusInMeters = 20.0*1000.0; //1 KM = 1000 Meter
新的我们可以检查当前位置是否在20公里半径范围内,或者不使用

if( distance[0] > radiusInMeters ){
    Toast.makeText(getBaseContext(), 
    "Outside, distance from center: " + distance[0] + " radius: " + radiusInMeters, 
    Toast.LENGTH_LONG).show();
} else {
    Toast.makeText(getBaseContext(), 
    "Inside, distance from center: " + distance[0] + " radius: " + radiusInMeters , 
    Toast.LENGTH_LONG).show();
}

结果用于什么?请您解释一下。@athi09结果变量包含距离。为什么它是浮点[1]?@athi09只是和两个元素的数组谢谢@Enamul,但我已经得到了答案,我也接受了。
if( distance[0] > radiusInMeters ){
    Toast.makeText(getBaseContext(), 
    "Outside, distance from center: " + distance[0] + " radius: " + radiusInMeters, 
    Toast.LENGTH_LONG).show();
} else {
    Toast.makeText(getBaseContext(), 
    "Inside, distance from center: " + distance[0] + " radius: " + radiusInMeters , 
    Toast.LENGTH_LONG).show();
}