iOS百度地图集成总结

以前集成过很多次百度地图,遇到的问题多了,今天总结一下。

一.实现点击地图添加大头针功能。

向地图添加手势

Lpress.minimumPressDuration = 0.5;//1.0秒响应方法
Lpress.allowableMovement = 50.0;
Lpress.delegate = self;
[self.mapView addGestureRecognizer:Lpress];```
###手势响应方法
   //坐标转换
```CGPoint touchPoint = [gestureRecognizer locationInView:self.mapView];//获取在地图点击的点
 CLLocationCoordinate2D touchMapCoordinate = [self.mapView convertPoint:touchPoint toCoordinateFromView:self.mapView];//将所获取的点转换成经纬度
    [self reverseGeoCoder:touchMapCoordinate];//最后调用反地理编码获取需要的信息```
(反地理编码具体可以看百度文档http://lbsyun.baidu.com/index.php?title=iossdk/guide/retrieval )
##二.控制大头针气泡显示与隐藏
###BMKMapView 对象方法
//显示气泡
- (void)selectAnnotation:(id )annotation animated:(BOOL)animated;
//隐藏气泡
- (void)deselectAnnotation:(id )annotation animated:(BOOL)animated;
##三.检索功能
###百度地图SDK提供的检索服务包括以下功能模块:POI检索,公交方案检索,驾车路线检索,步行路线检索,行政区边界数据检索,地理编码,反地理编码,公交详情检索,在线建议查询,短串分享(包括POI搜索结果分享、驾车/公交/骑行/步行路线规划分享、反向地理编码结果分享)。(这是官方套话)***我们的需求是搜索一个景区然后定位到当前景区,听着没什么但是做的时候还是挺曲折的。***
###POI检索 百度地图SDK提供三种类型的POI检索:周边检索、区域检索和城市内检索。下面将以周边检索为例,向大家介绍如何使用检索服务。读完这段话感觉这都是区域内检索,貌似不符合我们的需求。经过一顿折腾后终于实现。下面是干货:
####1.利用在线建议查询获取关键字列表与对应的城市。
```-(void)viewDidLoad  
{    
    //初始化检索对象  
    _searcher =[[BMKSuggestionSearch alloc]init];  
    _searcher.delegate = self;    
    BMKSuggestionSearchOption* option = [[BMKSuggestionSearchOption alloc] init];  
    option.cityname = @"北京";  
    option.keyword  = @"中关村";  
    BOOL flag = [_searchersuggestionSearch:option];  
        [option release];  
        if(flag)  
        {  
            NSLog(@"建议检索发送成功");  
        }  
        else  
        {  
            NSLog(@"建议检索发送失败");  
        }  
    }  
    //实现Delegate处理回调结果  
    - (void)onGetSuggestionResult:(BMKSuggestionSearch*)searcher result:(BMKSuggestionResult*)result errorCode:(BMKSearchErrorCode)error{  
        if (error == BMK_SEARCH_NO_ERROR) {  
                //在此处理正常结果  

        }  
        else {  
                NSLog(@"抱歉,未找到结果");  
        }  
    }  ```
#### 在线建议查询的代理方法返回的数组 我们都是取得数组的第一个关键字和城市
####2.利用上面获得关键字和城市调用POI检索里面的 BMKCitySearchOption就能获取所有搜索的地点。
**以上纯属个人总结,有哪里不妥请多多指教。**

你可能感兴趣的:(iOS百度地图集成总结)