使用Turf的booleanPointInPolygon
函数可以判断一个点是否在多边形内部,并返回一个布尔值。该函数的输入参数包括一个点坐标和一个多边形,输出结果是一个布尔值,表示该点是否在该多边形内。
turf.booleanPointInPolygon(point, polygon);
point
:表示要判断的点的坐标,可以是Turf的点对象或者包含点坐标的数组,格式为[lng, lat]
(经度,纬度)。polygon
:表示包含要判断的点的多边形,可以是Turf的多边形对象或者包含多边形顶点坐标数组的多边形对象(顶点顺序应该是顺时针方向),格式为[[[lng1,lat1],[lng2,lat2],...,[lngN,latN]]]
。该函数返回一个布尔值,如果点在多边形内部,返回true
,否则返回false
。
var point = turf.point([-77, 44]);
var polygon = turf.polygon([[
[-76, 43],
[-80, 46],
[-73, 47],
[-76, 43]
]]);
var isInside = turf.booleanPointInPolygon(point, polygon);
console.log(isInside); // 返回 true
在上面的示例中,我们首先定义了一个点对象和一个多边形对象,然后调用 booleanPointInPolygon
函数来判断点是否在多边形内部,最后输出结果为 true
。
如果输入的参数不符合要求,会抛出异常。例如,如果点对象或多边形对象的格式不正确,或者多边形顶点顺序不是顺时针方向,都会引发异常。在代码中,可以使用 try-catch
语句来捕获这些异常,以便更好的处理错误。