美文网首页
iOS百度地图集成总结

iOS百度地图集成总结

作者: funnythansl | 来源:发表于2017-05-08 16:57 被阅读104次

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

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

    向地图添加手势

    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 <BMKAnnotation>)annotation animated:(BOOL)animated;
    //隐藏气泡
    - (void)deselectAnnotation:(id <BMKAnnotation>)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百度地图集成总结

          本文链接:https://www.haomeiwen.com/subject/ckxvtxtx.html