feature conversion
combine
npm install @turf/combine
接收一个 type 为 Point、LineString、Polygon 的要素集(FeatureCollection),组合成 type 为 MultiPoint、MultiLineString、MultiPolygon的单一要素并返回
值得注意的是,当入参要素集存在不同类型的要素时,返回的要素不是单一要素,而是进行同要素归类。例如,入参两个 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 | 要素或要素集 |
返回
范例
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 为 MultiPoint、MultiLineString、MultiPolygon的要素,返回 type 为 Point、LineString、Polygon 的要素集(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 为 MultiPolygonvar flatten = turf.flatten(multiGeometry); // type 为 Polygon 的多个要素
lineToPolygon
npm install @turf/line-to-polygon
接收 type 为 LineString 或 MultiLineString 的线要素,转换成 type 为 Polygon 或 MultiPolygon 的面要素
值得注意的是,入参只能接收线要素,否则报错
参数
| 入参 | 类型 | 描述 | |
|---|---|---|---|
| lines | FeatureCollection<LineString\ | MultiLineString> | 需转换的线要素 |
| options | Object | 可配置项 |
options
| 属性 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| properties | Object | {} | 出参 type 为 Polygon 的 GeoJSON 的 properties 属性 |
| autoComplete | Boolean | true | 匹配首尾坐标来自动完成面的规则 |
| orderCoords | Boolean | true | 外圈的线优先放置在坐标组的前面 |
返回
范例
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]> | 需转换的线要素 |
返回
范例
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 为 Polygon 或 MultiPolygon 的面要素,转换成 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 的要素
