Я прочитал множество документов, сообщений и т. Д. И, похоже, что-то не получается.
У меня есть прослушиватель базы данных в реальном времени, который обеспечивает координаты широты и долготы внутри 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,
),
Когда слушатель выбирает координаты, маркер не добавляется. Если у слушателя уже есть координаты при создании карты, маркер по-прежнему не добавляется. Как получить маркер для добавления и удаления в зависимости от слушателя?