我正在尝试处理应用程序,其中我有数据库中的位置列表,我想检查数据库中的哪个位置靠近我的当前位置,在20英里的几英里内,列表自动刷新,精确的位置然后向用户发送您已进入此位置的通知......
我已经搜索了这个并了解了Geofencing但我没有得到它...所以请建议我应该如何开始工作......任何样本,代码或链接都会有所帮助
提前致谢
答案 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;
}
在上面的代码中,latitude
和longitude
用于我的(用户)位置(说出locationA),ArrayList
是来自数据库的数据lat
和{{1} }。