React-Leaflet-Draw:在保存时访问多边形的坐标数组

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React-Leaflet-Draw:在保存时访问多边形的坐标数组相关的知识,希望对你有一定的参考价值。

我有一个组件在地图上放置了一个可编辑的多边形。当用户点击“保存”按钮时,我想访问多边形的新顶点数组,以便我可以保存它们。我该怎么做呢?

我的组件:

<FeatureGroup>
    <EditControl
        position="topright"
        onEdited={e => console.log(e)}
        edit={{ remove: false }}
        draw={{
                marker: false,
                circle: false,
                rectangle: false,
                polygon: false,
                polyline: false
             }}
        />
        <Polygon positions={polygonCoords} />;
</FeatureGroup>

我得到的几个参考文献:

https://github.com/alex3165/react-leaflet-draw

https://leaflet.github.io/Leaflet.draw/docs/leaflet-draw-latest.html#l-draw-event-draw:editstop

我理解我必须实现处理onEdited钩子和由此生成的事件的某种函数,但是有没有人知道如何从这个事件中获取新的顶点数组?

答案

对于任何正在努力解决这个问题的人来说,这是ES6的可行解决方案:

        <FeatureGroup>
            <EditControl
                position="topright"

                //this is the necessary function. It goes through each layer
                //and runs my save function on the layer, converted to GeoJSON 
                //which is an organic function of leaflet layers.

                onEdited={e => {
                    e.layers.eachLayer(a => {
                        this.props.updatePlot({
                            id: id,
                            feature: a.toGeoJSON()
                        });
                    });
                }}
                edit={{ remove: false }}
                draw={{
                    marker: false,
                    circle: false,
                    rectangle: false,
                    polygon: false,
                    polyline: false
                }}
            />
            <Polygon positions={[positions(this.props)]} />;
        </FeatureGroup>
    );

以上是关于React-Leaflet-Draw:在保存时访问多边形的坐标数组的主要内容,如果未能解决你的问题,请参考以下文章

Cookie是储存在电脑文本文件中的数据,用于保存访问者的信息,并可以在下次打开页面时引用。

访问子表单,选择下一条记录时停止自动保存到链接表

我尝试访问元组值,但它说在尝试在 Python 中创建保存/加载方法时解包的值太多

我在尝试将 winforms 文本框值保存到连接的 MS 访问数据库时出错

保存时无法访问 C# excel SaveAs 文件

将配置保存为非管理员用户时,Magento 付款方式访问被拒绝