我的项目中有一张谷歌地图。首先,我检查用户是否启用了位置。如果用户未启用位置,则会弹出一个对话框,要求他们启用位置。当用户接受此提示时,他或她将被重定向到设置页面,在那里他们可以启用位置。
问题是在启用位置并按回之后,地图保持其先前状态,即不会缩放到用户的当前位置。
我该如何解决这个问题?
答案 0 :(得分:1)
我认为你应该在方法onResume上重新加载地图:
编辑(我假设您已在类范围内声明了mGoogleMap对象):
GoogleMap googleMap;
@Override
public void onResume() {
super.onResume();
if(googleMap != null){
googleMap.clear();
// add the markers just like how you did the first time
}
}
答案 1 :(得分:-1)
您必须实现LocationListener
public class FragmentMap extends SupportMapFragment implements LocationListener
{
GoogleMap mGoogleMap_;
[...]
@Override
public void onLocationChanged(Location location)
{ CameraPosition.Builder builder = CameraPosition.builder(mGoogleMap_.getCameraPosition());
builder.target(new LatLng(location.getLatitude(), location.getLongitude()));
mGoogleMap_.animateCamera(CameraUpdateFactory.newCameraPosition(builder.build())); // CameraUpdateFactory.newLatLngZoom(...) if you need to zoom too
}
[...]