ios
裝置支援的定位方式有多種,最早期的
iphone
只支援通過運營商的基站訊號進行定位,後來
ios系統開始引入
wifi
支援,從而允許
ios裝置通過周圍的
wifi
訊號進行定位。 從
iphone 3g
開始,iphone
手機提供了內建的
gps模組處理晶元,從而允許通過
gps衛星系統進行定位。從
iphone 4
開始,iphone
手機更換了精確度更高、耗電量更少、靈敏度更高的晶元,因此可以使用
gps進行精確定位。
下面先簡單介紹
ios定位支援的
3種模式。
gps是英文
global positioning system
(全球定位系統)的簡稱,
gps是
20世紀
70年代由美國陸海空三軍聯合研製的新一代空間衛星導航定位系統。從這個介紹不難發現,
gps的作用就是為全球的物體提供定位功能。
gps定位系統由
3部分組成,即由
gps衛星組成的空間部分、若干地面站組成的控制部分和普通使用者手中的接收機這
3個部分。對於手機使用者來說,手機就是
gps定位系統的接收機,也就是說,
gps定位需要手機的硬體支援
gps功能。
gps定位需要能收到衛星訊號才行,衛星訊號可能會被建築物(比如高樓)遮擋,因此一般需要在室外進行接收、定位。雖然
iphone 4
採用了高靈敏度的
gps晶元,但仍然需要在窗戶旁或者戶外才能進行接收、定位,因為只有這些地方才能確保衛星訊號的強度和穩定性。
與基站定位、
wifi
定位相比,
gps定位耗電量最大,速度最慢,但是精度最高。
需要說明的是,
ios的
gps定位與單純的
gps定位不同,它是一種所謂輔助
gps(簡稱
a-gps
)。a-gps
首先通過基站定位或
wifi
定位獲得該裝置的大概位置,然後通過將裝置的大致位置發到遠端伺服器,由伺服器負責進行查詢和計算,從而獲取當前位置的衛星資訊,並通過網路將這些衛星資訊反饋給
ios裝置,這樣就避免了
ios裝置直接通過
gps掃瞄、分析天上的衛星資訊,如哪些衛星可見、具體在什麼位置、時鐘是多少等。因此,通常來說
a-gps
比單純的
gps更快。當然,這只是一般而論,對於專業級的
gps定位裝置,其
gps晶元的靈敏度可能更好,因此這種
gps定位裝置肯定更快。
a-gps
的優點是定位快,缺點是需要網路,但也只是在初次定位時需要網路,一旦衛星資訊返回,在一段時間和範圍內,這些衛星資訊無須改變,接下來的
gps定位就無須聯網,直接使用已有的衛星引數即可。 在
ios裝置上,
ios系統會綜合使用上述定位方式。一般來說,
ios系統可能先按照最快的「無網基站定位」返回乙個位置,當有網路連線時,再使用「有網基站定位」來更新位置,然後利用
a-gps
查詢衛星星圖,最後在能收到
gps訊號的情況下,轉為使用
gps定位。
根據當前衛星訊號情況和網路環境,
ios系統可能在上述方式之間反覆迭代,不一定按照特定步驟或方式,而且隨著
ios系統公升級,定位順序和規則可能改變。
每個手機基站都有乙個識別符號,
ios裝置可以蒐集周圍所有收到訊號的基站和它們的識別符號,通過聯網傳送到蘋果雲端伺服器,再由伺服器根據這些基站的位置資訊查詢並計算出當前位置,然後把該定位資訊返回給手機。因為基站訊號的輻射範圍大,所以相對來說誤差是比較大的,通常在
500公尺到幾公里範圍內。
基於基站定位的方式具有速度快,耗電量比較少,但誤差較大的特徵。
在沒有網路的情況下,
ios 4
對其進行了優化,可以在沒有網路連線時採用無網定位,因為
已經預先將一些重要基站(幾十公里選乙個)提前儲存在
ios系統中,因此即使不聯網,
ios系統也可通過這些本地基站資訊定位到裝置的位置。這種定位方式的誤差更大,通常在
10公里到
50公里範圍內。
無網基站定位的前提是:
ios裝置能接收到內建在手機中的那些「重要基站」的訊號,不一定是你的手機所屬運營商,只要能收到訊號就可以了,所以室內、室外一樣都可以進行基站定位。
wifi
定位和基站定位的原理大致相似,
ios裝置通過無線網絡卡蒐集周圍所有的
wifi
熱點,獲得它們的
mac位址,然後通過
的雲端伺服器查詢該
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
才使用基站定位。
IOS 定位服務
ios中的core location提供了定位功能,能定位裝置的當前座標,同時能得到裝置移動資訊。因為對定位裝置的輪詢是很耗電的,所以最好只在非常必要的前提下啟動。其中,最重要的類是cllocationmanager,定位管理。其定位有3種方式 1,gps,最精確的定位方式,貌似iphone1是不支...
iOS 定位服務
過年後第一次來上班,那麼我們來說說ios上的定位服務 首先說定位共分三種方法,第一利用wifi,第二是移動蜂窩網路,第三是利用gps 然後是ipod touch上是不具備gps模組的,所以不能利用gps進行定位 最後想說的是,因為老闆不相信iphone可以利用gps,所以下面的例子可以在關閉wifi...
android 定位服務
目前,對於定位主要有三種實現方式 通過網路 基站和gps來獲取到所有玩家的經緯度,然後傳送給伺服器計算,以此來實現附近的人資訊展示功能。最開始做的時候,使用了android自帶的定位服務 locationmanager locationmanager locationmanager getsyste...