谷歌地图 - 缩放到多边形

3

我查看了几个问题(这一个这一个这一个)与Android中将谷歌地图缩放到特定PolygonList<LatLng>相关的问题,但是我没有找到答案。

下面是一个函数

public static int getZoomLevelForPolygon(final List<LatLng> listOfPolygonCoordinates)

它会是什么样子?我有没有可能将地图缩放到特定的多边形上?

1个回答

8

好的,我认为我找到了一个解决方案:首先,我们生成一个最小的矩形,以容纳多边形,也称为LatLngBounds对象。然后,我们将相机移动到适合作为参数提供的LatLngBounds上。

主要调用:

  final int POLYGON_PADDING_PREFERENCE = 200;
  final LatLngBounds latLngBounds = getPolygonLatLngBounds(polygon);
  googleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(latLngBounds, POLYGON_PADDING_PREFERENCE));

辅助函数:

  private static LatLngBounds getPolygonLatLngBounds(final List<LatLng> polygon) {
    final LatLngBounds.Builder centerBuilder = LatLngBounds.builder();
    for (LatLng point : polygon) {
        centerBuilder.include(point);
    }
    return centerBuilder.build();
  }

2
一旦您获得了LatLngBounds(从您的“getPolygonLatLngBounds”),似乎您可以直接使用CameraUpdateFactory.newLatLngBounds。有趣的是,一旦您获得了CameraUpdate,直到应用它之前,您将不知道缩放级别。 - user2711811

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接