Android如何获得粗略位置?


15

我读到,通过使用WiFi或GSM塔三角测量,Android(以及类似的操作系统,例如iOS)获得了当前的粗略位置。我有基本的想法,但对细节有疑问。

  1. Android通常会同时使用这两种方法,还是会优先选择其中一种方法而又退回到另一种方法?
  2. 它是否与服务器通讯以通过WiFi获取位置?(例如,将WiFi的SID发送到Web服务)
  3. 它是否与运营商通信以通过GSM塔获取位置,还是在设备上完成?

Answers:


8

对于开发者来说,如何实现定位服务完全取决于开发者。完整的描述可在这里找到:

http://developer.android.com/guide/topics/location/obtaining-user-location.html

该页面下半部约1/3的图形对于查看典型应用程序可能会做什么非常有用,但同样,它完全取决于应用程序开发人员。定位服务类型为:

  • 缓存修复
  • 小区ID
  • 无线上网
  • 全球定位系统
  • 模拟位置

如果应用仅请求粗略位置许可,它将不会使用GPS确定位置。

要回答您的问题...

  1. 这取决于各个应用程序开发人员,但在大多数情况下,该顺序将依次为“缓存修复”,“ Cell-ID”,“ Wifi”,“ GPS”。
  2. 是的,在获取WiFi信号的信号塔ID或SSID之后,该数据会传输到Google以确定大概的位置。
  3. 不,谷歌在这里做了一件非常聪明的事情。Google拥有自己的手机发射塔位置数据库,不需要与运营商进行互动即可确定发射塔的位置。

本文提供了一些详细信息http://franciscokattan.com/2010/02/06/dynamic-cell-id-clever-way-to-block-google-but-will-it-backfire/

简短的版本是,当您使用Google Maps之类的应用程序时,该应用程序会将当前的Cell-ID信息与当前的GPS定位信息一起发送回去。这样,Google可以很好地采样各个位置的信号强度,并能够建立非常丰富的数据库。


我非常喜欢您的回答,但是我不确定您在“完全取决于开发人员”部分的权利。据我所知,开发人员只能决定获得精确位置还是粗糙位置。换句话说,他可以使用LocationManager.NETWORK_PROVIDER和/或LocationManager.GPS_PROVIDER来获取位置。我认为他无法决定甚至看不到是否使用Wifi或GSM,对吗?
TimBüthe10年

在最常见的情况下,开发人员不会在意数据是否来自WiFi或Cell-ID,但开发人员可以设置限制,使其仅在禁用WiFi或禁用GPRS / GSM时才允许应用程序运行。我以您的问题的意思是:“是否有所有应用程序都遵循的标准顺序”,答案是否定的。但是,特别注意WiFi和Cell-ID之间的区别,应用程序开发人员具有有限的能力来专门请求一种类型的位置服务。
JadeMason

1
您是否知道一种将Wi-Fi热点的位置提交到其数据库的方法,以便在邻里/室内进行更好的三角剖分?:我已经打开了我的那个questione线程android.stackexchange.com/questions/4715/...
Özgür的

3

其中很多是特定于运营商的,我不是开发人员,但是以下是我可以从Interweb和我在电子犯罪调查中接受的培训中总结出来的内容:

  1. 是的,但这取决于开发人员设置的特定应用LBS优先级,并且可以基于当前课程的准确性,功率级别,预定义的优先级...
  2. 是。运营商拥有专有的Wifi基站位置数据库。
  3. 我不能特别针对Android,但是通常这将是运营商和网络类型(CDMA或GSM)。手机可以同时使用这两种功能,但至少在几年前,由于手机的带宽限制,它们在手机上完成了这项工作。


0

您的电话知道最近的塔是什么。每个国家/地区都有一个提供商数据库,其中塔楼ID位于地图上的位置。该数据库可能很小,可以由您的提供商预先安装或通过无线方式提供。我不知道android手机如何获取此数据。


-1

对于#3,我的回答略有不同:如果要使用三角测量,可以使用该设备,但是如果要匹配Cell-ID和gsm(或cdma)塔的本地化,则需要使用运营商。


但这是应用开发人员甚至最终用户可以确定的选项,还是由运营商确定的选项?
马特2010年

如果要使用这种方式本地化设备,则这是强制性的。使用三角剖分或其他方法可以让您知道当前位置与天线位置。但是,如果您不知道天线的纬度/经度,就无法在地图上找到位置。我回家了,我很清楚:)
Rob

@Rob但是您不需要承运人来找到塔的位置。每个塔广播一个唯一的ID,任何人都可以独立拾取并映射它,而无需运营商交互。Google已经为手机信号塔和WiFi接入点做了一段时间。Google Streetview汽车会在行驶过程中获取信息,并且各种平台上的Google Maps用户还会发回匿名数据,这些数据与GPS修正匹配,并带有天线和wifi ID和强度。这类似于Google如何在城市中提取大量交通数据,汇总来自许多Maps用户的速度和位置。
GAThrawn

你确定吗 ?看起来很奇怪。例如,在德国(和欧洲其他国家),谷歌已被起诉收集WiFi信息,因此看起来他们没有使用此资源。对于GSM数据库,如果Google拥有它,则应该可以访问它,而我从未听说过。
罗布

1
@ Robgooglemobile.blogspot.com/ 2008/ 06/… “手机知道当前正在使用的手机信号塔的ID。如果手机具有GPS,则手机上的Maps应用程序会将GPS坐标以及手机ID发送给Google位置服务器。” 目前无法找到链接,但他们不久前宣布,出于相同的原因,Blackberry Google Maps应用正在发送附近的WiFi SSID和强度。这与被起诉的Streetview软件中的编程“错误”不同,后者捕获的WiFi数据超出了预期的范围。
GAThrawn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.