Android如何获得粗糙的位置? -- geolocation 领域 android 相关 的问题

How does Android get the coarse location?





  1. Android通常使用这两种方法,或者它更喜欢一个并倒回另一个?
  2. 它与服务器通信以通过WiFi获取位置吗? (例如,将WIFIS的SIDS发送到Web服务)
  3. 它与载体通信,以通过GSM塔获得位置,也可以在设备上完成这一点?

I read that Android (and similar operation systems, e.g. iOS) get the current coarse location by using either WiFi or GSM tower triangulation. I get the basic idea but have questions about the details.

  1. Does Android normally use both methods, or does it prefer one and fall back to the other?
  2. Does it communicate with a server to get the position via WiFi? (e.g. sending the SIDs of the WiFis to a web service)
  3. Does it communicate with the carrier to get the position via the GSM towers or is this done on the device?



它真的达到了开发人员如何实现定位服务。完整描述是在 Android开发人员官方网站(2010年9月24日捕获)


  • 缓存修复
  • Cell-ID
  • wifi
  • gps
  • 模拟位置



  1. 它取决于各个应用程序开发人员,但在大多数情况下,序列将被缓存修复,单元格,WiFi,GPS,以此顺序。
  2. 是,在获取WiFi信号的塔ID或SSID之后,将该数据传输到Google以确定粗略的位置。
  3. 否,谷歌在这里做了真正聪明的事情。谷歌拥有自己的蜂窝塔位置数据库,不需要与载体的交互来确定塔的位置。

Francisco Kattan的一篇文章" 动态小区ID"有一些细节。简短的版本是,当您使用像Google地图这样的应用程序时,该应用程序将与当前的GPS修复一起发送当前的Cell-ID信息。通过这种方式,谷歌在各种位置获得了非常好的信号优势,能够构建一个非常丰富的数据库。


It is really up to the developer as to how to implement the location service. The full description is available on the Android Developers official site (as captured on 24 Sep 2010)

The graph about 1/3rd down the page is pretty useful to see what a typical app might do, but again, it is completely up to the app developer. The location service types are:

  • Cached Fix
  • Cell-ID
  • WiFi
  • GPS
  • Mock Location

If the app requests permission for coarse location only, it will not use the GPS to determine location.

To answer your questions:

  1. It is up to the individual app developer, but in most cases, the sequence will be Cached Fix, Cell-ID, WiFi, GPS, in that order.
  2. Yes, after acquiring the tower IDs or SSIDs of the WiFi signals, that data is transmitted to Google to determine a rough location.
  3. No, Google has done something really clever here. Google has their own database of cell tower locations and does not require an interaction with the carrier to determine the location of the tower.

An article by Francisco Kattan on "Dynamic Cell-ID" has some of the detail. The short version is that, when you use an app like Google Maps, the app will send the current Cell-ID information back along with your current GPS fix. In this way, Google gets a very good sampling of the signal strengths in various locations and is able to build a very rich database.



  1. 是的,但它取决于由DEV设置的特定应用程序LBS优先级,并且可以基于当前课程精度,功率水平,预定义优先级等。
  2. 是的。运营商有专有的WiFi基站位置DBS。
  3. 我不能具体地与Android说话,但通常,这将是载体和网络类型(CDMA或GSM)。手机都有两者,但至少几年前,他们由于做了OTA的带宽限制而在手机上做了这项工作。

A lot of this is carrier-specific and I'm not a dev but here's what I could piece together from the interwebs and the trainings I've had in electronic crime investigation:

  1. Yes, but it depends on the specific apps LBS priorities which are set by the dev and can be based on current course accuracy, power levels, predefined priorities, etc.
  2. Yes. The carriers have proprietary WiFi base station location DBs.
  3. I can't speak to Android specifically, but generally, this is going to be the carrier and network type (CDMA or GSM). Phones are capable of both, but at least a few years ago they did this work on the handset because of the bandwidth constraints of doing it OTA.


每个国家/地区都有一个提供商数据库,其中存储地图上的塔ID的位置。该数据库可能很小,可以通过提供者预装或在空中提供。 Android手机如何获取此数据,我不知道。


Your phone knows what the closest towers are.

There is a provider database for each country in which the location of tower IDs on the map is stored. This database might be small enough to be preinstalled by your provider or supplied over the air. How an Android phone gets this data, I don't know.





Does it communicate with the carrier to get the position via the GSM towers or is this done on the device?

The device could be used if you want to use triangulation, but you need to use the carrier if you want to match the Cell-ID and the localization of the GSM (or CDMA) tower.



3  启用或禁用基于Android上的位置的通知?  ( Enable or disable notifications based on location on android ) 
我真的希望我可以在工作时让我的Android发出商业电子邮件,以及当我不在办公室时的家庭电子邮件。是否有任何应用程序可以轻松促进? ...

23  报告Google Play服务(例如,融合位置提供商)的问题应该在哪里?  ( Where should issues with google play services e g fused location provider be ) 
谷歌捆绑了许多服务,包括位置服务,在谷歌播放服务应用程序而不是在开源Android平台中包含它们。其背后的主要原因是支持核心服务的频繁更新,而无需OEM更新整个平台,并隐藏一些专有服务的实施。 问题是,对于报告Google播放服务和位置服务(例如,新融合位置提供商的问题,似乎没有似乎是一个很好的论坛。 以下是报告我所...

3  在Google地图帐户上保存一个位置  ( Saving a place on google maps account ) 
我想在谷歌地图中保存一个地方,并将其描述/注意事项。 当我使用Symbian时,点击星球上添加了这个地方作为收藏时,我可以在这个地方放置名称和描述,在我的Google地图帐户中获取我放的姓名和描述。 在Android我找不到这个功能,我不能在最喜欢的地方写笔记。此功能已弃用吗?我该怎么办? ...

0  Google可以通过Cell Tower信号查找手机的设备三角形位置吗?  ( Can google find device triangulate location of my phone by cell tower signal ) 
我知道它不会精确,但我可以找到我的[不]丢失的Android 6.0.1 Lenovo P1A41涡轮机塔信号使用Google查找设备吗? 如果没有,可以做任何其他应用程序吗? ...

9  谷歌纬度的替代品?  ( Alternative to google latitude ) 
就像标题说,有没有一种简单的方法可以在没有朋友的情况下实时分享我的位置,而不会让谷歌知道我在哪里? ...

22  为什么Google地图需要WiFi?  ( Why does google maps need wifi ) 
有时谷歌地图给出了一个出现的通知,如: "for increased accuracy please turn on the Wifi" 我可以理解它是否说 "For faster loading of map layers...." ,但是如何通过gps增加 abcdefghijklmnaccuracy 。...

8  如何定期将谷歌纬度设置为自动更新?  ( How do i set google latitude to auto update with location regularly ) 
当我使用谷歌地图时,它设置了我的Google Latitude位置,但是一旦我转动它会停止地图。我希望它定期使用我的位置更新。我不想始终使用GPS来排除电池,但如果它更新,例如每半小时左右,它会很好。 ...

7  我拍完后如何标记照片?  ( How can i geo tag a photo after ive taken it ) 
是一个应用程序吗? :) (当自动标记失败) ...

1  上传到Picasa网站时Geo-Tags会丢失  ( Geo tags get lost when uploading to picasa website ) 
Picasa网站也将是一张地图,您可以在那里看到专辑的图片。不幸的是上传不支持Geo标签。他们在Picasa网站上没有更多的照片;( 你有同样的问题吗?也许固定它......? ...

18  如何为Android的数据库提交WiFi热点以获得更好的三角测量?  ( How may i submit a wifi hotspot to androids database for a better triangulation ) 
我们所知道的,为了定位我们在室内的位置,Android利用附近的Wi-Fi热点的三角测量位置。但是如何将我邻居的Wi-Fi热点提交给Google的/ Android的数据库,从而从更好的三角测量中受益?我住在土耳其,谷歌街道景观汽车 - 被声称在美国收集这些热点 - 在这里不存在。对于三角测量中的其他信息来看看这里的...

16  是否可以通过shell启用位置服务?  ( Is it possible to enable location services via shell ) 
是否可以通过adb或终端仿真器启用位置服务(GPS或Google NetworkLocation)? 我在扎根的手机上。 额外点:也可以更改其他与系统相关的设置? ...

1  手机作为GPS跟踪器  ( Phone as a gps tracker ) 
我想使用旧的小型Android设备作为GPS跟踪器安装在我的自行车上。 我的第一个虽然只是使用谷歌位置服务。我使用Google帐户登录,然后我通过Google地图共享地点。事实证明,电池非常友好,因为该位置不太频繁更新,而且手机的大部分时间都非常准确地定位,而不使用GPS。但是在这种方法中存在缺点,因为我需要使用In...

18  如何自动制作照片才能自动标记?  ( How can i make my photos automatically geo tagged ) 
有没有办法,我可以自动且可靠地标记相机拍摄的照片,以便在将它们上传到Flickr时,该位置被识别出来? 我在相机中启用了'gps',但似乎如果没有启用gps或者没有'准备好',它没有记录(当我在画廊中检查照片的详细信息时,位置是"未知" )。 ,有没有办法我可以在我拍摄它之后的地理标签照片? (编辑:使这个> ...

7  三星Galaxy S是否让GPS位置拍摄相机照片元数据?  ( Does samsung galaxy s keep gps location in camera taken photo metadata ) 
是否有人知道三星Galaxy S GT-I9000的相机拍照是否从被拍摄时保留关于GPS位置的信息? 谢谢 ...

9  使用Android的Geo标记DSLR照片  ( Geo tagging dslr photos with android ) 
是Android的任何应用程序,它可以帮助我在使用Android可以存储的手机GPS的日志上用我的非GPS DSLR相机拍摄我带来的图片吗? ...

© 2021 All Rights Reserved. 问答之家 版权所有

Licensed under cc by-sa 3.0 with attribution required.