【问题标题】:Google Map Not Showing (Zoom to) Current Location After Set Latitude and Longitude manually [duplicate]手动设置纬度和经度后谷歌地图不显示(缩放到)当前位置[重复]
【发布时间】:2015-08-11 18:41:49
【问题描述】:

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

}

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

【问题讨论】:

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


【解决方案1】:

您可以尝试在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]

【讨论】:

  • 仍然没有工作的人......你还有其他建议吗?
  • 你有没有为 lat 和 lon 的 location.setLatitude(lat); location.setLongitude(lon);,这些值是什么?
  • 我更新了我的答案,使用 CameraUpdateFactory.newLatLngZoom 而不是 CameraUpdateFactory.zoomTo(12)
猜你喜欢
  • 2019-05-31
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 2015-04-20
  • 1970-01-01
  • 2013-12-02
  • 2013-10-01
  • 1970-01-01
相关资源
最近更新 更多