我正在开发处理Google Maps Api的Android应用程序,我尝试使用mMap.getLastKnownLocation();
获取当前位置,然后获取latitude
和longitude
该'传递给将相机移动到我位置的方法
这是获取我的位置的一部分
Criteria criteria = new Criteria();
Location location = locationManager.getLastKnownLocation(locationManager
.getBestProvider(criteria, false));
if( location != null ){
double latitude = location.getLatitude();
double longitude = location.getLongitude();
AddMarkerAndMoveCamera(latitude,longitude);
Toast.makeText(MapsActivity.this, "Latitude: " + latitude + "\nLongitude: " + longitude,Toast.LENGTH_LONG ).show();
}
这是移动相机的一部分
public void AddMarkerAndMoveCamera(double lat,double lng)
{
LatLng MyLocation = new LatLng(lat, lng);
mMap.addMarker(new MarkerOptions().position(MyLocation).title("This is Your Location ! Now !"));
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(MyLocation,15));
}
如果有任何关于我如何获得真实位置的信息,不仅仅是lastknownlocation
,我们将不胜感激。
答案 0 :(得分:1)
获取位置getLastKnownLocation()无法获得正确的位置
因为它在此方法中获取了传递的提供者的最后已知位置。
你需要新鲜的位置。为此,check this link
修改强>
在上面的链接中实现所需的东西之后,你可以做这样的事情。
@Override
public void onLocationChanged(Location location) {
double latitude = location.getLatitude();
double longitude = location.getLongitude();
AddMarkerAndMoveCamera(latitude,longitude);
Toast.makeText(MapsActivity.this, "Latitude: " + latitude + "\nLongitude: " + longitude,Toast.LENGTH_LONG ).show();
}