谷歌地图未显示(缩放至)当前位置手动设置纬度和经度后

时间:2015-05-29 03:03:12

标签: android location google-maps-api-2

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

}

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

1 个答案:

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