我有一个包含文档的集合,每个都有一个包含多边形的字段数组。
我想测试我的多边形geoIntersect是否有任何这些多边形。如果它有帮助,它们都是盒形的。
如果你在我正在测试的数组中添加多边形的可能性,我会添加赏金点。我不希望它与自己相交......
城市:
{_id, buildings:[ {coo:{shape:"Polygon", coordinates:[ [0,0], [4,0], [4,5], [5,0],[0,0] ] }, {coo:{shape:"Polygon", coordinates:[ [0,0], [4,0], [4,5], [5,0],[0,0] ] } ] }}
想象一下,我在阵列中有大约100个元素。 我想确定,对于给定的形状,可能包含在数组中,如果它与任何其他多边形相交或者不与其他多边形相交(再次,排除它本身就在那里)。
答案 0 :(得分:0)
此页面将帮助您在复合空间文档上创建地理空间索引:
http://docs.mongodb.org/manual/core/geospatial-indexes/
然后您可以使用此页面找出您的查询
http://docs.mongodb.org/manual/reference/operator/box/#op._S_box
答案 1 :(得分:0)
试试这个:
<collection>.findOne({ 'polygons': { $geoIntersects: { $geometry: { type: "Point", coordinates: [Longitude, Latitude] } } } }