我想使用自定义纬度和经度显示当前位置,我在Location对象中设置纬度和经度,如下所示:
Location location = new Location ("");
location.setLatitude(lat);
location.setLongitude(lon);
之后我调用onLocationChanged(location)方法,其方法如下:
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
mLatitude = location.getLatitude();
mLongitude = location.getLongitude();
LatLng latLng0 = new LatLng(mLatitude, mLongitude);
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng0));
mGoogleMap.animateCamera(CameraUpdateFactory.zoomTo(12));
}
地图显示了,但没有像往常一样用蓝点显示我当前的位置,有人可以帮忙吗?
答案 0 :(得分:2)
您可以尝试在GoogleMap.OnMapLoadedCallback中运行代码 喜欢:
mGoogleMap.setOnMapLoadedCallback(new OnMapLoadedCallback(){
@Override
public void onMapLoaded() {
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng0));
mGoogleMap.animateCamera(CameraUpdateFactory.zoomTo(12));
}
});
<强>更新强>
mGoogleMap.setOnMapLoadedCallback(new OnMapLoadedCallback(){
@Override
public void onMapLoaded() {
mGoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng0,12));
}
});
使用
mGoogleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng0,12));
而不是
mGoogleMap.moveCamera(CameraUpdateFactory.newLatLng(latLng0));
mGoogleMap.animateCamera(CameraUpdateFactory.zoomTo(12));
由于代码CameraUpdateFactory.zoomTo(12)
未设置纬度和经度,因此值将以[0,0]为单位。
那会让你的地图中心到[0,0]