将当前位置与 50 英里内的数据库位置列表匹配
Matching current Location with Database list of location with in 50 miles
我正在尝试处理应用程序,其中我有数据库中的位置列表,我想检查数据库中的哪个位置在几英里(如 20 英里)内靠近我当前的位置,并且列表会自动刷新细化位置,然后向用户发送您已进入该位置的通知...
我已经搜索过这个并开始了解地理围栏但是我没有正确理解它..所以请建议我应该如何开始使用它......任何示例,代码或 link 都会有帮助
提前致谢
我使用了一个函数 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;
}
在上面的代码中,latitude
和 longitude
是我(用户)的位置(比如 locationA),ArrayList
是来自数据库的数据 lat
和 lng
.
我正在尝试处理应用程序,其中我有数据库中的位置列表,我想检查数据库中的哪个位置在几英里(如 20 英里)内靠近我当前的位置,并且列表会自动刷新细化位置,然后向用户发送您已进入该位置的通知...
我已经搜索过这个并开始了解地理围栏但是我没有正确理解它..所以请建议我应该如何开始使用它......任何示例,代码或 link 都会有帮助
提前致谢
我使用了一个函数 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;
}
在上面的代码中,latitude
和 longitude
是我(用户)的位置(比如 locationA),ArrayList
是来自数据库的数据 lat
和 lng
.