我使用以下内容为LineString段创建了一个缓冲多边形:
const bufferedPolygon = turf.buffer(featureGeoJson, bufferVal, 'kilometers');
有什么方法可以从现在可用的LineString和bufferVal中返回原始的bufferedPolygon featureGeoJson吗?
我尝试从草皮中使用polygonToLine方法,但是我仍然得到一个与上面的缓冲多边形相同的多边形,类型的更新为lineString。
发布于 2020-03-24 11:15:49
好的,turf.buffer从提供的对象创建一个新对象,而不跟踪它以前的状态。而且,正如您所说的,polygonToLine和polygonToLineString只会将多边形边界转换成一行字符串--它们并不是buffer的逆函数。
turf.buffer所做的是保留原始特性的properties。因此,我们可以将原始几何保存到行字符串的属性中:
const linestring1 = turf.lineString([
[-24, 63],
[-23, 60],
[-25, 65],
[-20, 69]
], {
name: 'line 1'
});
linestring1.properties.original_geometry = linestring1.geometry;
const bufferedPolygon = turf.buffer(linestring1, 2, {
units: 'kilometers'
});因此,保留您可以还原到的原始文件:
{
"type":"Feature",
"properties":{
"name":"line 1",
"original_geometry":{
"type":"LineString",
"coordinates":[[-24,63],[-23,60],[-25,65],[-20,69]]
}
},
"geometry":{
"type":"Polygon",
"coordinates":[...]
}
}https://stackoverflow.com/questions/59839007
复制相似问题