Android 将当前位置与50英里内位置的数据库列表相匹配

Android 将当前位置与50英里内位置的数据库列表相匹配,android,sqlite,android-studio,location,android-geofence,Android,Sqlite,Android Studio,Location,Android Geofence,我正在尝试在应用程序上工作,其中我有数据库中的位置列表,我想检查数据库中的哪个位置在几英里(如20英里)内靠近我的当前位置,该列表会自动使用优化的位置刷新,然后向用户发送通知,告知您已输入此位置 我对此进行了搜索,并了解了地理围栏,但我没有正确地理解它。。所以请建议我应该如何开始工作。。。任何示例、代码或链接都将非常有用 提前感谢我使用了一个函数distance to来计算to位置之间的距离 我把它编码为100米,你们需要改变你们想要比较的距离值 private boolean isMarker

我正在尝试在应用程序上工作,其中我有数据库中的位置列表,我想检查数据库中的哪个位置在几英里(如20英里)内靠近我的当前位置,该列表会自动使用优化的位置刷新,然后向用户发送通知,告知您已输入此位置

我对此进行了搜索,并了解了地理围栏,但我没有正确地理解它。。所以请建议我应该如何开始工作。。。任何示例、代码或链接都将非常有用


提前感谢

我使用了一个函数
distance to
来计算to
位置之间的距离

我把它编码为100米,你们需要改变你们想要比较的距离值

private boolean isMarkerIn100(ArrayList<Model> arrayList) {
        Location locationA = new Location("LocationA");
        locationA.setLatitude(latitude);
        locationA.setLongitude(longitude);

        for (int i = 0; i < arrayList.size(); i++) {
            Location locationB = new Location("LocationB");
            locationB.setLatitude(arrayList.get(i).getLat());
            locationB.setLongitude(arrayList.get(i).getLng());
            if (locationA.distanceTo(locationB) < 100 && arrayList.get(i).getHit() > 4) {
                return false;
            }
        }
        return true;
    }
private boolean isMarkerIn100(ArrayList ArrayList){
位置A=新位置(“位置A”);
地点a.设置纬度(纬度);
位置a.设置经度(经度);
对于(int i=0;i4){
返回false;
}
}
返回true;
}

在上面的代码中,
纬度
经度
用于我(用户)的位置(比如位置A),而
阵列列表
是来自
lat
lng
数据库的数据,谢谢。。。但我如何像在arraylist中那样从sqlite检索数据。。。我制作了两个不同的列表,如ArrayList al_getLatitude=new ArrayList();ArrayList al_get_longitude=新的ArrayList();我想我还得在巴塔巴斯的课上写Arraylist。。。但是我不知道。。你们可以发布代码吗?或者说ArrayList数据来自服务器,所以你们需要为你们的本地数据库编写代码。同时为Lat和lng制作一个模型类