我已经阅读了许多文档、帖子等,但似乎无法让事情正常进行。
我有一个实时数据库侦听器,它在 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,
),
当侦听器拾取坐标时,不会添加任何标记。如果在创建地图时侦听器已经有了坐标,仍然没有添加标记。如何根据侦听器添加和删除标记?