以下内容自 iOS 定位SDK V2.3.0 后支持。
第 1 步,引入头文件
在调用地理围栏功能的类中引入AMapFoundationKit.h和AMapLocationKit.h这两个头文件,注意Swift需要在桥接文件中引入头文件:
#import
#import
//在桥接文件中引入头文件
#import
#import
第 2 步,配置Key
在调用定位时,需要添加Key,需要注意的是请在 SDK 任何类的初始化以及方法调用之前设置正确的 Key。
如果您使用的是定位SDK v2.x版本需要引入基础 SDK AMapLocationKit.framework ,设置apiKey的方式如下:
iOS 定位SDK v2.x版本设置 Key:
[AMapServices sharedServices].apiKey =@"您的key";
AMapServices.shared().apiKey = "您的key"
第 3 步:创建地理围栏
地理围栏没有最大个数限制,您可以无限制的创建围栏。但请您根据业务需求合理的创建围栏,控制围栏个数可以有效的保证程序执行效率。定位 SDK 提供根据高德POI、行政区划,自定义圆形、自定义多边形四种方式创建地理围栏。
1、初始化地理围栏管理manager
self.geoFenceManager = [[AMapGeoFenceManager alloc] init];
self.geoFenceManager.delegate = self;
self.geoFenceManager.activeAction = AMapGeoFenceActiveActionInside | AMapGeoFenceActiveActionOutside | AMapGeoFenceActiveActionStayed; //设置希望侦测的围栏触发行为,默认是侦测用户进入围栏的行为,即AMapGeoFenceActiveActionInside,这边设置为进入,离开,停留(在围栏内10分钟以上),都触发回调
self.geoFenceManager.allowsBackgroundLocationUpdates = YES; //允许后台定位
self.geoFenceManager = AMapGeoFenceManager()
self.geoFenceManager.delegate = self
self.geoFenceManager.activeAction = [AMapGeoFenceActiveAction.inside , AMapGeoFenceActiveAction.outside , AMapGeoFenceActiveAction.stayed ]//进入,离开,停留都要进行通知
self.geoFenceManager.allowsBackgroundLocationUpdates = true //允许后台定位
2、创建高德POI地理围栏
提供两个创建高德POI围栏的接口,一个是根据关键字创建POI围栏,另一个是根据经纬度进行周边搜索创建POI围栏。
根据关键字创建围栏:
- (void)addKeywordPOIRegionForM