iOS百度地图简单使用详解

2020-01-18 17:20:16王冬梅
word = @"小吃"; //根据中心点、半径和检索词发起周边检索 BOOL flag = [self.poiSearch poiSearchNearBy:option]; if (flag) { NSLog(@"搜索成功"); //关闭定位 [self.service stopUserLocationService]; } else { NSLog(@"搜索失败"); } } #pragma mark -------BMKPoiSearchDelegate /** *返回POI搜索结果 *@param searcher 搜索对象 *@param poiResult 搜索结果列表 *@param errorCode 错误号,@see BMKSearchErrorCode */ - (void)onGetPoiResult:(BMKPoiSearch *)searcher result:(BMKPoiResult *)poiResult errorCode:(BMKSearchErrorCode)errorCode { //若搜索成功 if (errorCode ==BMK_SEARCH_NO_ERROR) { //POI信息类 //poi列表 for (BMKPoiInfo *info in poiResult.poiInfoList) { [self.dataArray addObject:info]; //初始化一个点的注释 //只有三个属性 BMKPointAnnotation *annotoation = [[BMKPointAnnotation alloc] init]; //坐标 annotoation.coordinate = info.pt; //title annotoation.title = info.name; //子标题 annotoation.subtitle = info.address; //将标注添加到地图上 [self.mapView addAnnotation:annotoation]; } } } /** *返回POI详情搜索结果 *@param searcher 搜索对象 *@param poiDetailResult 详情搜索结果 *@param errorCode 错误号,@see BMKSearchErrorCode */ - (void)onGetPoiDetailResult:(BMKPoiSearch *)searcher result:(BMKPoiDetailResult *)poiDetailResult errorCode:(BMKSearchErrorCode)errorCode { NSLog(@"%@",poiDetailResult.name); } #pragma mark -------------BMKMapViewDelegate /** *根据anntation生成对应的View *@param mapView 地图View *@param annotation 指定的标注 *@return 生成的标注View */ - (BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation { //如果是注释点 if ([annotation isKindOfClass:[BMKPointAnnotation class]]) { //根据注释点,创建并初始化注释点视图 BMKPinAnnotationView *newAnnotation = [[BMKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"an"]; //设置大头针的颜色 newAnnotation.pinColor = BMKPinAnnotationColorRed; //设置动画 newAnnotation.animatesDrop = YES; return newAnnotation; } return nil; } /** *当选中一个annotation views时,调用此接口 *@param mapView 地图View *@param views 选中的annotation views */ - (void)mapView:(BMKMapView *)mapView didSelectAnnotationView:(BMKAnnotationView *)view { //poi详情检索信息类 BMKPoiDetailSearchOption *option = [[BMKPoiDetailSearchOption alloc] init]; BMKPoiInfo *info = self.dataArray.firstObject; //poi的uid,从poi检索返回的BMKPoiResult结构中获取 option.poiUid = info.uid; /** *根据poi uid 发起poi详情检索 *异步函数,返回结果在BMKPoiSearchDelegate的onGetPoiDetailResult通知 *@param option poi详情检索参数类(BMKPoiDetailSearchOption) *@return 成功返回YES,否则返回NO */ BOOL flag = [self.poiSearch poiDetailSearch:option]; if (flag) { NSLog(@"检索成功"); } else { NSLog(@"检索失败"); } }