开发这个地图之前,向领导提议,说百度地图,不好用,问题多。建议用高德地图,领导就是不听呐,没办法,那就做呗。
好了问题来了,项目集成了百度基础地图sdk(3.3.1)和导航sdk(3.1.0),先不说,百度只开放了一个驾车导航的API。集成这两个sdk,导航提示“算路失败”,错误码: 412000300,这东西又不开源,鬼知道它为什么算路失败啊,所以只能跑去百度官方论坛哪里去反馈查看。得到的大概结果是,新版的百度基础地图sdk与导航sdk有冲突,百度攻城狮正在着手处理这个问题,论坛上一些论友(暂且这样称呼吧)称把其中的一个换回旧版的即可。
这就蛋疼了,百度官网只有最新的,我去那里找旧版的啊,突然想起之前搞过得小demo集成过可以,回去看一下,发现百度基础地图是3.3.0的,导航是3.1.0的,我滴个乖乖,幸亏之前有下。那就把项目里的基础地图(3.3.1)换成3.3.0的吧。
好了,问题2又来了,项目一跑,奔掉了,报这个错,(发现跟“论友”反馈的问题类似,图个方便,就先借用他的图吧)
看了一下百度地图的官方论坛,貌似是14年的问题,上面的的反馈后的解决方法说得比较模棱两可,大概的意思是,外部第三方的sdk和系统文件<libxml2/libxml/preserve.h>里的xmlFreeDoc函数重名了,并且说新版的已经解决掉这个问题了
话说现在都17年,百度地图最新版3.3.1,(我用的的是3.3.0,也不算很旧吧),然后我把系统的libxml2.tbd改成最新的libxml2.2.tbd,问题居然解决了(额,莫非他说的是新版libxml文件?!)。
呵呵哒,问题3。百度导航sdk要求,在info.plist里设置View controller-based status bar appearance 为NO。否则一进导航就会crash 。
这样一来,一进项目,反正状态栏被搞没,想要状态栏,还得里面自己设置......,在appDelegate,那里设置
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];
[UIApplication sharedApplication].statusBarStyle = UIStatusBarStyleDefault;
即可,经过测试,这样状态栏恢复了,关键是进导航不会闪退。
问题4(这个问题就比较严重了),据“论友”反馈,百度导航sdk可能带有热修复,导致审核不通过,要真是那样,就GG了,(心好累,都说了不用百度地图的嘛)
GDataXMLNode