该函数用于在操作区域内判断点是否在凹形区域内部。
points
(FeatureCollection<Point> | Array<Array<number>>): 包含点的集合。可以是GeoJSON的点列表或类似于[ [1,2],[2,3],[3,4] ] 的点集数组。polygon
(Feature<Polygon> | Array<Array<number>>): 凹形区域。可以是GeoJSON的多边形或类似于[[1,2],[2,3],[3,4]]的坐标点数组。var points = turf.points([
[-70.603, -33.399],
[-70.603, -33.395],
[-70.60, -33.398],
[-70.606, -33.397],
[-70.607, -33.393],
[-70.605, -33.392]
]);
var polygon = turf.polygon([[
[-70.62, -33.39],
[-70.63, -33.37],
[-70.62, -33.37],
[-70.60, -33.39],
[-70.62, -33.39]
]]);
var concave = turf.booleanConcave(points, polygon);
//=concave
points
必须包含至少1个点。polygon
必须是Polygon或MultiPolygon。可以用射线法进行计算。为了确定点是否在凹形区域内部,需要找到射线与凹形区域的交点数量。当交点数量为偶数时,该点在凸区域内;如果交点数量为奇数,则该点在凹形区域内。