題:
Android如何獲得粗略位置?
Tim Büthe
2010-09-28 00:38:56 UTC
view on stackexchange narkive permalink

我了解到,Android(以及類似的操作系統,例如iOS)通過使用WiFi或GSM塔式三角測量來獲取當前的粗略位置。我有基本的想法,但對細節有疑問。

  1. Android通常會同時使用這兩種方法,還是更喜歡其中一種方法而又回到另一種方法?
  2. 與服務器通信以通過WiFi獲取位置? (例如,將WiFi的SID發送到Web服務)
  3. 它是否與運營商通信以通過GSM塔獲取位置,還是在設備上完成?
  4. ol>
四 答案:
JadeMason
2010-09-29 09:39:21 UTC
view on stackexchange narkive permalink

有關如何實施位置服務,這實際上取決於開發人員。完整說明可在 Android Developers官方網站(於2010年9月24日捕獲)

該頁面下半部約1/3處的圖形非常有用,可用來了解典型的應用程序可以做到,但是同樣,這完全取決於應用程序開發人員。位置服務類型為:

  • 緩存修復
  • Cell-ID
  • WiFi
  • GPS
  • 模擬位置

如果應用僅請求粗略位置許可,它將不會使用GPS來確定位置。

要回答您的問題:

  1. 這取決於單個應用程序開發人員,但是在大多數情況下,該順序將依次為緩存修復,Cell-ID,WiFi,GPS。
  2. 是,在獲取後WiFi信號的信號塔ID或SSID,則該數據會傳輸到Google以確定大概的位置。
  3. 不,Google在這裡做了一些非常聰明的事情。 Google擁有自己的細胞發射塔位置數據庫,不需要與運營商進行互動來確定發射塔的位置。
  4. ol>

    Francisco Kattan在“動態細胞- ID”包含一些詳細信息。簡短的版本是,當您使用類似Google Maps的應用程序時,該應用程序將把當前的Cell-ID信息與當前的GPS定位信息一起發送回去。這樣,Google可以很好地採樣各個位置的信號強度,並能夠建立非常豐富的數據庫。

我非常喜歡您的回答,但是我不確定您在“完全由開發人員決定”部分的權利。據我所知,開發人員只能決定獲得精確位置還是粗糙位置。換句話說,他可以使用LocationManager.NETWORK_PROVIDER和/或LocationManager.GPS_PROVIDER來獲取位置。我認為他無法決定甚至看不到是否使用Wifi或GSM,對嗎?
在最常見的情況下,開發人員不會在意數據是否來自WiFi或Cell-ID,但開發人員可以設置限制,使其僅在禁用WiFi或禁用GPRS / GSM時才允許應用程序運行。我的問題是:“所有應用程序都遵循標準順序嗎?”的答案是否定的。但是,特別考慮到WiFi和Cell-ID之間的區別,應用程序開發人員具有有限的能力來專門請求一種位置服務。
Matt
2010-09-28 01:14:17 UTC
view on stackexchange narkive permalink

其中很多是特定於運營商的,我不是開發人員,但是我可以從互聯網和電子犯罪調查中接受的培訓中總結出這些東西:

  1. 是的,但這取決於開發人員設置的特定應用的LBS優先級,並且可以基於當前課程的準確性,功率水平,預定義的優先級等。
  2. 是。運營商擁有專有的WiFi基站位置數據庫。
  3. 我不能專門針對Android,但是通常,這將是運營商和網絡類型(CDMA或GSM)。手機可以同時具備這兩種功能,但至少在幾年前,由於在手機上進行OTA的帶寬限制,他們在手機上完成了這項工作。
  4. ol>
HTTP://developer.Android.com/reference/Android/location/location manager.HTML
Barfieldmv
2010-09-28 13:28:12 UTC
view on stackexchange narkive permalink

您的手機知道最近的塔樓是什麼。

每個國家都有一個提供商數據庫,其中存儲了塔樓ID在地圖上的位置。該數據庫可能足夠小,可以由您的提供商預先安裝或通過無線方式提供。我不知道Android手機如何獲取這些數據。

Rob
2010-09-28 01:23:29 UTC
view on stackexchange narkive permalink

它是否與運營商通信以通過GSM塔獲取位置,還是在設備上完成?

如果要使用三角測量,可以使用該設備,但是如果您要匹配Cell-ID和GSM(或CDMA)塔的位置,則需要使用運營商。

但這是應用開發人員甚至最終用戶可以確定的選項,還是由運營商確定的選項?
如果要使用這種方式本地化設備,則這是強制性的。使用三角剖分或其他方法可以讓您知道當前位置與天線位置。但是,如果您不知道天線的緯度/經度,就無法在地圖上找到位置。我回家我很清楚:)
@Rob但是您不需要承運人來找到塔的位置。每個塔都廣播一個唯一的ID,任何人都可以獨立拾取並映射它,而無需運營商交互。 Google已經為手機信號塔和WiFi接入點做了一段時間。 Google Streetview汽車會在行駛過程中獲取信息,並且各種平台上的Google Maps用戶還會發回匿名數據,這些數據與GPS修正匹配,並帶有天線和wifi ID和強度。這類似於Google如何在城市中提取大量交通數據,匯總來自許多Maps用戶的速度和位置。
你確定嗎 ?看起來很奇怪。例如,在德國(以及歐洲的其他國家),Google被起訴收集WiFi信息,因此看起來他們沒有使用此資源。對於GSM數據庫,如果Google擁有一個數據庫,則應該可以訪問它,而我從未聽說了。
@Rob http: // googlemobile.blogspot.com / 2008/06 / google-enables-location-aware.html“手機知道其當前正在使用的手機信號塔的ID。如果手機具有GPS,則手機上的“地圖”應用程序會發送GPS坐標以及到Google位置服務器的小區ID。”目前無法找到鏈接,但他們不久前宣布,出於相同的原因,Blackberry Google Maps應用正在發送附近的WiFi SSID和強度。這與他們被起訴的Streetview軟件中的編程“錯誤”不同,後者捕獲的WiFi數據超出了預期的範圍。
+1感謝您的鏈接!因此,Google擁有一個GSM塔/本地化的數據庫...多麼有趣。我們是否可以訪問此Web服務?


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 2.0許可。
Loading...