【发布时间】:2021-05-17 13:43:12
【问题描述】:
我想知道有没有办法查询带有孔的复杂多边形。示例:
[
[
// hole rectangle
[ 59.187, 42.891 ],
[ 59.187, 13.997 ],
[ 46.377, 13.997 ],
[ 46.377, 42.891 ]
],
[
// border rectangle
[ 63.802, 57.964 ],
[ 63.802, 0.176 ],
[ 37.719, 0.176 ],
[ 37.719, 57.964 ]
]
]
我说的是地理空间查询:
$geoWithin: {
$polygon: polygon
}
我听说有一种方法可以在不同的查询中对相交进行分组,但对我来说似乎不是很好,所以也许我错过了一些东西。所以我正在寻找一种在非孔(突出显示)区域进行查询的方法:
【问题讨论】:
-
我希望 array.flat() 能提供帮助,但没有
-
我认为您必须运行 2 个查询阶段,一个
$geoWithin用于外部区域,然后删除内部区域。或使用 3rd 方库,例如turf.js
标签: mongodb performance maps polygon