首页 > 解决方案 > 删除 google_maps_flutter 中的标记

问题描述

我已经为 Flutter 添加了谷歌地图 我知道如何添加一个标记,因为它在示例中明确给出

MarkerOptions _options = new MarkerOptions(
          position: LatLng(
            driver_lat,
            driver_lng,
          ),
          infoWindowText:
              const InfoWindowText('An interesting location', '*'));

      Marker marker = new Marker('1', _options);

      //Adding Marker
      googleMapController.addMarker(_options);

我正在删除如下标记

googleMapController.removeMarker(marker);

对于添加标记,它将 MarkerOptions 对象作为参数,但对于删除标记,它要求 Marker 对象作为参数,并且我的删除标记代码不起作用。我收到以下错误

Failed assertion: line 201 pos 12: '_markers[marker._id] == marker': is not true.

标签: google-mapsfluttergoogle-maps-markers

解决方案


2020年答案:

.clearMarkers() 已被弃用,因为现在每个标记都是存储在地图中的小部件。现在清除谷歌地图上所有标记的正确方法是将标记地图的状态设置为空地图。

例如

                ...
                  onPressed: () {
                    setState(() {
                      gMapMarkers = {};
                    });
                  }
                ....

推荐阅读