一、iOS百度地圖分類
按照大模塊可以分為五大塊
地圖
定位
鷹眼軌跡
導航
全景
二、地圖
地圖要求iOS7.0以上。
1.地圖
? ? 1.1普通地圖。又分為2D,3D!
? ? 1.2衛(wèi)星地圖。
? ? 1.3實時交通地圖。
? ? 1.4熱力地圖。
地圖操作:可通過接口或手勢控制來實現(xiàn)地圖的點擊、雙擊、長按、縮放、旋轉、改變視角等操作。
基本手勢如下:
雙擊:放大雙擊的區(qū)域地圖。
雙指雙擊:縮小地圖。
縮放:放大或者縮小地圖。
旋轉:旋轉地圖。
其他手勢等等。。。
地圖使用示例
2.室內圖
自v3.0起,百度地圖SDK室內圖功能正式上線,輔助開發(fā)者實現(xiàn)全新的地理位置服務體驗,室內地圖與百度地圖App同步更新。
支持的公眾建筑包含購物商場、機場和火車站等交通樞紐,醫(yī)院等,覆蓋全國4000+個大型購物中心。
室內圖使用示例
3.個性化地圖
支持使用個性化地圖模板,改變底圖顏色和樣式。
使用個性化模板,實現(xiàn)地圖元素的顏色設置,地圖元素包含大地、水系、綠地、高速、普通道路、鐵路、地鐵,POI等,以及POI和道路的文字顏色設置。
通過可見屬性,控制顯示地圖元素。
個性化地圖使用示例
4.地圖覆蓋物
百度地圖SDK支持多種地圖覆蓋物,幫助您展示更豐富的地圖。
支持的各種地圖覆蓋物:地圖標注(Marker)、幾何圖形(點、折線、弧線、多邊形等)、POI檢索結果覆蓋物、線路規(guī)劃結果覆蓋物等。
自定義圖層:定位圖層、地形圖圖層、熱力圖圖層、瓦片圖層。
5.POI檢索
支持周邊檢索、區(qū)域檢索、城市內檢索和Place詳情信息檢索。
周邊檢索:以某一點為中心,指定距離為半徑,根據(jù)用戶輸入的關鍵詞進行POI檢索;
區(qū)域檢索:在指定矩形區(qū)域內、根據(jù)關鍵詞進行POI檢索;
城市內檢索:在某一城市內,根據(jù)用戶輸入的關鍵字進行POI檢索;
POI詳情檢索:根據(jù)POI的ID信息,檢索該興趣點的詳情。
POI檢索使用示例
6.地理編碼
提供地理坐標和地址之間相互轉換的能力。
正向地理編碼:實現(xiàn)了將中文地址或地名描述轉換為地球表面上相應位置的功能。
反向地理編碼:將地球表面的地理坐標轉換為標準地址的過程。
地理編碼使用示例
7.線路規(guī)劃
支持公交信息查詢、公交換乘查詢、公交/駕車/騎行/步行線路規(guī)劃。
公交信息查詢:可對公交詳細信息進行查詢;
跨城公共交通查詢:根據(jù)起、終點,查詢策略,進行線路規(guī)劃方案,支持飛機,火車、大巴、公
交等多種出行方式;駕車線路規(guī)劃:提供不同策略,規(guī)劃駕車路線(支持設置途經(jīng)點);
步行線路規(guī)劃:根據(jù)起、終點,進行步行路線規(guī)劃方案;
騎行線路規(guī)劃:支持自行車騎行規(guī)劃,支持跨城騎行路線規(guī)劃方案。
線路規(guī)劃使用示例
8.定位
定位是一個重要的模塊。單獨做成一個庫。
結合地圖SDK中我的位置圖層進行豐富的位置展示(包括普通模式、跟隨模式、羅盤模式和普通模式結合羅盤模式),支持定位精度圈內和精度圈邊框的顏色變更。
定位使用示例
9.3D Touch
自v3.0起,支持3D Touch。
使用3D Touch手勢,用力點按地圖上某一位置,可以快速路線規(guī)劃或導航至此、分享當前位置短地址等功能,充分發(fā)揮開發(fā)者的創(chuàng)造力。
3D Touch及手勢使用示例
10.離線地圖
用戶可以通過SDK在線下載離線包接口,下載離線地圖包,使用離線地圖可節(jié)省用戶流量,提供更好的地圖展示效果。
離線地圖使用示例
11.LBS云
百度地圖LBS云是百度地圖針對LBS開發(fā)者全新推出的平臺級服務,不僅適用PC應用開發(fā),同時適用移動設備應用的開發(fā)。
- 檢索自有LBS云數(shù)據(jù)。可以實現(xiàn)移動開發(fā)者存儲海量位置數(shù)據(jù)的服務器零成本及維護壓力,且支持高效檢索用戶數(shù)據(jù),且實現(xiàn)地圖展現(xiàn)。
檢索自有LBS云使用示例
- 檢索自有逆地理編碼。開發(fā)者可自定義用于進行逆地理編碼計算的地理數(shù)據(jù),以訓練出最適用于真實業(yè)務場景的位置描述服務。
檢索自有逆地理編碼使用示例
12.周邊雷達
周邊雷達功能,是面向移動端開發(fā)者的一套SDK功能接口。同步支持Android和iOS端。
它的本質是一個連接百度LBS開放平臺前端SDK產(chǎn)品和后端LBS云的中間服務。開發(fā)者利用周邊雷達功能,可以便捷的在自己的應用內,幫助用戶實現(xiàn)查找周邊跟“我”使同樣一款App的人,這樣一個功能。
周邊雷達使用示例
13.位置短地址分享
位置短地址分享
位置短地址分享(簡稱短串分享):用戶搜索查詢后得到的每一個地理位置結果將會對應一條短串(短鏈接),用戶可以通過短信、郵件或第三方分享組件(如微博、微信等)把短串分享給其他用戶從而實現(xiàn)地理位置信息的分享。
當其他用戶收到分享的短串后,點擊短串即可打開手機上的百度地圖客戶端或者手機瀏覽器進行查看。
短串分享功能開放了以下功能:
POI詳情分享。
駕車/公交/騎行/步行路線規(guī)劃分享。
位置信息分享(反向地理編碼結果分享)。
位置短地址分享使用示例
14.調啟百度地圖
利用SDK接口,直接在本地打開百度地圖客戶端或WebApp,實現(xiàn)地圖功能。
支持調啟的功能有:
POI周邊檢索、POI詳情頁面、步行線路規(guī)劃、駕車線路規(guī)劃、公交線路規(guī)劃、駕車導航、步行導航、騎行導航。
調啟百度地圖使用示例
三、定位
百度地圖iOS定位SDK,是百度地圖開放平臺面向廣大iOS端移動應用開發(fā)者全新推出的一款定位服務產(chǎn)品。開發(fā)者在自己的iOS移動應用中集成定位SDK,可輕松實現(xiàn)獲取當前位置信息的功能。
百度地圖iOS定位SDK以iOS系統(tǒng)定位能力為基礎,在此基礎之上,面向廣大開發(fā)者提供了更多豐富功能,包括:地址解析、位置描述、移動熱點識別、地理圍欄、國內外位置判斷等功能。
地理圍欄使用示例
移動熱點識別使用示例
四、鷹眼軌跡
鷹眼是一套軌跡管理服務,提供各端SDK和API供開發(fā)者便捷接入,追蹤您所管理的車輛/人員等運動物體。基于鷹眼提供的接口和云端服務,開發(fā)者可以迅速構建一套完全屬于您自己的完整、精準且高性能的軌跡管理系統(tǒng),可應用于車隊管理、人員管理等領域。鷹眼iOS SDK是鷹眼系列產(chǎn)品的一部分,用于在iOS APP中集成鷹眼服務,實現(xiàn)軌跡追蹤。
功能概覽:
軌跡追蹤
鷹眼為每一個應用提供1000萬終端以上軌跡管理能力,并且支持全球軌跡追蹤。鷹眼提供多種API和SDK供開發(fā)者從各種終端追蹤軌跡,如:手機、GPS定位器、智能后視鏡等硬件設備。此外,鷹眼也支持開發(fā)者從服務端上傳軌跡。
軌跡存儲
鷹眼為開發(fā)者免費存儲最近1年的軌跡數(shù)據(jù)。鷹眼采用多機房多實例分布式存儲,并定期自動備份,保障數(shù)據(jù)存儲安全。
軌跡查詢
利用鷹眼高性能軌跡查詢服務,開發(fā)者實時查詢任意時段的軌跡。實時查詢是指:軌跡點一旦成功上傳到鷹眼云端,在小于100毫秒的時間內,即可通過接口查詢到該軌跡點。鷹眼還提供軌跡批量導出功能,供開發(fā)者下載歷史軌跡數(shù)據(jù)。
軌跡糾偏和里程計算
為糾正軌跡漂移,鷹眼提供專業(yè)的軌跡糾偏綁路和里程計算服務。利用該服務,開發(fā)者可糾正軌跡漂移,展示平滑連貫的軌跡,計算準確的里程。鷹眼分別針對駕車、騎行、步行提供了不同的軌跡糾偏綁路算法,適用于多種交通方式的軌跡校正。
空間檢索
鷹眼提供豐富的空間搜索能力,支持搜索圓形、多邊形、行政區(qū)范圍內的終端實時位置,并統(tǒng)計終端數(shù)量。利用該服務,開發(fā)者可實現(xiàn)例如:搜索當前地圖視野內的終端、北京市內的終端等功能。
地理圍欄監(jiān)控
鷹眼提供地理圍欄監(jiān)控服務,開發(fā)者可利用鷹眼創(chuàng)建多邊形、路線、行政區(qū)等類型的地理圍欄,鷹眼自動監(jiān)控終端進出圍欄行為,并推送報警至鷹眼SDK或開發(fā)者服務端。利用該服務,開發(fā)者可實現(xiàn)例如:利用行政區(qū)圍欄監(jiān)控車輛是否駛出海淀區(qū)、利用多邊形圍欄監(jiān)控物流車輛是否準時到達站點等功能。
軌跡分析
鷹眼為開發(fā)者提供停留點、超速(基于道路限速)、急變速等運動行為分析。利用該服務,開發(fā)者可分析一段軌跡中有哪些停留點、在何處出現(xiàn)了超速等危險駕駛行為。
圖像存儲
除軌跡外,鷹眼還支持圖像數(shù)據(jù)的上傳,幫助開發(fā)者管理與軌跡相關的圖像數(shù)據(jù)(如:行車影像、簽到照片、事故照片等)。(注:目前鷹眼iOS SDK暫不支持圖像上傳功能)
鷹眼服務流程
五、導航
百度iOS導航SDK是一套基于iOS 7及以上版本設備的應用程序接口。您可以使用該套 SDK開發(fā)適用于iOS系統(tǒng)移動設備的導航應用,通過調用導航SDK接口,您可以輕松訪問百度導航的服務和數(shù)據(jù),構建功能豐富、交互性強的導航類應用程序。
百度iOS導航SDK提供的所有服務是免費的,接口使用無次數(shù)限制。
功能介紹
1.GPS導航
導航地圖控制:放大、縮小、2D視角、3D視角。
導航信息展示:轉向標、路口放大圖、路線信息、道路信息、電子眼、限速播報、比例尺等等。
2.路線全覽
導航過程中點擊路線全覽按鈕進入路線全覽模式,路線全覽模式可以展示導航路線上的路況信息。
3.文字導航
文字導航由簡單的誘導信息和語音播放組成。
4.HUD導航
HUD夜間模式,方便用戶夜間駕車,避免了分散對前方道路的注意力。
5.語音播報
使用TTS模塊播報相應的誘導語音,暫時支持中文。
6.實時路況
在導航過程中可以通過路況開關,開啟實時路況了解路況信息。
7.路線規(guī)劃
通過輸入起點與終點,可以發(fā)起路線規(guī)劃。
8.GPS巡航
不用輸入起點終點,準確探測前方電子眼信息。
語音播報使用示例
六、全景
百度iOS全景SDK是為iOS移動平臺提供的一套全景圖服務接口,面向廣大開發(fā)者提供全景圖的檢索、顯示和交互功能,從而更加清晰方便地展示目標位置的周邊環(huán)境。
功能介紹:
1.檢索全景圖
根據(jù)商戶ID、坐標信息和全景ID顯示全景圖。
輸入百度地圖通用的poi id,即可通過全景查看該商戶的門口位置或內部環(huán)境。
輸入地點坐標信息,將返回該地點附近的全景場景點信息。
輸入全景ID,可直接檢索到該全景場景點。
2.展示全景圖
創(chuàng)建全景圖層,調取全景數(shù)據(jù),將360°全景圖展現(xiàn)在手機中。
3.全景基本交互
在全景圖中通過手勢操作實現(xiàn)基本交互,包括點擊、雙擊、縮放、旋轉以及通過拓撲箭頭實現(xiàn)前進等操作。
4.全景覆蓋物
在全景圖中添加自定義覆蓋物,可以標注目標地點、指引道路方向等,滿足開發(fā)者的多元化需求。
全景圖覆蓋物使用示例
七、版本總結
今天是2018年3月31號。目前版本總結如下:
1.地圖
地圖SDK下載地址
-
2018.01.23 v3.4.4
新版提示
1、自v3.2.0起,百度地圖iOS SDK全面支持HTTPS,需要廣大開發(fā)者導入第三方openssl靜態(tài)庫:libssl.a和libcrypto.a(存放于thirdlib目錄下)。
添加方法:在 TARGETS->Build Phases-> Link Binary With Libaries中點擊“+”按鈕,在彈出的窗口中點擊“Add Other”按鈕,選擇libssl.a和libcrypto.a添加到工程中 。
2、支持CocoaPods導入
pod setup //更新CocoPods的本地庫
pod search BaiduMapKit //查看最新地圖SDK
新增
1.新增 BMKConvertToBaiduMercatorFromBD09LL 與 BMKConvertToBD09LLFromBaiduMercator 方法,用于百度經(jīng)緯度和百度墨卡托之間的轉換。
2.新增 CLLocationCoordinate2D BMKCoordTrans(CLLocationCoordinate2D coordinate, BMK_COORD_TYPE fromType, BMK_COORD_TYPE toType); 方法,支持WGS84LL->BD09LL, GCJ02LL->BD09LL, BD09LL->GCJ02LL三種經(jīng)緯度之間的直接轉換。
修復
1.支持iOS11系統(tǒng)定位權限
2.個性化地圖部分catlog不顯示的問題
3.室內圖無背景色的問題
4.polygon繪制大量節(jié)點折線,超出數(shù)量,產(chǎn)生飛線問題
5.部分場景下,點擊離線地圖crash的問題
-
2017.10.19 v3.4.2
新版提示
1、百度地圖iOS SDK v3.4.0及以上版本僅支持iOS 7.0及以上系統(tǒng)。
2、自v3.2.0起,百度地圖iOS SDK全面支持HTTPS,需要廣大開發(fā)者導入第三方openssl靜態(tài)庫:libssl.a和libcrypto.a(存放于thirdlib目錄下)
添加方法:在 TARGETS->Build Phases-> Link Binary With Libaries中點擊“+”按鈕,在彈出的窗口中點擊“Add Other”按鈕,選擇libssl.a和libcrypto.a添加到工程中 。
3、支持CocoaPods導入
pod setup //更新CocoPods的本地庫
pod search BaiduMapKit //查看最新地圖SDK
修復
1.修復多頁面多地圖場景下,切換頁面導致的crash問題。
2.修復檢索對象對delegate的強引用問題。
3.修復在一些罕見場景下,Bugly報告的crash問題。
4.修復第一次通過setBuildingsEnabled接口設置不顯示3D樓塊效果失效的BUG。
優(yōu)化
1.刪除annotation后,不再刪除其對應的annotationView的subView。開發(fā)者dequeue出可重用的annotationView后,為了避免內容堆疊問題,可以自行去避免,如remove subview或者使用不同的reuseIdentifier等。
2.每個reuseIdentifier可緩存多個annotationView,當開發(fā)者removeAnnotation時,SDK會將對應的annotationView加入緩存隊列。
-
2017.08.29 v3.4.0
新版提示
1、百度地圖iOS SDK v3.4.0及以上版本僅支持iOS 7.0及以上系統(tǒng)。
2、自v3.2.0起,百度地圖iOS SDK全面支持HTTPS,需要廣大開發(fā)者導入第三方openssl靜態(tài)庫:libssl.a和libcrypto.a(存放于thirdlib目錄下)
添加方法:在 TARGETS->Build Phases-> Link Binary With Libaries中點擊“+”按鈕,在彈出的窗口中點擊“Add Other”按鈕,選擇libssl.a和libcrypto.a添加到工程中 。
3、支持CocoaPods導入
pod setup //更新CocoPods的本地庫
pod search BaiduMapKit //查看最新地圖SDK
新增
[ 基礎地圖 ]
1.新增當雙擊手勢放大地圖時,可以設置地圖中心點是否移動至點擊處的屬性
BMKMapView新增:
///雙擊手勢放大地圖時, 設置為YES, 地圖中心點移動至點擊處; 設置為NO,地圖中心點不變;默認為YES;
@property(nonatomic, getter=isChangeCenterWithDoubleTouchPointEnabled) BOOL ChangeCenterWithDoubleTouchPointEnabled;
2.支持標注鎖定在屏幕固定位置
BMKPointAnnotation新增:
///Annotation固定在指定屏幕位置, 必須與screenPointToLock一起使用。
注意:拖動Annotation isLockedToScreen會被設置為false。
///若isLockedToScreen為true,拖動地圖時annotaion不會跟隨移動;
///若isLockedToScreen為false,拖動地圖時annotation會跟隨移動。
@property (nonatomic, assign) BOOL isLockedToScreen;
///標注在屏幕中鎖定的位置,注意:地圖初始化后才能設置screenPointToLock。可以在地圖加載完成的回調方法:mapViewDidFinishLoading中使用此屬性。
@property (nonatomic, assign) CGPoint screenPointToLock;
3.新增接口:設定地理范圍在屏幕中的顯示區(qū)域
BMKMapView新增:
/**
根據(jù)當前mapView的窗口大小,預留insets指定的邊界區(qū)域后,將mapRect指定的地理范圍顯示在剩余的區(qū)域內,并盡量充滿
@param mapRect 要顯示的地圖范圍,用直角坐標系表示
@param insets 屏幕四周預留的最小邊界(mapRect的內容不會顯示在該邊界范圍內)
@param animate 是否采用動畫效果
/
- (void)fitVisibleMapRect:(BMKMapRect)mapRect edgePadding:(UIEdgeInsets)insets withAnimated:(BOOL)animate;
- 支持世界地圖循環(huán)顯示
優(yōu)化
1.解決反復創(chuàng)建和銷毀mapView時內存泄漏的問題。
2.對拖動標注時的彈跳動畫效果進行優(yōu)化。
3.修復mapView調用selectAnnotation方法時,回調didSelectAnnotationView不調用的問題。
4.修復行政區(qū)域檢索福建和浙江區(qū)域沒有返回數(shù)據(jù)的問題。
5.修復部分使用場景下,設置mapPadding時,overlay位置偏移的問題。
6.修復部分使用場景下,加載mapView閃黑屏的問題。
7.修復室內圖更新不及時的問題。
由此可見,更新到最新版本是有必要的。除非遇到不可抗力。
2.定位
定位SDK下載地址
-
2018.01.01 v1.1
iOS定位SDK v1.1版本更新:
優(yōu)化:
- 適配iOS11永久定位的設置。
a. 開發(fā)者如果需要永久定位,請在Info.plist里配置NSLocationWhenInUseUsageDescription,NSLocationAlwaysUsageDescription,NSLocationAlwaysAndWhenInUseUsageDescription三項;
b. 如果僅需要使用期間的定位,則需要配置NSLocationWhenInUseUsageDescription,NSLocationAlwaysAndWhenInUseUsageDescription兩項;
- 優(yōu)化WIFI移動熱點識別方法的內部邏輯;
新增:
新增獲取定位唯一標識的方法BMKLocation.locationID,這個標識只與定位本身相關。當開發(fā)者遇到定位問題時,可將這個唯一標識、出現(xiàn)問題時間及問題描述信息發(fā)送至loc-bugs@baidu.com郵件組,我們會有專人支持解決;
在開發(fā)者Debug過程中,增加首次定位的日志,便于開發(fā)者排查問題使用;
-
2017.10.24 v1.0
iOS定位SDK v1.0產(chǎn)品發(fā)布:
新增:
獲取當前位置:基于iOS系統(tǒng)原生定位能力,提供單次定位、連續(xù)定位、后臺定位能力;
坐標轉換:支持直接返回 gcj02、bd09ll、bd09mc、wgs84 類型的坐標。及坐標之間的轉換能力;
國內外判斷:支持經(jīng)緯度坐標,在空間上屬于國內 / 海外;
移動熱點識別:能夠識別當前設備所鏈接的 WIFI 是否為其他設備所開放的移動熱點;
地理圍欄:在系統(tǒng)原生地理圍欄能力之上,支持多邊形圍欄;
地址信息獲取:獲取經(jīng)緯度的同時,可獲取當前地址信息(省、市、區(qū)、縣等),全球同步支持;
周邊POI獲取:獲取經(jīng)緯度的同時,可獲取當前點周邊POI(如周邊商場、飯店等);
當前位置描述:獲取經(jīng)緯度的同時,可獲取更人性化的當前地點描述(如在百度大廈北側等);
3.鷹眼軌跡
鷹眼軌跡SDK下載地址
-
2017.10.23 v3.0.6
修復問題:
修復采集周期和打包周期持久化失敗的BUG,設置完采集和打包周期之后,下次開啟服務或開始采集時,將使用之前設置的值,而不再使用默認值
修復從非主線程調用 -(void)changeGatherAndPackIntervals:(NSUInteger)gatherInterval packInterval:(NSUInteger)packInterval delegate:(id <BTKTraceDelegate>)delegate; 方法時,采集和打包周期不生效的BUG
修復某些復雜使用場景下,無法停止采集的BUG
4.導航
導航SDK下載地址
-
2017.06.15 v3.2.0
同步百度地圖9.7版本,解決定位問題
起終點距離過近算路支持,支持“1米”導航
TTS鑒權方案優(yōu)化,接入語音平臺標準鑒權機制
新增導航結束是否自動退出導航設置接口
增加分發(fā)功能,如果地圖app版本比導航sdk新很多,調起地圖
5.全景
全景SDK下載地址
-
2017.09.19 v2.6.1
修復:
iOS11+Xcode9下全景白屏問題