不需要使用GPS获取位置(纬度/经度),就像Google地图中的“我的位置”功能一样。

5

不需要GPS即可获取位置(纬度/经度),就像Google地图中的“我的位置”功能一样。我在我的手机上安装了Google地图(Sony Ericsson G502没有GPS),在印度即使没有开启GPS也可以正常使用。

1. Google是如何确定我的位置的?
2. 当我在opencellid数据库中搜索cellid时,印度的记录数量较少,但Google地图在我的手机上仍然能够正常工作。
3. Google是否使用opencellid数据库还是自己的数据库?如果Google使用自己的数据库,我们是否可以访问它?
4. 是否有商业化的印度cellid数据库?

4个回答

3
答案是,手机使用各种定位方法,大多数是作为E-911(增强型911)或其他国家的等效紧急服务(例如英国的999)的一部分引入的,或者自那时以来引入的。
我不知道GSM或CDMA是否具有任何本身的定位协议或标准,超出了E-911和类似服务所需的范围。因此,我怀疑是否存在适用于所有移动电话的通用API。
通过以下方式进行手机定位:
  • 普通GPS
  • 辅助GPS
  • 基于蜂窝网络的三角定位/多点定位
  • 蜂窝塔识别(FCC /等蜂窝塔数据库查询)
  • 增强型蜂窝塔识别(E-911)
  • 上行到达时间差(U-TDOA)
  • 到达时间(TOA)
  • 到达角度(AOA)
  • E-OTD(增强观测时间差)
  • 或这些技术和方法的混合体。

(来源:维基百科/移动电话跟踪

这些方法的精度和准确度从约35公里(22英里)到约5-10米(16-32英尺)或更好不等。

3.谷歌使用opencellid数据库还是自己的数据库?

看起来他们有自己的数据库,但没有公开的文档API。

4.印度是否有任何商业基站ID数据库?

我不知道。


1

Skyhook 提供了基于Cell ID、Wifi接入点和如果有的话GPS定位设备的API。iPhone OS使用这个来提供其CoreLocation功能。

他们为大多数移动和桌面操作系统提供SDK。它非常好,但你需要与他们讨论许可问题。


1

正如其他张贴者所提到的,Skyhook和Google都维护着WiFi SSID和基站ID的位置信息专有数据库。我相信Geomena正在尝试创建一个公开的定位ID数据库,但它还没有专有竞争对手拥有的广度。Google还提供了一个简单的客户端JavaScript接口用于IP地理定位(称为ClientLocation),这对于某些应用程序而言可能足够精确,且存在各种各样的IP地理定位数据库。

如果您的应用程序是基于Web的,可以利用W3C Geolocation API,该API将特定的地理位置技术抽象出来,并使您的网站用户可以控制访问浏览器选择使用的任何地理位置方法。在iPhone上,Skyhook的数据库用于使用基站或WiFi或GPS位置定位电话;Firefox使用Google Location Service,该服务使用WiFi三角定位并退回到IP地理定位。

如果您希望您的应用程序跨越具有其自己的位置方法的不同平台工作,如果您希望您的应用程序仅支持粗略的地理位置方法时会优雅地降级,并且您希望您的应用程序随着客户升级到具有GPS技术的设备而获得额外精度的优势,则使用某些抽象层(如W3C API)可以带来实际优势。


1

谷歌几乎肯定使用专有数据库。他们承认:

这涉及分析您周围的Wi-Fi接入点和计算机的IP地址,并将此信息发送到谷歌服务器,然后将其转换为我们可以在地图上显示的位置。

http://maps.google.com/support/bin/answer.py?hl=en&answer=153807

谷歌街景车已被知晓会收集有关无线接入点的数据,这些数据可以用于建立这样的数据库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接