如何在Flutter的Google地图上添加多个标记?

问题描述

我正在开发Flutter应用。我必须添加一个映射,该映射将基于Firebase中存储的地址字符串具有多个标记我有this包用于地理编码。但是,我在执行此操作时遇到了一些问题。

我可以添加单个标记,如下所示:

findCoordinatesByQuery('Danila Kiša 23,Novi Sad,21101').then((value) {
  if (value != null) {
    markers.add(
      Marker(
        markerId: MarkerId(Uuid().v4()),draggable: true,onTap: () {
          print('marker tapped');
        },position: LatLng(value.latitude,value.longitude),),);
    setState(() {
      _markers = markers;
    });
  }
}).catchError((onError) => print('Can\'t add marker $onError'));

但是当我获取所有地址字符串并尝试在循环中添加标记时,会出现此错误

PlatformException(错误10,kCLErrorDomain,操作无法完成。(kCLErrorDomain错误10。))

这是该代码

var docs = await Firestore.instance
    .collection("orders")
    .orderBy('timestamp',descending: true)
    .where('partner_name',isEqualTo: user.companyName)
    .getDocuments();
docs.documents.forEach((e) {
  String startLocationName =
      '${e.data['sender_street_name'] == null ? e.data['sender_street_number'] ?? '' : e.data['sender_street_name'] ?? ''},${e.data['sender_city'] ?? ''},${e.data['sender_zip_code'] ?? ''}';
  findCoordinatesByQuery(startLocationName).then((value) {
    if (value != null) {
      markers.add(
        Marker(
          markerId: MarkerId(Uuid().v4()),onTap: () {
            print('marker tapped');
          },);
    }
    setState(() {
      _markers = markers;
    });
  }).catchError((onError) {
    print('Can\'t add marker');
  });
});

正在从initState调用执行该代码函数

我正在使用地址字符串获取这样的坐标

Geocoder.local.findAddressesFromQuery(address);

长期坚持这一点,任何帮助都会很棒。 谢谢您的时间!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)