0

我有一个用 创建的多边形polyfill,是否可以知道它point = [lat, lng]是否在该多边形中(仅使用 h3-js)?

4

1 回答 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 回答