日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

iOS 地图与指南针使用方案

發布時間:2023/12/8 编程问答 63 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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. 讓指南針圖片反向旋轉對應角度,
      這樣就可以不斷指向磁北
  • 獲取手機朝向: [locationM startUpdatingHeading];
  • magneticHeading(磁北方向和真北方向,取值范圍:0-359.9;順時針為正)
  • 注意:獲取手機設備朝向不需要用戶定位授權
  • 【區域監聽】

  • startMonitoringForRegion (CLCircularRegion區域;注意,因為需要使用到用戶的
    當前位置,所以iOS8.0+后需要請求用戶授權)
  • locationManager:didEnterRegion: (進入區域)
  • locationManager:didExitRegion: (離開區域)
  • 后臺區域監聽
  • 【(反)地理編碼】

  • 演示項目效果
  • CLGeocoder對象
  • 三種編碼方案
  • CLPlacemark講解(locality:城市名稱 thoroughfare:街道名稱 name:
    全稱 CLLocation *location)
  • 反地理編碼
  • 【定位的第三方框架】

  • 優點:可以使用block接收用戶的位置,corelocation框架定位使用代理進行傳值,
    代碼比較分散
  • 下載框架(locationManager框架)
  • 使用block進行定位(帶delayUntilAuthorized參數的定位:超時時間從什么時候開始
    計算)(依然要配置info.plist文件對應的鍵值對)
  • 通過定位請求ID分別取消定位(不會回調block)和強制完成定位(會回調block)
  • 注意:此框架針對于iOS9.0 ,前臺授權時,后臺是無法獲取用戶位置
  • 轉載于:https://www.cnblogs.com/OnNineMonkey/p/5371294.html

    總結

    以上是生活随笔為你收集整理的iOS 地图与指南针使用方案的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。