如何使用 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 中获取地理坐标?
Google Maps Android API V2 检查设备上是不是安装了 GoogleMaps