【发布时间】:2021-03-13 18:33:36
【问题描述】:
我的任务是允许用户在地图上构建一个多边形。我使用flutter_map 库和openstreetmaps。我不知道如何完成多边形的构建。
现在,在第一个 onTap 之前,IconButton 出现在地图上。我想让这个IconButton 处于活动状态,以便当用户onPress 使用它时:(1)图标更改,(2)返回(并保存以传递给后端)用户在多边形构建过程,以及 (3) 多边形构建过程停止(添加新点变得不可能)。
我认为,挑战归结为如何在保留功能的同时在另一个 setState 中回调 setState。但也许还有其他解决方案。
我的代码如下。如果需要,我可以提供整个代码。
我会很感激任何想法。
class _HomePageState extends State<HomePage> {
...
List<Marker> markers = [];
List<LatLng> polygonList = [];
bool singleTap = false;
...
options: MapOptions(
...
onTap: (latlng) {
if (singleTap) {
setState(() {
if (markers.length == 0) {
markers.add(
Marker(
point: latlng,
builder: (ctx) => IconButton(
icon: Icon(Icons.favorite),
onPressed: () {***HERE the process should be stopped with changing the icon, no new points;***
setState(() {});
},
),
),
);
} else {
markers.add(
Marker(...),
),
);
}
polygonList.add(latlng);
});
}
}),
【问题讨论】:
标签: button polygon openstreetmap markers fluttermap