我正在使用JellyBean 4.2并在我的设备上进行测试。
如何在点击myLocationButton时获取当前位置。
使用网络提供程序时,getMYLocation返回null。
我正在使用LocationManager获取当前位置并参考Google文档 https://developers.google.com/maps/documentation/android/start
点击MyLocatiionButton后没有带来任何改变
答案 0 :(得分:2)
您需要将LocationSource添加到地图片段中。有关离散示例,请参阅this answer。
答案 1 :(得分:1)
你是否在Manifest中设置了所有权限? 此外,您必须启用位置服务(状态栏中的gps图标显示?)。 设备获取位置需要一些时间,因此请查看是否调用onLocationChanged。
答案 2 :(得分:1)
使用此代码ID确实有效。
private LocationManager locationManager;
private Location location;
private boolean hasGpsProvider, hasNetwrokProvider;
public Location getLocation(Context mContext) {
if (locationManager == null) {
locationManager = (LocationManager) mContext
.getSystemService(Context.LOCATION_SERVICE);
}
hasGpsProvider = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
hasNetwrokProvider = locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (hasGpsProvider) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER, 0, 100, locationListenerGps);
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
return location;
}
if (hasNetwrokProvider) {
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 0, 100,
locationListenerNetwork);
location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
return location;
}
return location;
}
并致电
if (location != null) {
lat = location.getLatitude();
lng = location.getLongitude();
}
答案 3 :(得分:1)
基本上你应该做的是拨打Google Directions API来接收道路方向坐标(许多Latlng点),然后在每一个之间绘制一条折线。
你可以使用overview_polyline或腿和步骤。