地理围栏技术

iOS地理围栏技术的应用

*爱你&永不变心* 提交于 2020-01-10 10:58:29
遇到一个需求,要求监测若干区域,设备进入这些区域则要上传数据,且可以后台监测,甚至app被杀死也要监测。发现oc的地理围栏技术完美匹配这个需求,任务做完了,把遇到的坑记录下来,也许能帮到你呢。 要做这个需求,我们需要把任务分成两大块,一块是支持后台监测且app被杀掉也要持续监测,另一块是如何进行区域监测。 而区域监测我们有3种方法完成: 1,oc自有的,利用CLLocationManager监测若干CLCircularRegion区域 2,高德地图旧版地理围栏,利用AMapLocationManager监测若干AMapLocationCircleRegion区域。其实是对CLLocationManager进行简单封装,用法也和CLLocationManager基本一致 3,高德地图新版地理围栏,有个专门进行区域监测的管理类AMapGeoFenceManager,该方法对区域监测做了很多优化。 当围栏创建完毕,且围栏创建成功时会启动定位,这部分无需您来设置,SDK内部执行。 定位机制:通过“远离围栏时逐渐降低定位频率”来降低电量消耗,“离近围栏时逐渐提高定位频率”来保证有足够的定位精度从而完成围栏位置检测。需要注意,在iOS9及之后版本的系统中,如果您希望程序在后台持续检测围栏触发行为,需要保证manager的allowsBackgroundLocationUpdates为YES