之前做過(guò)一次關(guān)于基站定位?并帶有導(dǎo)航功能,直接使用的百度地圖iOS地圖SDK,直接簡(jiǎn)單的完成了。新項(xiàng)目中也有導(dǎo)航功能览祖,再次進(jìn)入百度地圖的開(kāi)放平臺(tái),發(fā)現(xiàn)有個(gè)iOS導(dǎo)航SDK炊琉,想著這次的功能簡(jiǎn)單展蒂,不用再?下載所有的iOS地圖SDK,用這個(gè)導(dǎo)航的SDK就行了苔咪。然而锰悼,折騰了好久...
iOS導(dǎo)航SDK
當(dāng)你按照官網(wǎng)的詳細(xì)步驟,獲取密鑰团赏、下載SDK箕般、集成到工程、添加依賴庫(kù)舔清、配置環(huán)境丝里,以及溫馨提示的權(quán)限問(wèn)題曲初、網(wǎng)絡(luò)配置等完成之后。按下Command+B編譯杯聚,如果順利通過(guò)了臼婆,那么恭喜你,你可以關(guān)閉網(wǎng)頁(yè)幌绍,繼續(xù)寫代碼了(如果沒(méi)問(wèn)題也不會(huì)來(lái)看這篇文章了 - -D慷А)。
具體的錯(cuò)誤提示忘記截圖了纷捞,大致的錯(cuò)誤是第三方庫(kù)沖突痢虹,會(huì)出問(wèn)題的第三方庫(kù)有 MBProgressHUD、AFNetworking主儡、Masonry奖唯,其他庫(kù)不清楚, 剛剛出現(xiàn)的時(shí)候我用CocoaPod把MBProgressHUD庫(kù)刪除了糜值,然后會(huì)出AFNetworking的錯(cuò)誤丰捷。解決方案:來(lái)自官網(wǎng)
方案一
臨時(shí)解決方案:把libbaiduNaviSDK.a移到“Linked Frameworks and Libraries”的最后一個(gè)。(我感覺(jué)這個(gè)解決方案是比較看臉的)
方案二
使用v3.0.2寂汇,官網(wǎng)上的版本是v3.0.0病往,論壇的是v3.0.2(不看論壇就不知道有新版本),并附有下載鏈接骄瓣。提示:下載的v3.0.2不帶libbaiduNaviSDK.a文件停巷,請(qǐng)將v3.0.0的.a文件拖入工程。
這兩種我試過(guò)了榕栏,都沒(méi)有成功畔勤。最終沒(méi)有辦法,繼續(xù)使用iOS地圖SDK
Base為基礎(chǔ)庫(kù)扒磁,Utils用于導(dǎo)航計(jì)算使用在讶∩甙疲可根據(jù)項(xiàng)目需求添加。
使用:在AppDelegate初始化
調(diào)用的代碼:
//初始化調(diào)啟導(dǎo)航時(shí)的參數(shù)管理類
BMKNaviPara* para = [[BMKNaviPara alloc]init];
//初始化起點(diǎn)節(jié)點(diǎn)
BMKPlanNode* start = [[BMKPlanNode alloc]init];
//指定起點(diǎn)經(jīng)緯度
CLLocationCoordinate2D coor1;
coor1.latitude = ;
coor1.longitude = ;
start.pt = coor1;
//指定起點(diǎn)名稱
start.name = @"我的位置";
//指定起點(diǎn)
para.startPoint = start;
//初始化終點(diǎn)節(jié)點(diǎn)
BMKPlanNode* end = [[BMKPlanNode alloc]init];
//指定終點(diǎn)經(jīng)緯度
CLLocationCoordinate2D coor2;
coor2.latitude = ;
coor2.longitude = ;
end.pt = coor2;
//指定終點(diǎn)名稱
end.name = @"終點(diǎn)位置";
//指定終點(diǎn)
para.endPoint = end;
//指定返回自定義scheme
para.appScheme = @"";
//調(diào)啟百度地圖客戶端導(dǎo)航
[BMKNavigation openBaiduMapNavigation:para];
只有駕車界面支持web,也帶有偏好選擇功能溪食∧虮常基本可以滿足正常使用默赂,導(dǎo)航SDK能正常使用之前暫時(shí)就用這個(gè)吧捻激。