如何实现地理围栏来跟踪其他用户?
我正在开发一个跟踪家庭成员的应用程序,我想实现地理围栏功能,使用户能够为 ex:
用户A会跟踪用户B
用户 A 将确定地理围栏区域,当用户 B 进入此地理围栏时,用户 A 将收到通知
我每 10 分钟检索一次用户 B 的位置,我想为用户 B 创建地理围栏,当用户 B 进入地理围栏区域时通知用户 A
我尝试像这段代码一样使用 google Geofence :
mGeofenceList.add(new Geofence.Builder()
// Set the request ID of the geofence. This is a string to identify this
// geofence.
.setRequestId(entry.getKey())
.setCircularRegion(
entry.getValue().latitude,
entry.getValue().longitude,
Constants.GEOFENCE_RADIUS_IN_METERS
)
.setExpirationDuration(Constants.GEOFENCE_EXPIRATION_IN_MILLISECONDS)
.setTransitionTypes(Geofence.GEOFENCE_TRANSITION_ENTER |
Geofence.GEOFENCE_TRANSITION_EXIT)
.build());
但它仅适用于用户设备“用户 A 位置”,不适用于其他用户位置。
最佳答案
我想您应该添加一个数据库并跟踪谁为谁创建了地理围栏。还将地理围栏半径和中心点存储在数据库中。为了检查用户是否在地理围栏内,计算与用户位置坐标和所有地理围栏坐标的距离,然后将距离与 5 分钟跨度内的半径进行比较。如果距离 < 半径,则用户在内部,否则在外部。如果用户在里面,设置标志以避免重复通知。如果用户外出重置标志。我认为这应该可行。
关于Android:如何让用户为其他跟踪用户创建地理围栏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40599438/