AOI图层
腾讯地图SDK自4.3.8版本起,将支持AOI(Area Of Interest)图层功能。
介绍
AOI面,是在地图上提供一种显示样式,它能高亮突出地显示一个或者多个Poi区域信息。
一个AOI面内包含这个区域的轮廓信息和相关的子点信息,比如北京大学AOI面,包括北京大学主点和各个出入口、楼宇子点信息。
示例如下图所示:
要使用AOI面能力,腾讯地图提供一套简单的接口,实现AOI的显示和隐藏,后续还会支持更多丰富的接口能力。
添加AOI面
-
要添加AOI面,首先要通过检索功能来获取该区域POI的ID,如通过POI搜索接口:
- (void)search { [QMSSearchServices sharedServices].apiKey = @"请输入您的检索Key"; _searcher = [[QMSSearcher alloc] initWithDelegate:self]; QMSPoiSearchOption *poiSearchOption = [[QMSPoiSearchOption alloc] init]; [poiSearchOption setKeyword:@"北京大学"]; [poiSearchOption setBoundaryByRegionWithCityName:@"北京" autoExtend:NO]; [_searcher searchWithPoiSearchOption:poiSearchOption]; } - (void)searchWithPoiSearchOption:(QMSPoiSearchOption *)poiSearchOption didReceiveResult:(QMSPoiSearchResult *)poiSearchResult { // 获取poi id QMSPoiData *poiData = [poiSearchResult.dataArray objectAtIndex:0]; _poiId = poiData.id_; // 创建AOILayer [self createAOILayer]; }
-
根据POI ID,初始化QAOILayer对象:
// 通过检索能力获取Poi的ID self.aoiLayer = [[QAOILayer alloc] initWithUID:self.poiId];
-
SDK会根据AOI面积计算一个最优的默认显示级别,同时也可以设置AOI面显示的ZoomLevel,:
self.aoiLayer.maxZoom = 18; self.aoiLayer.minZoom = 15;
-
添加AOI面,并且监听加载成功的回调:
[self.mapView addAOILayer:self.aoiLayer callback:^(BOOL success) { // 判断是否加载成功 NSLog(@"success:%@", success? @"YES":@"NO"); }];
移除AOI面
AOI面添加到地图中之后,maxZoom
和minZoom
将无法修改,删除AOI面可调用下例方法:
if (self.aoiLayer) {
[self.mapView removeAOILayer:self.aoiLayer];
}
这篇文章对您解决问题是否有帮助?
已解决
未解决