iOS設備支持的定位方式有多種最先期的iPhone只支持經過運營商的基站信號進行定位後來iOS系統開始引入WiFi支持從而容許iOS設備經過周圍的WiFi信號進行定位。服務器
從iPhone 3g開始iPhone手機提供了內置的GPS模塊處理芯片從而容許經過GPS衛星系統進行定位。從iPhone 4開始iPhone手機更換了精確度更高、耗電量更少、靈敏度更高的芯片所以可使用GPS進行精肯定位。網絡
下面先簡單介紹iOS定位支持的3種模式。ide
GPS是英文Global Positioning System全球定位系統的簡稱GPS是20世紀70年代由美國陸海空三軍聯合研製的新一代空間衛星導航定位系統。從這個介紹不難發現GPS的做用就是爲全球的物體提供定位功能。優化
GPS定位系統由3部分組成即由GPS衛星組成的空間部分、若干地面站組成的控制部分和普通用戶手中的接收機這3個部分。對於手機用戶來講手機就是GPS定位系統的接收機也就是說GPS定位須要手機的硬件支持GPS功能。spa
GPS定位須要能收到衛星信號才行衛星信號可能會被建築物好比高樓遮擋所以通常須要在室外進行接收、定位。雖然iPhone 4採用了高靈敏度的GPS芯片但仍然須要在窗戶旁或者戶外才能進行接收、定位由於只有這些地方纔能確保衛星信號的強度和穩定性。開發
與基站定位、WiFi定位相比GPS定位耗電量最大速度最慢可是精度最高。it
須要說明的是iOS的GPS定位與單純的GPS定位不一樣它是一種所謂輔助GPS簡稱A-GPS。A-GPS首先經過基站定位或WiFi定位得到該設備的大概位置而後經過將設備的大體位置發到遠程服務器由服務器負責進行查詢和計算從而獲取當前位置的衛星信息並經過網絡將這些衛星信息反饋給iOS設備這樣就避免了iOS設備直接經過GPS掃描、分析天上的衛星信息如哪些衛星可見、具體在什麼位置、時鐘是多少等。所以一般來講A-GPS比單純的GPS更快。固然這只是通常而論對於專業級的GPS定位設備其GPS芯片的靈敏度可能更好所以這種GPS定位設備確定更快。io
A-GPS的優勢是定位快缺點是須要網絡但也只是在初次定位時須要網絡一旦衛星信息返回在一段時間和範圍內這些衛星信息無須改變接下來的GPS定位就無須聯網直接使用已有的衛星參數便可。class
在iOS設備上iOS系統會綜合使用上述定位方式。通常來講iOS系統可能先按照最快的「無網基站定位」返回一個位置當有網絡鏈接時再使用「有網基站定位」來更新位置而後利用A-GPS查詢衛星星圖最後在能收到GPS信號的狀況下轉爲使用GPS定位。原理
根據當前衛星信號狀況和網絡環境iOS系統可能在上述方式之間反覆迭代不必定按照特定步驟或方式並且隨着iOS系統升級定位順序和規則可能改變。
每一個手機基站都有一個標識符iOS設備能夠蒐集周圍全部收到信號的基站和它們的標識符經過聯網發送到蘋果雲端服務器再由服務器根據這些基站的位置信息查詢並計算出當前位置而後把該定位信息返回給手機。由於基站信號的輻射範圍大因此相對來講偏差是比較大的一般在500米到幾千米範圍內。
基於基站定位的方式具備速度快耗電量比較少但偏差較大的特徵。
在沒有網絡的狀況下iOS 4對其進行了優化能夠在沒有網絡鏈接時採用無網定位由於Apple已經預先將一些重要基站幾十千米選一個提早存儲在iOS系統中所以即便不聯網iOS系統也可經過這些本地基站信息定位到設備的位置。這種定位方式的偏差更大一般在10千米到50千米範圍內。
無網基站定位的前提是iOS設備能接收到內置在手機中的那些「重要基站」的信號不必定是你的手機所屬運營商只要能收到信號就能夠了因此室內、室外同樣均可以進行基站定位。
WiFi定位和基站定位的原理大體類似iOS設備經過無線網卡蒐集周圍全部的WiFi熱點得到它們的MAC地址而後經過Apple的雲端服務器查詢該WiFi熱點是否已經登記若是已經登記便可獲取該WiFi熱點的位置最後經過對多個WiFi熱點折中計算獲得當前位置並返回給iOS設備。
只要能收到手機信號的地方均可經過WiFi定位室內、室外的效果相同。
WiFi定位速度、耗電量和精度都介於基站和GPS之間精度大概在幾十米範圍內。
傳統的WiFi定位是須要網絡的可是iOS系統對其進行了優化能夠實現無網WiFi定位。無網WiFi定位的原理是iOS設備在聯網狀態下會大體定位出設備的位置並自動將設備所在地周圍全部的WiFi熱點信息保存在手機系統中。在接下來的時間內即便當前iOS設備沒有聯網iOS系統也能夠利用以前保存的本地的WiFi熱點信息定位出設備的位置。
根據無網WiFi定位的原理不難看出無網WiFi定位的前提是該iOS設備以前在該區域附近曾經接入過網絡若是初次到一個陌生的地方無網WiFi是沒法定位的。
iOS系統在進行定位時已將底層具體的定位細節進行了屏蔽——也就是說這些定位細節對開發者而言是透明的iOS系統會智能地根據設備的狀況和周圍的環境採用一套最佳的解決方案。例如可以接收GPS信號那麼優先使用GPS定位不然採用WiFi或基站定位在WiFi和基站之間優先使用WiFi若是沒法鏈接WiFi才使用基站定位。