ios百度地图实现过程中需要注意的地方以及解决的办法
1.去百度官网注册一个apikey 用来告诉百度自己用百度地图,
网址:http://lbsyun.baidu.com/apiconsole/key 注:这个是新的key(新旧key不一样,不能互用)
2.去 官网:http://developer.baidu.com/map/sdkiosdev-8.htm下载相关的库文件;
3.主要的就是那个libbaidumapapi.a静态库文件:
a.下载的文件中会有两个这样的.a静态库文件,你需要合并这两个静态库,(不合并,会导致你每次模拟器和真机测试的时候需要总切换)
1)首先下载官方的库文件
2)打开libs文件夹,你可以看到模拟器和真机两个文件夹
3)打开终端,进入lib这个文件夹执行:lipo -create Release-iphoneos/libbaidumapapi.a Release-iphonesimulator/libbaidumapapi.a -output libbaidumapapi.a
4)就可以看到一个合并后的静态库出现了,然后你以删除这两个文件夹中的静态库,(只删除静态库,即:.a文件)其他的头文件导进去工程目录
b.下来就是按照文档导入相应的库文件,
c.去设置中search Path中设置静态库文件的地址(路径设置为你静态库存储本地的地址)图1为你静态库所在的目录,图2为你设置的路径
图1图2
4.注册百度地图,使用你刚才申请的apiKey(按照官方文档进行)
到这步应该会出现了百度地图
定位功能中会出现问题:(当你想将当前位置移动到用户所在的位置的时候)
注意:你必须实现百度地图的一个代理方法:
- (void)mapView:(BMKMapView *)mapView1 didUpdateUserLocation:(BMKUserLocation *)userLocation;
该方法中调用你的移动方法:
- (void)moveToUserLocation
{
CLLocation *location = _mapView.userLocation.location;
[_mapViewsetCenterCoordinate:(CLLocationCoordinate2D){location.coordinate.latitude,location.coordinate.longitude} animated:YES];
}
否则会出现白屏(切忌)
5.设置地图的比例尺:
百度地图有很多属性,比例尺也是其中之一
代码:
_mapView.zoomLevel = 14;
这个值有个范围:3-19;
数字越大,范围越详细,也就是比例尺越大,(14是我调整觉得合适的大小)
最后注意:
Xcode5时候估计会出现真机调试问题,错误提示:[__NSCFString stringFromMD5]: unrecognized selector sent to instance 0x1e56c
在文件夹中把某个.m文件修改为.mm文件,(我是修改的appdelegate.m -> appdelegate.mm)
这时候在设置中找打linking 中的other linker flags 添加参数:-all_load即可运行