如何使用GoogleMaps v2获取当前坐标?

时间:2013-08-22 23:14:17

标签: android google-maps-android-api-2 android-location

我想获得当前坐标,我尝试下一步

GoogleMap gm=getMap();
gm.setMyLocationEnabled(true);
Location location=getMap().getMyLocation();

但getMap()返回null,  我试着:

Criteria criteria = new Criteria();
String provider = service.getBestProvider(criteria, false);
Location location = service.getLastKnownLocation(provider);
if (location.getLatitude()!=0){
LatLng userLocation = new LatLng(location.getLatitude(),           location.getLongitude());

但这项工作在Android 2.3中,但在4.2中。它返回null。

2 个答案:

答案 0 :(得分:0)

我的应用程序中有相同的代码,它在版本4上运行良好:

String provider;
LocationManager locManager = (LocationManager) 
                              getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
provider = locManager.getBestProvider(criteria, false);
Location location = locManager.getLastKnownLocation(provider);

if (location != null) {
   latitude = location.getLatitude();
   mLongitude = location.getLongitude();
}

但是你的问题必须与你的getMap()错误有关。究竟是什么错误信息?

答案 1 :(得分:0)

重新启动手机时会重置位置属性。

因此,如果设备未以任何方式请求新位置(地图或请求位置的任何其他应用),则getMyLocation将返回null。

如果getMyLocation返回null,您应该做的是请求新的位置。

以下是有关如何获取/请求位置的主题: Good way of getting the user's location in Android

查找requestLocationUpdates()方法。

然后当找到一个位置时(可能需要一些时间......尤其是室内),使用参数中的新位置调用callBack OnLocationChanged。

希望这有帮助!