3

我已经阅读了许多文档、帖子等,但似乎无法让事情正常进行。

我有一个实时数据库侦听器,它在 FirebaseAnimatedList 内提供纬度/经度坐标。提供坐标后,我希望它在地图上放置一个标记。当坐标不存在时,应该删除标记(我在代码中还没有那么远,我什至无法让标记显示出来)。

我像这样创建标记和控制器:

Set<Marker> markers = Set();
final Completer<GoogleMapController> _controller = Completer();

我在 FirebaseAnimatedList 中有以下代码来创建标记:

Marker userMarker;
              userMarker = Marker(
                markerId: MarkerId(id),
                position: LatLng(
                    lat, lon),
              );

              markers.add(userMarker);

我在构建小部件中调用 GoogleMap,如下所示:

GoogleMap(
              mapType: MapType.normal,
              myLocationEnabled: true,
              myLocationButtonEnabled: true,
              compassEnabled: true,
              initialCameraPosition: _kGooglePlex,
              onMapCreated: (GoogleMapController controller) {
                _controller.complete(controller);
              },
              markers: markers,
            ),

当侦听器拾取坐标时,不会添加任何标记。如果在创建地图时侦听器已经有了坐标,仍然没有添加标记。如何根据侦听器添加和删除标记?

4

0 回答 0