Маркер карты Google из двух списков

#flutter #google-maps #google-maps-markers

Вопрос:

У меня есть два списка в моем проекте, но на этой конкретной странице мне нужно будет извлечь данные из двух list , чтобы отобразить все имеющиеся у меня маркеры. Я использую Firestore для сохранения LatLng и другой информации. Причина, по которой я использую два list , заключается в том, что оба данных взяты из разных коллекций. Или есть какой-либо другой способ сохранить все данные из обеих коллекций только в 1 list ?

Адреса

маркеры

 Map<MarkerId, Marker>busmarkers = <MarkerId, Marker>{};

    void initMarker(specify, specifyId) async{
      var markerIdVal = specifyId;
      final MarkerId markerId = MarkerId(markerIdVal);
      final Marker marker = Marker(
          markerId: markerId,
          icon: BitmapDescriptor.fromAsset("assets/images/markerIconBus.png"),
          position: LatLng(specify['location'].latitude, specify['location'].longitude),
          onTap: openInfo,
      );
      setState(() {
        busmarkers[markerId] = marker;
      });
    }

    Future <void> getMarker() async{
      Firestore.instance.collection('markers').snapshots().listen((myData) {
        if(myData.documents.isNotEmpty){
          for (int i = 0; i < myData.documents.length; i  ){
            initMarker(myData.documents[i].data, myData.documents[i].documentID);
          }
        }
      });
      setState(() {
      });
    }
 

Это первый список, который я получу LatLng из marker коллекции.

 Firestore.instance
            .collection('locations')
            .snapshots()
            .listen((driverLocation){
          driverLocation.documents.forEach((dLocation){
            latitudeD = dLocation.data['latitude'];
            longitudeD = dLocation.data['longitude'];

            busStop.add(
                Marker(
                  markerId: MarkerId('driverLocation'),
                  draggable: false,
                  icon: BitmapDescriptor.fromAsset("assets/images/bus.png"),
                  onTap: () {
                  },
                  position: LatLng(latitudeD, longitudeD),
                ));
          });
          setState(() {
          });
        });
 

Это второй список, в котором я сохраню широту и долготу в busStop списке.

Мы высоко ценим любую документацию или образец кода. Спасибо.

Комментарии:

1. пожалуйста, поделитесь некоторым кодом и изображениями вашей структуры данных Firestore, чтобы получить лучшие советы и отзывы.

2. извини тебя за это. Уже обновил свой вопрос. Спасибо.

3. Что находится внутри местоположения и маркеров?

4. действительно жаль, что ты снова обновил мой вопрос. Спасибо.

5. Поскольку вы храните данные LatLng в своем документе «Маркеры», разве это не сработало бы? Если вы можете хранить их там, нет необходимости в отдельном документе, содержащем только латлинг. А ты как думаешь?