【问题标题】:Matching current Location with Database list of location with in 50 miles将当前位置与 50 英里内的数据库位置列表相匹配
【发布时间】:2016-05-20 08:13:26
【问题描述】:

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

我已经对此进行了搜索并了解了地理围栏但我没有正确理解它..所以请建议我应该如何开始工作...任何示例、代码或链接都会有所帮助

提前致谢

【问题讨论】:

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


    【解决方案1】:

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

    我仅将其编码为 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;
        }
    

    在上面的代码中,latitudelongitude 是我(用户)的位置(比如 locationA),ArrayList 是来自数据库的数据,latlng

    【讨论】:

    • 谢谢...但是我怎样才能像您在arraylist 中那样从sqlite 中检索数据...我已经制作了两个不同的列表,例如 ArrayList al_getLatitude = new ArrayList(); ArrayList al_get_longitude = new ArrayList();
    • 我想我也必须在 Batabase 类中制作 Arraylist ......但不知道......你能不能也发布那个代码
    • 对我来说 ArrayList 数据来自服务器,因此您需要为本地数据库编写代码。还为 Lat 和 lng 创建一个模型类
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-25
    • 2012-10-16
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多