我已经弄清楚如何对交集进行查询,但无法弄清楚如何在数据库中定义框,以便它返回与我的查询参数相交的所有框。
我该如何做到这一点?
我发现这个网站最有帮助。只需使用他们的示例,一切都应该清楚。如果不是,请考虑将那个复杂的多边形变成一个正方形(这也是一个多边形)。
您可以将这些命令用于名为“test”的数据库和名为“geo”的集合:
test.geo.insert( {_id: "Poly1", shape: {type: "Polygon", coordinates: [[ [1,2], [1,4], [4,4], [4,2], [1,2] ]] } });
test.geo.ensureIndex( {shape:"2dsphere"} );
geo.find( {shape: {$geoIntersects: {$geometry: {type: "Polygon", coordinates: [[ [2,4], [2,8], [3,8], [3,4], [2,4] ]] }}}} )
这个特定示例的多边形在第 4 列相交。我尚未测试所有可能的组合,但从我测试的组合来看,它确实有效。