在Google地图Android中获取用户位置的最佳方式

时间:2016-02-15 13:28:44

标签: android api google-maps location maps

我已尝试FusedLocationAPI,但与setMyLocationEnabled(true)相比,它返回​​的准确度太高,因此结果如下,其中蓝色圆圈由setMyLocationEnabled绘制,黑色是由FusedLocationAPI绘制的准确度。

http://i63.tinypic.com/5vbnuq.png

我也使用了这段代码

LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location myLocation = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER);

if (myLocation == null) {
    Criteria criteria = new Criteria();
    criteria.setAccuracy(Criteria.ACCURACY_COARSE);
    String provider = lm.getBestProvider(criteria, true);
    myLocation = lm.getLastKnownLocation(provider);
}

LatLng myPos = new LatLng(myLocation.getLatitude(), myLocation.getLongitude());
googleMap.addMarker(new MarkerOptions().position(myPos).title("Start"));

但绘制的标记再次与他setMyLocationEnabled(true)相距太远 http://i67.tinypic.com/xkrqdc.png

所以我想知道是否有更好的方法来更准确地获取位置?

1 个答案:

答案 0 :(得分:1)

尝试在criteria.setAccuracy(Criteria.ACCURACY_COARSE);希望帮助中使用 ACCURACY_FINE 代替 ACCURACY_COARSE