如何让用户在开放的街道地图上构建多边形?

How to let the user to build a polygon on the open street map?

更新:完成。看看这个美丽的多边形。

UPD:在 Flutter/openstreetmap 中,我想让用户通过点击地图 and/or 单击按钮来绘制多边形。不应填充多边形。我需要一个非常简单的例子来了解它是如何工作的。

最后的任务是:

我正在制作一个 flutter 应用程序,该应用程序应使用户能够获取有关位于地图上特定区域内的标记的信息。我用osm。通过按下按钮,用户开始构建任意多边形,其每个角都在下一次按下按钮的位置形成。当多边形构建完成后,多边形内部的对象会显示出来,其余的则隐藏或不构建。之后,循环以清除地图结束。

我还没有找到 osm 的任何解决方案。我将不胜感激任何帮助。我还没有任何代码)

您可以使用 flutter_map 库,我相信您可以理解文档以及如何设置它。

然后使用 PolygonLayerOptions(polygons: [Polygon(points: polygonList)]) 作为 OSM 层之上的层。然后设置列表 polygonList 并使用 FlutterMap()onTap 回调获取用户点击的位置并将 LatLng 添加到 polygonList列表。 Polygon() 构造函数中还有多个其他配置选项,可以通过 IntelliSense 或类似工具找到这些选项。要没有填充,只需将颜色设置为透明即可。

我在我的应用程序中使用了这种方法(或非常相似的方法),它允许用户下载地图区域。用户点击他们想要下载的矩形区域的左上角和右下角,通过代码计算右上角和左下角,并绘制一个多边形来向用户显示他们点击的确切位置。确保使用 setState() 或类似的。