我想在当前位置和所选目的地之间绘制路径。但是在使用GPS_PROVIDER访问我当前位置时,会显示我的上一个已知位置而不是我当前位置。这是获取当前位置的代码:
private LatLng getCurrentLatLng() {
LatLng cloc = new LatLng(0, 0);
LocationManager locman = (LocationManager) getActivity()
.getSystemService(Context.LOCATION_SERVICE);
String provider = LocationManager.GPS_PROVIDER;
Location location = locman.getLastKnownLocation(provider);
if (location == null) {
Toast.makeText(getActivity().getApplicationContext(),
"Location Service Not Provided",Toast.LENGTH_LONG).show();
} else {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
cloc = new LatLng(latitude, longitude);
LatLng newp=onLocationChanged(location);
}
locman.requestLocationUpdates(provider, 2000, 0, this);
return cloc;
}
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
LatLng latlng = new LatLng(latitude, longitude);
CameraUpdate update = CameraUpdateFactory.newLatLngZoom(latlng, 15);
map.animateCamera(update);
putOriginMarker(latlng);
}
我的mainfest.xml文件包含Google文档建议的以下权限:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
因为我使用谷歌地图v2。 有人有想法吗?出了什么问题? 提前谢谢。
答案 0 :(得分:0)
请勿致电Location location = locman.getLastKnownLocation(provider);
。 locman.requestLocationUpdates(provider, 2000, 0, this);
足以获取您当前的位置。
答案 1 :(得分:0)
Location mCurrentLocation;
LocationClient mLocationClient;
mLocationClient = new LocationClient(this,new myConnectionCallback(),new myConnectionListener());
mLocationClient.connect();
mCurrentLocation = mLocationClient.getLastLocation();
double longitudeC=mCurrentLocation.getLongitude();
double latitudeC=mCurrentLocation.getLatitude();