匹配当前位置与数据库列表的位置在50英里

时间:2016-05-20 08:13:27

标签: android sqlite android-studio location android-geofence

我正在尝试处理应用程序,其中我有数据库中的位置列表,我想检查数据库中的哪个位置靠近我的当前位置,在20英里的几英里内,列表自动刷新,精确的位置然后向用户发送您已进入此位置的通知......

我已经搜索了这个并了解了Geofencing但我没有得到它...所以请建议我应该如何开始工作......任何样本,代码或链接都会有所帮助

提前致谢

1 个答案:

答案 0 :(得分:0)

我使用了一个函数distanceTo来计算Locations之间的距离。

我只将其编码为100 mtr,您需要更改要比较的距离值。

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;
    }

在上面的代码中,latitudelongitude用于我的(用户)位置(说出locationA),ArrayList是来自数据库的数据lat和{{1} }。