谷歌地图 - 缩放到多边形

Sim*_*mon 3 android google-maps polygon zooming

我已经检查了几个关于将谷歌地图缩放到给定或在 Android 中的问题(这个这个这个),但我一直无法找到答案。PolygonList<LatLng>

什么功能

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

看起来像?是否有机会将地图缩放到某个多边形?

Sim*_*mon 7

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

主要调用:

  final int POLYGON_PADDING_PREFERENCE = 200;
  final LatLngBounds latLngBounds = getPolygonLatLngBounds(polygon);
  googleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(latLngBounds, POLYGON_PADDING_PREFERENCE));
Run Code Online (Sandbox Code Playgroud)

辅助功能:

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

  • 一旦您拥有 LatLngBounds(来自您的“getPolygonLatLngBounds”),您似乎就可以使用 CameraUpdateFactory.newLatLngBounds。有趣的是,一旦你有了 CameraUpdate,你就不会知道缩放级别,直到它被应用。 (2认同)