8

我有一个地图视图,我想在其中跟踪用户的当前位置。GPS 以及“使用无线网络”在我的手机设置中被激活。不过,由于我在室内,我没有 GPS 定位,因此位置是通过网络确定的;wifi点是可用的。

我正在运行 Google Maps 应用程序以及我的应用程序。

奇怪的是,谷歌地图和我的应用程序之间的当前位置不同,其中谷歌地图非常准确,而在我的应用程序中,位置不知何故偏离了几百米。

在我的应用程序中,我基本上执行以下操作(现在出于调试目的):

1)最初在地图上放置一个标记:通过检索地理点locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);

2)最初在地图上放置另一个标记:通过检索地理点locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);

这会将两个提供商的最后已知位置放在地图上(最终从我的应用程序外部最后知道)。

3)然后对于定期更新(因为我在这里无论如何都没有获得 GPS 定位),我这样做:

locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, baseLocationListener);

您可以看到在这两种情况下我通过 0 参数的频率和距离。

在应用清单中,授予以下权限:

android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_MOCK_LOCATION

实际上我的 baseLocationListener 确实被调用了,我在日志中看到了,但是更新的位置在某种程度上与(LocationManager.NETWORK_PROVIDER 的)最后一个已知的当前位置相同,相同的 lat/lng。

我想也许我忽略了某些东西或错过了参数或设置,或者我的代码有错误。因此,我从 Android 市场安装了一些其他(总共 3 个)LBS 应用程序,这些应用程序也显示了当前用户的位置。这些应用程序中显示的当前位置与我的应用程序中的位置相同——它们都相距约 100 米——但至少都相同。

在此处查看屏幕截图: 屏幕截图 http://img33.imageshack.us/img33/8679/mapproblem.png

http://img33.imageshack.us/img33/8679/mapproblem.png

现在我想知道:

1)据我所知,getLastKnowLocation 是系统范围的,而不是应用范围的,为什么谷歌地图和所有其他应用程序中的位置存在差异?

2) 谷歌地图不会更新提供者的 lastKnownLocation 吗?

3) Google 地图是否使用不同于 SDK 中的 GPS_PROVIDER 或 NETWORK_PROVIDER 的其他自定义位置提供程序(即由于许可原因)?

4) 如何使用 NETWORK_PROVIDER 获得与 Google Maps 一样的准确结果?

4

3 回答 3

2

我想我找到了答案,尽管不是解决方案。似乎问题在于用于 Google Maps 和 SDK 中 MapView 的不同地图提供者的数据质量不同。

地图瓦片坐标似乎不是很准确,就像在公共谷歌地图 web api/瓦片中一样。

有关示例,请参见此屏幕截图,其中我固定了相同的地理点。 截图 http://img339.imageshack.us/img339/2793/gmaps2.png http://img339.imageshack.us/i/gmaps2.png/

使用公共地图 api 的地图距离数百米。似乎我们只能忍受它?!:(

于 2010-07-20T12:44:36.677 回答
2

我知道你的帖子已经有一年了,但我认为的答案是:中国的谷歌地图数据被偏移或扭曲。我注意到你在华南。中国政府出于某些安全原因要求这样做。这是谷歌搜索结果

变换算法未知。也许你可以谷歌它,并祝你好运。

于 2011-06-23T01:27:44.270 回答
0

谷歌地图中的地图和卫星图像偏离了几米,但我认为它不应该偏离那么多。这似乎是几百米。

根据您获得职位的方式,将决定您获得的职位。据我了解,这是获取的三个层次。

  • 全球定位系统
  • 网络
  • 无线上网

GPS和网络由三角测量确定。GPS是最准确的。WIFI 使用“whois”完成,获取地址然后进行地理编码,有时完全不准确。

有些手机说它们是 GPS,但它们很可能是像 iPhone 1 这样的伪 GPS。

于 2010-07-22T15:31:55.323 回答