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

Posted

技术标签:

【中文标题】如何使用 GoogleMaps v2 获取当前坐标?【英文标题】:How to get current coordinates in using 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 中。它返回空值。

【问题讨论】:

【参考方案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 会在参数中使用新位置调用。

希望这会有所帮助!

【讨论】:

以上是关于如何使用 GoogleMaps v2 获取当前坐标?的主要内容,如果未能解决你的问题,请参考以下文章

根据用户移动 android googleMaps v2 更新折线

如何使用字符串地址在 google maps API V2 android 中获取地理坐标?

如何从谷歌地图v2 android中的标记获取屏幕坐标

Google Maps Android API V2 检查设备上是不是安装了 GoogleMaps

Android - 用于发布 GoogleMaps API V2 的 API 密钥

GoogleMaps v2 Android 的我的位置按钮,不显示