Как добавить и удалить маркеры в Flutter Google Maps на основе прослушивателя базы данных в реальном времени? - PullRequest
0 голосов
/ 11 июля 2019

Я прочитал множество документов, сообщений и т. Д. И, похоже, что-то не получается.

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

Когда слушатель выбирает координаты, маркер не добавляется. Если у слушателя уже есть координаты при создании карты, маркер по-прежнему не добавляется. Как получить маркер для добавления и удаления в зависимости от слушателя?

...