如何实施Geofence跟踪其他用户?
我正在开发一个跟踪家庭成员的应用程序,我想实现Geofence功能,这将使用户可以为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位置”而不适用于其他用户位置。
答案 0 :(得分:2)
我想你应该添加一个数据库,并跟踪谁为谁创建了地理围栏。还将地理围栏半径和中心点存储在数据库中。为了检查用户是否在地理围栏中,计算距用户位置坐标和所有地理围栏坐标的距离,然后在5分钟跨度内比较距离与半径。如果距离<半径,用户在外面的其他地方。如果用户在内部设置标志以避免重复通知。如果用户外出重置标志。我认为这应该有用。