下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
【移動應(yīng)用開發(fā)技術(shù)】IOSCoreLocation實現(xiàn)系統(tǒng)自帶定位的方法
CoreLocation是iOSSDK中一個提供設(shè)備位置的框架。可以使用三種技術(shù)來獲取位置:GPS、蜂窩或WiFi。在這些技術(shù)中,GPS最為精準(zhǔn),如果有GPS硬件,CoreLocation將優(yōu)先使用它。如果設(shè)備沒有GPS硬件(如WiFiiPad)或使用GPS獲取當(dāng)前位置時失敗,CoreLocation將退而求其次,選擇使用蜂窩或WiFi。CoreLocation的大多數(shù)功能是由位置管理器(CLLocationManager)提供的,可以使用位置管理器來指定位置更新的頻率和精度,以及開始和停止接收這些更新。要使用位置管理器,必須首先將框架CoreLocation加入到項目中,再導(dǎo)入其接口文件:并初始化位置管理器,指定更新代理,以及一些更新設(shè)置,然后更新位置管理器委托(CLLocationManagerDelegate)有兩個與位置相關(guān)的方法:第一個方法處理定位成功,manager參數(shù)表示位置管理器實例;locations為一個數(shù)組,是位置變化的集合,它按照時間變化的順序存放。如果想獲得設(shè)備的當(dāng)前位置,只需要訪問數(shù)組的最后一個元素即可。集合中每個對象類型是CLLocation,它包含以下屬性:coordinate—坐標(biāo)。一個封裝了經(jīng)度和緯度的結(jié)構(gòu)體。altitude—海拔高度。正數(shù)表示在海平面之上,而負數(shù)表示在海平面之下。horizontalAccuracy—位置的精度(半徑)。位置精度通過一個圓表示,實際位置可能位于這個圓內(nèi)的任何地方。這個圓是由coordinate(坐標(biāo))和horizontalAccuracy(半徑)共同決定的,horizontalAccuracy的值越大,那么定義的圓就越大,因此位置精度就越低。如果horizontalAccuracy的值為負,則表明coordinate的值無效。verticalAccuracy—海拔高度的精度。為正值表示海拔高度的誤差為對應(yīng)的米數(shù);為負表示altitude(海拔高度)的值無效。speed—速度。該屬性是通過比較當(dāng)前位置和前一個位置,并比較它們之間的時間差異和距離計算得到的。鑒于CoreLocation更新的頻率,speed屬性的值不是非常精確,除非移動速度變化很小。應(yīng)用程序開始跟蹤用戶的位置時,將在屏幕上顯示一個是否允許定位的提示框。如果用戶禁用定位服務(wù),iOS不會禁止應(yīng)用程序運行,但位置管理器將生成錯誤。第二個方法處理這種定位失敗,該方法的參數(shù)指出了失敗的原因。如果用戶禁止應(yīng)用程序定位,error參數(shù)將為kCLErrorDenied;如果CoreLocation經(jīng)過努力后無法確認位置,error參數(shù)將為kCLErrorLocationUnknown;如果沒有可供獲取位置的源,error參數(shù)將為kCLErrorNetwork。通常,CoreLocation將在發(fā)生錯誤后繼續(xù)嘗試確定位置,但如果是用戶禁止定位,它就不會這樣做;在這種情況下,應(yīng)使用方法stopUpdatingLocation停止位置管理器??筛鶕?jù)實際情況來指定位置精度。例如,對于只需確定用戶在哪個國家的應(yīng)用程序,沒有必要要求CoreLocation的精度為10米。要指定精度,可在啟動位置更新前設(shè)置位置管理器的desiredAccuracy。有6個表示不同精度的枚舉值:對位置管理器啟動更新后,更新將不斷傳遞給位置管理器委托,直到停止更新。您無法直接控制這些更新的頻率,但可使用位置管理器的屬性distanceFilter進行間接控制。在啟動更新前設(shè)置屬性distanceFilter,它指定設(shè)備(水平或垂直)移動多少米后才將另一個更新發(fā)送給委托。下面的代碼使用適合跟蹤長途跋涉者的設(shè)置啟動位置管理器:P.s.定位要求的精度越高、屬性distanceFilter的值越小,應(yīng)用程序的耗電量就越大。位置管理器有一個headingAvailable屬性,它指出設(shè)備是否裝備了磁性指南針。如果該屬性為YES,就可以使用CoreLocation來獲取航向(heading)信息。接收航向更新與接收位置更新極其相似,要開始接收航向更新,可指定位置管理器委托,設(shè)置屬性headingFilter以指定要以什么樣的頻率(以航向變化的度數(shù)度量)接收更新,并對位置管理器調(diào)用方法startUpdatingHeading:位置管理器委托協(xié)議定義了用于接收航向更新的方法。該協(xié)議有兩個與航向相關(guān)的方法:第一個方法指定位置管理器是否向用戶顯示校準(zhǔn)提示。該提示將自動旋轉(zhuǎn)設(shè)備360°。由于指南針總是自我校準(zhǔn),因此這種提示僅在指南針讀數(shù)劇烈波動時才有幫助。當(dāng)設(shè)置為YES后,提示可能會分散用戶的注意力,或影響用戶的當(dāng)前操作。第二個方法的參數(shù)newHeading是一個CLHeading對象。CLHeading通過一組屬性來提供航向讀數(shù):magneticHeading和trueHeading。這些值的單位為度,類型為CLLocationDirection,即雙精度浮點數(shù)。這意味著:如果航向為0.0,則前進方向為北;如果航向為90.0,則前進方向為東;如果航向為180.0,則前進方向為南;如果航向為270.0,則前進方向為西。CLHeading對象還包含屬性headingAccuracy(精度)、timestamp(讀數(shù)的測量時間)和description(這種描述更適合寫入日志而不是顯示給用戶)。下面演示了利用這個方法處理航向更新:trueHeading和magneticHeading分別表示真實航向和磁性
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版別墅區(qū)智能家居系統(tǒng)安裝與維護合同2篇
- 專業(yè)自卸車租賃服務(wù)協(xié)議(2024版)版B版
- 二零二五年度鋼材現(xiàn)貨及期貨交易代理合同3篇
- 二零二五年度地磚供貨與旅游度假區(qū)合同3篇
- 2024版拓展訓(xùn)練合同范本大全
- 濰坊醫(yī)學(xué)院《阿拉伯文學(xué)選讀》2023-2024學(xué)年第一學(xué)期期末試卷
- 天津工業(yè)大學(xué)《土木水利(建筑與土木工程)領(lǐng)域論文寫作指導(dǎo)》2023-2024學(xué)年第一學(xué)期期末試卷
- 泰山護理職業(yè)學(xué)院《音樂會實踐(2)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度旅游線路開發(fā)居間服務(wù)合同范本6篇
- 2025年度船舶動力系統(tǒng)研發(fā)與建造合同3篇
- 小兒甲型流感護理查房
- 霧化吸入療法合理用藥專家共識(2024版)解讀
- 寒假作業(yè)(試題)2024-2025學(xué)年五年級上冊數(shù)學(xué) 人教版(十二)
- 銀行信息安全保密培訓(xùn)
- 市政道路工程交通疏解施工方案
- 2024年部編版初中七年級上冊歷史:部分練習(xí)題含答案
- 拆遷評估機構(gòu)選定方案
- 床旁超聲監(jiān)測胃殘余量
- 上海市松江區(qū)市級名校2025屆數(shù)學(xué)高一上期末達標(biāo)檢測試題含解析
- 綜合實踐活動教案三上
- 《新能源汽車電氣設(shè)備構(gòu)造與維修》項目三 新能源汽車照明與信號系統(tǒng)檢修
評論
0/150
提交評論