iOS 开发 百度地图 逆地理编码

  • Post author:
  • Post category:其他


对于APP来说,绝大多数需要用的就是定位后进行逆地理编码,获取城市,获取位置。

不得不说,百度LBS的逆地理编码这一块,是不是搞出来点不好的东西。

要做百度地图的逆地理编码功能,首先要启动百度服务,这个不详细说了,可以看我上一篇博文,我直接说逆地理编码。

上代码

    //初始化地理编码类
    //注意:必须初始化地理编码类
    BMKGeoCodeSearch * _geoCodeSearch = [[BMKGeoCodeSearch alloc] init];
    _geoCodeSearch.delegate = self;

    //初始化逆地理编码类
    BMKReverseGeoCodeOption *reverseGeoCodeOption= [[BMKReverseGeoCodeOption alloc] init];
    //需要逆地理编码的坐标位置
    reverseGeoCodeOption.reverseGeoPoint = _myUserLocation.location.coordinate;
    BOOL reg = [_geoCodeSearch reverseGeoCode:reverseGeoCodeOption];
    if (reg) {
        NSLog(@"_____编码成功");
    }else{
        NSLog(@"_____编码失败");
    }

这个是初始化的逆地理编码的类 ,其中reverseGeoPoint是需要做逆地理编码的poi坐标点,然后执行reverseGeoCode这个方法,根据地理坐标去获取地理位置信息。

这里遵循一个协议:BMKGeoCodeSearchDelegate;不用记得置空

下面是协议的代理方法,从这里拿到结果

/**
 *返回反地理编码搜索结果
 *@param searcher 搜索对象
 *@param result 搜索结果
 *@param error 错误号,@see BMKSearchErrorCode
 */
- (void)onGetReverseGeoCodeResult:(BMKGeoCodeSearch *)searcher result:(BMKReverseGeoCodeResult *)result errorCode:(BMKSearchErrorCode)error
{
    if (error == BMK_SEARCH_NO_ERROR)
    {
        NSLog(@"%@",result);
        NSLog(@"%@----------%@",result.address,result.businessCircle);
    }else if (error == BMK_SEARCH_PERMISSION_UNFINISHED)
    {
        //
    }
}

返回的结果,就在result中,是BMKReverseGeoCodeResult中的属性,具体都有哪些,点进去看看,好了逆地理编码结束,想怎么处理自己看,我这里打印了一下。

最后跟上 github 地址:


https://github.com/wangjianchao1990/baidumap.git


再附上一个百度地图开发文档地址:


http://lbsyun.baidu.com/index.php?title=iossdk/guide/introduction

地图方面有什么不明白的,还可以互相交流,留言必回,搞技术,多交流!



版权声明:本文为wjchao1990原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。