获取距离地理点 100 米的位置列表

Get a list of locations 100 meters far from a geo point

我的数据库中有一个地点列表,它们都有纬度/经度。

在我的应用程序中,我获得了用户位置,我想获取距离他 100 米的所有位置。

为此,我在他的纬度和经度上加了 100 米

我试过这样做:

 double radius = 100; // 100 meters

double limitLatitudeNorth = latitude + radius;
double limitLatitudeSouth = latitude - radius;

double limitLongitudeWest = longitude - radius;
double limitLongitudeEast = longitude + radius;

StringBuffer query = "latitude < '" + limitLatitudeNorth + "' AND latitude > '" + limitLatitudeSouth + "' AND longitude < '" + limitLongitudeWest + "' AND longitude > '" + limitLongitudeEast + "'";

当然,纬度和经度不是米,所以我不知道如何求和。

公式是什么?我听说这取决于在地球上的位置。假设我在法国。

很多应用程序都这样做(即:LINE)我以为我会很容易找到一个代码,但我没有:(

有什么想法吗?

您需要检查数据库中的一点与用户当前位置之间的距离。您可以使用 Location.distanceBetween()。 方法 returns 包含距离、方位角等的结果数组。两个位置之间的距离始终在结果 [0] 中。

我写了一张小支票。它会计算距离,如果距离小于您的半径,则 returns 为真。

private boolean checkDistance(double currentLocLat, double currentLocLong, double placeLocLat, double placeLocLong) {
    float radius =  100F;
    float[] results = new float[3];
    Location.distanceBetween(currentLocLat, currentLocLong, placeLocLat, placeLocLong, results);
    return (results[0] <= radius);
}