【问题标题】:How to get current coordinates in using GoogleMaps v2?如何使用 GoogleMaps v2 获取当前坐标?
【发布时间】:2013-08-25 21:08:59
【问题描述】:

我想获取当前坐标,我下一个试试

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 中。它返回空值。

【问题讨论】:

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


    【解决方案1】:

    我的应用程序中的代码几乎相同,并且在版本 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() 错误有关。错误信息到底是什么?

    【讨论】:

    • getLastKnownLocation(provider) 这不是最好的主意,我试过了。
    【解决方案2】:

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

    因此,如果设备没有通过任何方式(地图或任何其他请求位置的应用程序)请求新位置,getMyLocation 将返回 null。

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

    这是一个关于如何获取/请求位置的线程: Good way of getting the user's location in Android

    寻找requestLocationUpdates() 方法。

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

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多