【问题标题】:How to let the user to build a polygon on the open street map?如何让用户在开放的街道地图上构建多边形?
【发布时间】:2021-03-02 23:59:45
【问题描述】:

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

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

最后的任务是:

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

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

【问题讨论】:

    标签: flutter dynamic polygon openstreetmap


    【解决方案1】:

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

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

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

    【讨论】:

    • 谢谢!是的,我使用 flutter_map 库。现在我正在尝试使用 setState() 设置自定义标记并获取其坐标。然后我将收集所有标记的坐标并尝试使用它们制作多边形。我预计会遇到一些困难,所以,如果你在最近的未来 8-) 中以这种方式支持我,那就太好了
    • 当然,我不能保证我会在那里,但我会尽力提供帮助!
    • 完成!哇!非常感谢))现在我将使其透明。如果您向我推荐相关阅读材料(1 - 3 项),那就太好了。老实说,我在互联网上没有找到很多关于我的问题的信息。
    • 很高兴听到:)!老实说,我在网上也找不到太多关于它的信息,我只是在开发我的应用程序时编造的。缺少文档会导致一些问题(我假设):github.com/fleaflet/flutter_map/issues/77。但事实就是如此。我刚刚通过 IntelliSense 了解到有一个多边形层。无论如何,很高兴我能帮上忙!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-06
    • 2019-10-14
    • 1970-01-01
    • 2019-11-06
    • 1970-01-01
    相关资源
    最近更新 更多