# feature conversion

# combine

npm install @turf/combine

接收一个 type 为 PointLineStringPolygon 的要素集(FeatureCollection),组合成 type 为 MultiPointMultiLineStringMultiPolygon的单一要素并返回

值得注意的是,当入参要素集存在不同类型的要素时,返回的要素不是单一要素,而是进行同要素归类。例如,入参两个 Point,两个 LineString,出参一个 MultiPoint,一个 MultiLineString

参数

入参 类型 描述
fc FeatureCollection<Point|LineString|Polygon> 任意类型的要素集

返回

FeatureCollection<MultiPoint|MultiLineString|MultiPolygon>

范例

var fc = turf.featureCollection([
  turf.point([19.026432, 47.49134]),
  turf.point([19.074497, 47.509548])
]);

var combined = turf.combine(fc);
/*
{
  type: "FeatureCollection",
  features: [{
    type: "Feature",
    geometry: {
      type: "MultiPoint",
      coordinates: [
        [19.026432, 47.49134],
        [19.074497, 47.509548]
      ]
    }
  }]
}
*/

# explode

npm install @turf/explode

接收任意要素(Feature)或要素集(FeatureCollection),返回所有要素的顶点

参数

入参 类型 描述
geojson GeoJSON 要素或要素集

返回

FeatureCollection<Point>

范例

var polygon = turf.polygon([
  [
    [-81, 41],
    [-88, 36],
    [-84, 31],
    [-80, 33],
    [-77, 39],
    [-81, 41]
  ]
]);

var explode = turf.explode(polygon); // 返回六个顶点的要素集

# flatten

npm install @turf/flatten

接收一个 type 为 MultiPointMultiLineStringMultiPolygon的要素,返回 type 为 PointLineStringPolygon 的要素集(FeatureCollection)

参数

入参 类型 描述
geojson GeoJSON Multi*的要素

返回

FeatureCollection - 摊平的要素集

范例

var multiGeometry = turf.multiPolygon([
  [
    [
      [102.0, 2.0],
      [103.0, 2.0],
      [103.0, 3.0],
      [102.0, 3.0],
      [102.0, 2.0]
    ]
  ],
  [
    [
      [100.0, 0.0],
      [101.0, 0.0],
      [101.0, 1.0],
      [100.0, 1.0],
      [100.0, 0.0]
    ],
    [
      [100.2, 0.2],
      [100.8, 0.2],
      [100.8, 0.8],
      [100.2, 0.8],
      [100.2, 0.2]
    ]
  ]
]); // type 为 MultiPolygon

var flatten = turf.flatten(multiGeometry); // type 为 Polygon 的多个要素

# lineToPolygon

npm install @turf/line-to-polygon

接收 type 为 LineStringMultiLineString 的线要素,转换成 type 为 PolygonMultiPolygon 的面要素

值得注意的是,入参只能接收线要素,否则报错

参数

入参 类型 描述
lines FeatureCollection<LineString|MultiLineString> 需转换的线要素
options Object 可配置项

options

属性 类型 默认值 描述
properties Object {} 出参 type 为 Polygon 的 GeoJSON 的 properties 属性
autoComplete Boolean true 匹配首尾坐标来自动完成面的规则
orderCoords Boolean true 外圈的线优先放置在坐标组的前面

返回

Feature<Polygon|MultiPolygon>

范例

var line = turf.lineString([
  [125, -30],
  [145, -30],
  [145, -20],
  [125, -20],
  [125, -30]
]);

var polygon = turf.lineToPolygon(line); // type 为 Polygon 的面要素

# polygonize

npm install @turf/polygonize

接收一个 type 为 LineString 或 [MultiLineString][multilintstring_link] 的要素,转换成 type 为 Polygon 的面要素集合

值得注意的是,lineToPolygon 方法返回要素,该方法返回要素集,且不能传入 options 的属性

参数

入参 类型 描述
geojson FeatureCollection<LineString|[MultiLineString][multilintstring_link]> 需转换的线要素

返回

FeatureCollection<Polygon>

范例

var line = turf.lineString([
  [125, -30],
  [145, -30],
  [145, -20],
  [125, -20],
  [125, -30]
]);

var polygon = turf.polygonize(line); // type 为 Polygon 的面要素

# polygonToLine

npm install @turf/polygon-to-line

接收 type 为 PolygonMultiPolygon 的面要素,转换成 type 为 LineString 的线要素 或 MultiLineString 的要素集FeatureCollection

参数

入参 类型 描述
polygon FeatureCollection<Polygon|MultiPolygon> 需转换的要素
options Object 可配置项

options

属性 类型 默认值 描述
properties Object {} 出参 type 为 Polygon 的 GeoJSON 的 properties 属性

返回

FeatureCollection<LineString|MultiLineString>

范例

var poly = turf.polygon([
  [
    [125, -30],
    [145, -30],
    [145, -20],
    [125, -20],
    [125, -30]
  ]
]);

var line = turf.polygonToLine(poly); // type 为 LineString 的要素
Last Updated: 7/28/2020, 3:58:10 PM