伙计们我试图通过边界框查询里面的所有多边形,但它只返回0 ..它应该返回许多多边形!
或者,我尝试查询更大的边界框,没有任何反应!
我的查询是:
{
geometry:
{ $geoWithin:
{ $box:
[ [-73.995762,40.764826], [-73.934034,40.802038] ]
}
}
}
请注意,同一查询返回类型为Point
答案 0 :(得分:1)
通过边界框查询内部的所有多边形,但它只返回0
$box operator的$geoWithin仅支持基于grid coordinates的文档,不支持GeoJSON形状格式。
同一查询返回Point
类型的几何的有效结果
根据您的文档结构以及查询方式,这可能被视为网格坐标,即{geometry: [<long>, <lat>]}
这可能不适用于您的多边形文档,因为GeoJSON Polygons需要额外的数组包装器。即[[ [<long>, <lat>] ]]
使网格坐标格式无效。
如果您的文档采用GeoJSON格式,并且您想要选择某个区域,则可以使用$geometry代替。
db.places.find(
{
'geometry': {
$geoWithin: {
$geometry: {
type : "Polygon" ,
coordinates: [ [ [ 0, 0 ], [ 3, 6 ], [ 6, 1 ], [ 0, 0 ] ] ]
}
}
}
}
)
值得注意的是MongoDB Compass当前地理空间可视化(v1.6)尚不支持GeoJSON。
答案 1 :(得分:0)