首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TurfJS如何从多边形获取LineString降低应用缓冲区值

TurfJS如何从多边形获取LineString降低应用缓冲区值
EN

Stack Overflow用户
提问于 2020-01-21 10:25:58
回答 1查看 842关注 0票数 1

我使用以下内容为LineString段创建了一个缓冲多边形:

const bufferedPolygon = turf.buffer(featureGeoJson, bufferVal, 'kilometers');

有什么方法可以从现在可用的LineString和bufferVal中返回原始的bufferedPolygon featureGeoJson吗?

我尝试从草皮中使用polygonToLine方法,但是我仍然得到一个与上面的缓冲多边形相同的多边形,类型的更新为lineString。

EN

回答 1

Stack Overflow用户

发布于 2020-03-24 11:15:49

好的,turf.buffer从提供的对象创建一个新对象,而不跟踪它以前的状态。而且,正如您所说的,polygonToLinepolygonToLineString只会将多边形边界转换成一行字符串--它们并不是buffer的逆函数。

turf.buffer所做的是保留原始特性的properties。因此,我们可以将原始几何保存到行字符串的属性中:

代码语言:javascript
复制
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'
});

因此,保留您可以还原到的原始文件:

代码语言:javascript
复制
{
  "type":"Feature",
  "properties":{
    "name":"line 1",
    "original_geometry":{
      "type":"LineString",
      "coordinates":[[-24,63],[-23,60],[-25,65],[-20,69]]
    }
  },
  "geometry":{
    "type":"Polygon",
    "coordinates":[...]
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59839007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档