2013-07-07 45 views
2

我想说这是因为我在中国,Google位置服务有时会出现问题。Android位置客户端不如Google Maps应用程序准确

我使用LocationClient来获取用户的当前位置。

protected void onCreate(Bundle savedInstanceState) { 
    ... 
    mLocationClient = new LocationClient(this, this, this); 
    ... 
} 

非常简单。然后在我的onConnected回调中,我找到了位置。

public void onConnected(Bundle connectionHint) { 
    Location location = mLocationClient.getLastLocation(); 
    ... 
} 

我回来的位置是永远不变的,但它是关于〜500m从我的实际位置了。 GPS已启用,但指示正在使用的图标未启用。我也在WiFi上,并有3G。

当我打开实际的Google地图应用时,我的位置非常准确(与我在自己的应用中获得的位置不同)。我还看到指示GPS正在使用的图标。

问题

  1. 什么是谷歌地图的应用中的不同,以获得更准确的位置和我怎么做他们做什么?
  2. 如果我找回错误的位置总是相同,那意味着什么?没有太多的过度推断,中国的一个事实是,外国地图数据公司已经协调了一个因素的偏差,他们必须使用特定的算法来纠正这种差异; Google地图应用是否在执行此操作?

谢谢!

回答

1

中国有一个专门处理GPS数据的问题,因为政府强制相关地图制作公司增加一些偏差。 我坚持了一段时间。

3

使用方法'getLastLocation()'时,它提供了位置存储的最佳已知位置。这也与您在清单文件中授予应用程序的权限级别有关。

尝试同时使用:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 

在你的清单文件,看看它是否提高了精度。

+0

感谢您的建议,但我有这两个权限,并尝试删除COARSE以及。根据我的理解,LocationClient或LocationManager将根据可用权限使用允许获得的最准确位置。 – jargetz

1

广告。 1 Google地图不断更新位置。尝试遵循以下导入:http://developer.android.com/training/location/receive-location-updates.html

广告。 2 getLastLocation可能会检索上次更新的位置,如第1点中的更新。如果未更新,则只会得到相同的值。位置对象有附加时间,您可以看到它何时收到。

+0

感谢您的帮助。事实上,经过更多的测试后,我们发现这确实是一个问题,中国的地理位置受到一个因素的影响,我们在其他一些国家进行了测试,但没有发现这个问题。 – jargetz

1
  1. 打开卫星视图。正常的“矢量”视图在中国被混淆了。出于某种原因,Google地图应用没有此问题。
  2. GPS返回的位置是正确的,即使在中国(考虑WGS84投影)。只有地图不是。

其他地图提供商如Baidu强制您使用自己的自定义实现LocationClient。通过这种方式,您可以获取准备在地图图块上使用的位置。

0

逾期答案,但是这并没有说:

您可以设置locationClient的准确性,使用locationRequest。 例如

 mLocationRequest = LocationRequest.create(); 
     mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
     mLocationClient.requestLocationUpdates(mLocationRequest, (LocationListener) this); 

您还可以设置更新的频率。如果您需要高度精确的数据,请在几秒钟内读取一堆读数。然后看看每个阅读的“准确度”数字。抛出精确度远低于其他准确度的读数。然后平均剩下的...

这是一个非常基本的算法,并且我在美国银河系S5的1-2英尺范围内获得精度。

如果您使用较低的准确度,它将使用wifi和蜂窝结果来平均GPS数据。 GPS消耗更多的电池,因此在此设置中使用次数更少。 Wifi使用物理地址查找,因为它始终让我走向我家附近的公共道路,即使我处在它的中间。

+0

谢谢 - 这绝对是非常有用的,也是一件很好的事情。但就中国而言,中国政府确实不允许非中国公司持有准确的地图,因此存在一致且可预测的抵消。 – jargetz

相关问题