之前做過一次關于基站定位?并帶有導航功能,直接使用的百度地圖iOS地圖SDK,直接簡單的完成了。新項目中也有導航功能,再次進入百度地圖的開放平臺,發現有個iOS導航SDK,想著這次的功能簡單,不用再?下載所有的iOS地圖SDK,用這個導航的SDK就行了。然而,折騰了好久...
iOS導航SDK
當你按照官網的詳細步驟,獲取密鑰、下載SDK、集成到工程、添加依賴庫、配置環境,以及溫馨提示的權限問題、網絡配置等完成之后。按下Command+B編譯,如果順利通過了,那么恭喜你,你可以關閉網頁,繼續寫代碼了(如果沒問題也不會來看這篇文章了 - -!)。
具體的錯誤提示忘記截圖了,大致的錯誤是第三方庫沖突,會出問題的第三方庫有 MBProgressHUD、AFNetworking、Masonry,其他庫不清楚, 剛剛出現的時候我用CocoaPod把MBProgressHUD庫刪除了,然后會出AFNetworking的錯誤。解決方案:來自官網
方案一
臨時解決方案:把libbaiduNaviSDK.a移到“Linked Frameworks and Libraries”的最后一個。(我感覺這個解決方案是比較看臉的)
方案二
使用v3.0.2,官網上的版本是v3.0.0,論壇的是v3.0.2(不看論壇就不知道有新版本),并附有下載鏈接。提示:下載的v3.0.2不帶libbaiduNaviSDK.a文件,請將v3.0.0的.a文件拖入工程。
這兩種我試過了,都沒有成功。最終沒有辦法,繼續使用iOS地圖SDK
iOS地圖SDK.png
Base為基礎庫,Utils用于導航計算使用。可根據項目需求添加。
使用:在AppDelegate初始化
調用的代碼:
//初始化調啟導航時的參數管理類
BMKNaviPara* para = [[BMKNaviPara alloc]init];
//初始化起點節點
BMKPlanNode* start = [[BMKPlanNode alloc]init];
//指定起點經緯度
CLLocationCoordinate2D coor1;
coor1.latitude = ;
coor1.longitude = ;
start.pt = coor1;
//指定起點名稱
start.name = @"我的位置";
//指定起點
para.startPoint = start;
//初始化終點節點
BMKPlanNode* end = [[BMKPlanNode alloc]init];
//指定終點經緯度
CLLocationCoordinate2D coor2;
coor2.latitude = ;
coor2.longitude = ;
end.pt = coor2;
//指定終點名稱
end.name = @"終點位置";
//指定終點
para.endPoint = end;
//指定返回自定義scheme
para.appScheme = @"";
//調啟百度地圖客戶端導航
[BMKNavigation openBaiduMapNavigation:para];
百度地圖.png
只有駕車界面支持web,也帶有偏好選擇功能。基本可以滿足正常使用,導航SDK能正常使用之前暫時就用這個吧。