MEASUREMENT
COORDINATE MUTATION
TRANSFORMATION
FEATURE_CONVERSION
MISC
HELPER
RANDOM
GRIDS
AGGREGATION
META
ASSERTIONS
BOOLEANS
UNIT CONVERSION
DATA
JOINS
CLASSIFICATION

简介

Turf中的convex是一个方法,可以计算给定输入点集的凸包。凸包是一个多边形,在四面八方的角度内都不会凹陷,其腰也保持平直不弯曲。convex方法会返回一个形成凸包的多边形的坐标数组。

示例数据

以下是一个包含三个点的示例数据,我们将使用此数据说明该方法:

var points = [
    [-75.343, 39.984],
    [-75.833, 39.284],
    [-75.999, 39.231]
];

方法调用

调用 turf.convex() 方法,并将点集作为输入参数传递到其中,如下所示:

var turf = require("@turf/turf");
var polygon = turf.convex(points);

参数

convex() 方法接受一个包含点集的数组,点集由二元数组表示,如下所示:

var points = [
    [longitude, latitude],
    [longitude, latitude],
    [longitude, latitude],
    ...
];

返回值

convex() 方法返回一个 Turf.Polygon 类型的凸包,形成凸包的多边形的坐标数组,如下所示:

{
    "type": "Feature",
    "properties": {},
    "geometry": {
        "type": "Polygon",
        "coordinates": [
            [
                [-75.999, 39.231],
                [-75.343, 39.984],
                [-75.833, 39.284],
                [-75.999, 39.231]
            ]
        ]
    }
}

异常情况

  • 当输入点集不包含三个或以上的点时,会抛出异常 "points must contain at least three positions"。

应用场景

convex() 方法是在GIS、测绘、地理信息等领域常常使用的算法之一,常常被用于寻找最小外包矩形、聚类分析等应用场景。在许多需要基于点集的几何形状进行研究和分析中,凸包都是重要的基础。