MapboxMap 的控制器在被侦听器调用时的 cameraPosition 等于 null

MapboxMap's controller has cameraPosition equal to null when called by a listener

我正在尝试在相机位置添加标记。因此,每当用户在地图上移动时,我都需要获取相机的位置。经过快速研究,我发现设置一个在用户每次移动时调用的监听器应该很容易,并使用 controller.cameraPosition 提取相机位置。看起来非常简单,但是当调用侦听器时 controller.cameraPosition 总是 null 。只有当 onMapCreated 函数被触发时,它才有正确的值。

这是一个简单的可重现代码示例:

import 'package:flutter/material.dart';

import 'package:mapbox_gl/mapbox_gl.dart';

import 'package:test_01/secretAccessToken.dart';

void main() {
  runApp(
    MaterialApp(
      home: MyMapBoxMap(),
    )
  );
}

class MyMapBoxMap extends StatefulWidget {
  @override
  _MyMapBoxMapState createState() => _MyMapBoxMapState();
}

class _MyMapBoxMapState extends State<MyMapBoxMap> {
  MapboxMapController mapController;

  void _onMapCreated(MapboxMapController controller) {
    mapController = controller;
    print("On map created: ${mapController.cameraPosition}");
    mapController.addListener(() {
      print(mapController.cameraPosition);
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: MapboxMap(
        onMapCreated: _onMapCreated,
        initialCameraPosition: CameraPosition(target: LatLng(42, 42), zoom: 3),
        accessToken: secretAccessToken,
      ),
    );
  }
}

secretAccessToken 是可在 mapbox 网站上获得的私有访问令牌)

这是输出日志:

...
I/flutter (18328): On map created: CameraPosition(bearing: 0.0, target: LatLng(42.0, 42.0), tilt: 0.0, zoom: 3.0)
...
I/flutter (18328): null
...

我正在使用 mapbox_gl: ^0.8.0

我是否遗漏了一些我应该阅读的非常明显的内容?
感谢阅读

答案很简单。您可以阅读 here(在 mapbox_gl 的文档中)cameraPosition

Will be null, if MapboxMap.trackCameraPosition is false

感觉有点傻rn