带有孔的MongoDB复杂多边形

问题描述

我想知道有没有办法查询带孔的复杂多边形。示例:

[
  [
    // hole rectangle
    [ 59.187,42.891 ],[ 59.187,13.997 ],[ 46.377,42.891 ]
  ],[
    // border rectangle
    [ 63.802,57.964 ],[ 63.802,0.176 ],[ 37.719,57.964 ]
  ]
]

我说的是地理空间查询

$geoWithin: {
    $polygon: polygon
}

我听说过一种在不同查询中对相交进行分组的方法,但对我来说似乎不是很好,所以也许我错过了一些东西。所以我正在寻找一种在非孔(突出显示)区域中进行查询方法

enter image description here

解决方法

现在我将继续处理下一个棘手的事情:

enter image description here

我将这些阵列展平并添加更多点,使其成为边之间距离最小的单个实心多边形。一旦我测试了这件事的性能并将其与其他方式进行比较(例如查询所有内容并删除不需要的内容),我将更新此评论。