Flutter Mapbox_gl 中的当前缩放级别

问题描述 投票:0回答:1

我在 Flutter 应用程序中使用 mapbox_gl: ~0.16.0 插件,我需要知道用户移动地图时(或移动结束后)的当前缩放级别!但是,它始终返回原始缩放级别而不是当前缩放级别。尽管如此,当我尝试获取当前视口边界时,它提供了正确的坐标。我将不胜感激任何帮助。 我将采用这种方法:

/* view code */
MapboxMap(
  onMapCreated: (mController) {
    // Assign the MapboxMapController instance to mapboxMapController
    mapboxMapController = mController;
    controller.onMapCreated(mController);
  },
  zoomGesturesEnabled: true,
  accessToken:"<MAPBOX ACCESS TOKEN>",
  initialCameraPosition: const CameraPosition(
      target: LatLng(47.5973305239398, -107.06058413659325),
      zoom: 15.0),
  doubleClickZoomEnabled: true,
  onCameraIdle: () {
    controller.getView(mapboxMapController);
  },
  styleString: "mapbox://styles/mapbox/outdoors-v12",
)
/* view code */
...
/* controller code */
Future<void> getView(MapboxMapController mapboxMap) async {
    mapboxMap.getVisibleRegion().then(
      (bounds) async {
        double northeastLat = bounds.northeast.latitude;
        double northeastLng = bounds.northeast.longitude;
        double northwestLat = bounds.northeast.latitude;
        double northwestLng = bounds.southwest.longitude;
        double southeastLat = bounds.southwest.latitude;
        double southeastLng = bounds.northeast.longitude;
        double southwestLat = bounds.southwest.latitude;
        double southwestLng = bounds.southwest.longitude;
        double zoomLevel = mapboxMap.cameraPosition!.zoom;
        print(zoomLevel); // this always print 15.0, which is my intial zoom level
      },
    );
  }
/* controller code */

大多数文档或示例代码都告诉我要使用它,但它对我不起作用!我已经查看了 Mapbox 地图文档,但找不到实现此特定功能的明确示例。任何帮助或代码片段将不胜感激。谢谢!

mapboxMap.getCameraPosition().zoom;
flutter mapbox mapbox-gl-js mapbox-gl mapbox-android
1个回答
0
投票

trackCameraPosition

MapboxMap
 属性设置为 
true

MapboxMap(
  // ...
  trackCameraPosition: true,
)

在 GitHub 上查看此问题:CameraPosition 未更新

© www.soinside.com 2019 - 2024. All rights reserved.