Google 地图在手动设置纬度和经度后不显示(缩放到)当前位置

Google Map Not Showing (Zoom to) Current Location After Set Latitude and Longitude manually

我想使用自定义纬度和经度显示我的当前位置,我在 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));

}

地图已显示,但没有像往常一样用蓝点显示我当前的位置,有人可以帮忙吗?

您可以尝试 运行 您的代码 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]