2016-11-14 59 views
1

如何实施Geofence以追踪其他用户?
我开发一个应用程序,它会跟踪家庭成员,我想实现地理围栏功能,这将允许用户使用前做的事:
用户A将跟踪用户B
用户A将确定地理围栏区域,当用户B将进入该地理围栏用户A会收到通知Android:如何让用户为其他被跟踪用户创建地理围栏?

我retreived每10分钟用户B的位置,我想创建一个用户B,这将通知用户A在用户B进入栅栏区域

我地理围栏尝试使用谷歌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位置”而不适用于其他用户位置。

回答

2

我想你应该添加一个数据库,并跟踪谁创建谁geofence谁。还将地理栅栏半径和中心点存储在数据库中。为了检查用户是否在地理围栏内,计算距用户位置坐标和所有地理坐标坐标的距离,然后在5分钟范围内将距离与半径进行比较。如果距离为<半径,则用户在其他地方。如果用户在里面设置标志以避免重复的通知。如果用户出门重置标志。我认为这应该工作。