【问题标题】:Android - Google map V2 : fix zoom to display first visible markerAndroid - Google map V2:修复缩放以显示第一个可见标记
【发布时间】:2013-06-15 23:27:19
【问题描述】:

请原谅我的英语不好,我是法国人!

所以,我有一个关于我的 Android 应用程序的小问题。 我必须集成谷歌地图并在地图上显示标记。 然后,我必须动态放大用户位置。 没关系。 但 !我想修复缩放以显示第一个可见标记。

例如:如果距离这里 3 公里处有一个标记,那么对于距离他 100 米处有一个标记的用户来说,缩放将不一样!

你明白吗?

非常感谢您的帮助!

【问题讨论】:

  • 您有标记的 LatLng 列表吗?
  • 你试过 LatLngBound 了吗?

标签: android google-maps google-maps-markers


【解决方案1】:
final LatLngBounds.Builder bc = new LatLngBounds.Builder();
for (LatLng marker : markers) {
    bc.include(marker);
}
bc.include(new LatLng(yourLat, yourLong));

map.setOnCameraChangeListener(new OnCameraChangeListener() {
    @Override
    public void onCameraChange(CameraPosition arg0) {
        map.moveCamera(CameraUpdateFactory.newLatLngBounds(bc.build(), padding));
        map.setOnCameraChangeListener(null);
    }
});

这将设置正确的缩放以适应标记和您的位置,然后您可以添加一些额外的填充!由于尚未计算大小,您必须设置CameraChangeListener 才能知道何时有,然后您可以进行更新并删除侦听器。

【讨论】:

  • 谢谢!但是什么是“标记”变量?如何获得标记?
  • 我遇到了这个错误:aused by: java.lang.IllegalStateException: Map size should not be 0. 很可能,地图视图的布局尚未发生。
  • 好的,但它不是我所期望的......我想在地图上显示用户位置和标记! (只需更改缩放参数)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-01
  • 2013-01-27
  • 1970-01-01
  • 2014-01-15
  • 2017-01-25
  • 1970-01-01
相关资源
最近更新 更多