iOS 地图与指南针使用方案
生活随笔
收集整理的這篇文章主要介紹了
iOS 地图与指南针使用方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
CoreLocation框架
定位(iOS8.0-
- iOS8.0- 的定位實現
- 設置授權說明(段子寫得好,用戶授權的概率大)
- 設置位置更新的距離過濾(防止過于頻繁的調用代理方法)
- 設置定位精度(精度越高,耗電越快。所以要根據需求選擇合適的定位精度)
- 后臺定位(勾選后臺模式:location update)
定位(iOS8.0+適配)
- iOS8.0+授權適配(兩種適配方案:通過系統版本號,通過對象是否響應方法)
(配置info.plist文件中對應的鍵值) - requestWhenInUseAuthorization 和 requestAlwaysAuthorization 區別
(前者只有在APP前臺時可以定位,后者可以在前后臺進行定位) - 勾選后臺運行模式location后的變化(在9.0之前,前者后臺依然可以定位,
但會出現藍條;后者不會出現藍條;) - 授權狀態的變更,調用對應的代理方法(說明不同狀態代表的含義,給予用戶對應的提示)
- 演示前后臺授權和前臺授權同時請求時會發生什么情況,并解釋原因。
- 在Info.plist文件中添加如下配置:
- NSLocationAlwaysUsageDescription
- NSLocationWhenInUseUsageDescription
定位(iOS9.0補充)
- requestWhenInUseAuthorization 和 requestAlwaysAuthorization 區別(前者
只有在APP前臺時可以定位,后者可以在前后臺進行定位) - 勾選后臺運行模式location后的變化(效果同上,在while using the app 授權模式下,
要想再次使用后臺定位,必須使用allowsBackgroundLocationUpdates方法進行設置,
但同樣還是會出現藍條) - requestLocation 作用:按照定位精確度從低到高進行排序,逐個進行定位。
如果獲取到的位置不是精確度最高的那個,也會在定位超時后,通過代理告訴外界
(必須實現代理的-locationManager:didFailWithError:方法, 不能
與startUpdatingLocation方法同時使用)
【CLLocation對象詳解】
- coordinate(當前位置所在的經緯度)
- altitude (海拔)
- speed (當前速度)
- -distanceFromLocation (獲取兩個位置之間的直線物理距離)
- 場景演示:打印當前用戶的行走方向,偏離角度以及對應的行走距離,
例如:”北偏東30度方向,移動了8米” - 實現步驟:
- 獲取對應的方向偏向(例如”正東””東偏南”)
- 獲取對應的偏離角度(并判斷是否是正方向)
- 計算行走距離
- 打印信息
【指南針】
- 實現思路:1.獲取手機設備朝向(距離磁北方向的角度) 2. 讓指南針圖片反向旋轉對應角度,
這樣就可以不斷指向磁北
【區域監聽】
當前位置,所以iOS8.0+后需要請求用戶授權)
【(反)地理編碼】
全稱 CLLocation *location)
【定位的第三方框架】
代碼比較分散
計算)(依然要配置info.plist文件對應的鍵值對)
轉載于:https://www.cnblogs.com/OnNineMonkey/p/5371294.html
總結
以上是生活随笔為你收集整理的iOS 地图与指南针使用方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过 GitHubPage 与 Hexo
- 下一篇: 在STM32上对EV1527等无线编码格