代码之家  ›  专栏  ›  技术社区  ›  Mathias Conradt

带有地图视图的谷歌地图和应用程序有不同的当前位置

  •  8
  • Mathias Conradt  · 技术社区  · 14 年前

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

    我运行的是谷歌地图应用程序和我的应用程序。

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

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

    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相同。

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

    请参见以下屏幕截图: screenshot http://img33.imageshack.us/img33/8679/mapproblem.png

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

    现在我想知道:

    1)据我所知,getlastknowlocation是全系统的,而不是全应用的,为什么google maps中的位置和所有其他应用程序之间存在差异?

    2)google maps是否没有更新提供商的最新信息?

    3)google maps是否使用不同的自定义位置提供程序(即由于许可原因)而不是像在sdk中那样使用gps提供程序或网络提供程序?

    4)像谷歌地图一样,如何通过网络供应商获得同样的准确结果?

    3 回复  |  直到 13 年前
        1
  •  2
  •   Mathias Conradt    14 年前

    我想我找到了一个答案,虽然不是解决办法。问题似乎在于不同的地图提供商的数据质量,这些提供商用于Google地图和SDK中的MapView,两者之间存在差异。

    地图贴片坐标似乎不太准确,就像在公共谷歌地图Web API/Tiles中一样。

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

    使用公共地图API的地图在几百米之外。 似乎我们只能忍受它?!

        2
  •  2
  •   Nightfirecat peSHIr    13 年前

    我知道你的帖子有一年的历史了,但我认为答案是:中国的谷歌地图数据被抵消或扭曲了。我注意到你在中国南方。中国政府出于安全考虑要求这样做。 Here is the Google search results .

    转换算法未知。或许你可以用谷歌搜索,祝你好运。

        3
  •  0
  •   CrazyEnigma    14 年前

    谷歌地图中的地图和卫星图像有几米远,但我不认为应该有那么多的距离。这好像有几百米。

    根据你获得职位的方式,你将决定你获得的职位。据我所知,这是三个层次的收购。

    • 全球定位系统
    • 网络
    • WiFi

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

    有些手机说他们是GPS,但他们很可能是像iPhone1一样的伪GPS。