# 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 为 MultiPolygon
var 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 的要素