当我点击另一个按钮时如何删除谷歌地图标记?



当我点击另一个按钮时如何删除谷歌地图标记?

我是用芯片来实现功能的,但是当我点击其他芯片的时候数据还在显示,当我点击其他芯片的时候怎么清理之前的数据?

changeType(String ctype) async {
setState(() {
isLoading = true;
});
await FirebaseFirestore.instance
.collection('Product')
.where('type', isEqualTo: ctype)
.get()
.then(
(querySnapshot) {
querySnapshot.docs.forEach((element) async {
switch (ctype) {
case 'AAA':
markerIcon = await getBytesFromAsset(
'assets/aaa.png', 80);
break;
case 'BBB':
markerIcon =
await getBytesFromAsset('assets/bbb.png', 80);
break;
case 'CCC':
markerIcon = await getBytesFromAsset(
'assets/ccc.png', 80);
break;
case 'DDD':
markerIcon = await getBytesFromAsset(
'assets/ccc.png', 80);
break;
}
_markers.add(
Marker(
...
...
...
icon: BitmapDescriptor.fromBytes(markerIcon!),
infoWindow: InfoWindow(
title: element.data()['Name'],
),
),
);

如果我点击芯片,则值为AAA,它将显示AAA数据,但当我点击BBB芯片时,它将显示AAA &BBB,当我点击其他数据时它会清理之前的数据吗?

尝试使用

onPressed: () {
removeGmapMarkers();
changeType(e.campSiteType);
},

然后

removeGmapMarkers() {
_markers.removeWhere((element) => true);
}

最新更新