对于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 版权协议,转载请附上原文出处链接和本声明。