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 中创建保存/加载方法时解包的值太多