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>

范例

  1. var fc = turf.featureCollection([
  2. turf.point([19.026432, 47.49134]),
  3. turf.point([19.074497, 47.509548])
  4. ]);
  5. var combined = turf.combine(fc);
  6. /*
  7. {
  8. type: "FeatureCollection",
  9. features: [{
  10. type: "Feature",
  11. geometry: {
  12. type: "MultiPoint",
  13. coordinates: [
  14. [19.026432, 47.49134],
  15. [19.074497, 47.509548]
  16. ]
  17. }
  18. }]
  19. }
  20. */

explode

npm install @turf/explode

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

参数

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

返回

FeatureCollection<Point>

范例

  1. var polygon = turf.polygon([
  2. [
  3. [-81, 41],
  4. [-88, 36],
  5. [-84, 31],
  6. [-80, 33],
  7. [-77, 39],
  8. [-81, 41]
  9. ]
  10. ]);
  11. var explode = turf.explode(polygon); // 返回六个顶点的要素集

flatten

npm install @turf/flatten

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

参数

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

返回

FeatureCollection - 摊平的要素集

范例

  1. var multiGeometry = turf.multiPolygon([
  2. [
  3. [
  4. [102.0, 2.0],
  5. [103.0, 2.0],
  6. [103.0, 3.0],
  7. [102.0, 3.0],
  8. [102.0, 2.0]
  9. ]
  10. ],
  11. [
  12. [
  13. [100.0, 0.0],
  14. [101.0, 0.0],
  15. [101.0, 1.0],
  16. [100.0, 1.0],
  17. [100.0, 0.0]
  18. ],
  19. [
  20. [100.2, 0.2],
  21. [100.8, 0.2],
  22. [100.8, 0.8],
  23. [100.2, 0.8],
  24. [100.2, 0.2]
  25. ]
  26. ]
  27. ]); // type 为 MultiPolygon
  28. 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>

范例

  1. var line = turf.lineString([
  2. [125, -30],
  3. [145, -30],
  4. [145, -20],
  5. [125, -20],
  6. [125, -30]
  7. ]);
  8. 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>

范例

  1. var line = turf.lineString([
  2. [125, -30],
  3. [145, -30],
  4. [145, -20],
  5. [125, -20],
  6. [125, -30]
  7. ]);
  8. 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>

范例

  1. var poly = turf.polygon([
  2. [
  3. [125, -30],
  4. [145, -30],
  5. [145, -20],
  6. [125, -20],
  7. [125, -30]
  8. ]
  9. ]);
  10. var line = turf.polygonToLine(poly); // type 为 LineString 的要素