我有一个用 创建的多边形polyfill
,是否可以知道它point = [lat, lng]
是否在该多边形中(仅使用 h3-js)?
问问题
32 次
1 回答
1
是的,这是可能的,尽管涉及简化 -polyfill
返回其中心位于多边形内的单元格,因此您将在多边形的边缘遇到一些情况,其中边缘附近的特定点将被错误地包含或排除在多边形之外。权衡是包含检查应该比传统的多点算法快得多,并且代码更简单:
// Create a set of H3 indexes representing the polygon. Using a finer
// value for H3_RES will give you better fidelity to the original
// polygon, at the cost of more memory usage
const polygonSet = new Set(h3.polyfill(myPolygon, H3_RES));
// Check whether a given point is in the polygon
function isPointInPoly(point) {
const h3Index = h3.geoToH3(point.lat, point.lng, H3_RES);
return polygonSet.has(h3Index);
}
于 2022-01-24T17:26:45.913 回答