打开位置后,Android刷新谷歌地图

时间:2018-03-29 08:05:14

标签: java android

我的项目中有一张谷歌地图。首先,我检查用户是否启用了位置。如果用户未启用位置,则会弹出一个对话框,要求他们启用位置。当用户接受此提示时,他或她将被重定向到设置页面,在那里他们可以启用位置。

问题是在启用位置并按回之后,地图保持其先前状态,即不会缩放到用户的当前位置。

我该如何解决这个问题?

2 个答案:

答案 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
}

[...]