我正在尝试通过具有 GeoJson 数据的推文集合进行查询,如下所示:[ [ [ -63.39386, -41.035009 ], [ -62.39386, -33.260144 ], [ -54.665826, -33.260144 ], [ -56.665836, -41.035009 ] ] ]使用$geoWithin我想使用 Bounding_box 进行过滤 问题是:即使上面的坐标包含在我的 bounding_box 中,我也没有得到任何结果。为了弄清楚这个问题,我使用https://boundingbox.klokantech.com/创建了一些 GeoJson 数据,看看它是否有效,是的,它总是有效,例如,我得到的坐标如下 [[[-69.40602388, -28.3114053673], [-68.7425288674, -28.3114053673], [-68.7425288674, -27.7163373156], [-69.40602388, -27.7163373156], [-69.40602388, -28.3114053673]]].试图理解为什么它在使用https://boundingbox.klokantech.com/而不是使用集合时起作用我发现使用集合坐标我得到一个错误:pymongo.errors.OperationFailure: Loop is not closed: [ [ -63.39386, -41.035009 ], [ -62.39386, -33.260144 ], [ -54.665826, -33.260144 ], [ -56.665836, -41.035009 ] ]当尝试将此坐标用作过滤器时$geoWithin... 所以这意味着问题是集合坐标?但那些来自推特我对此无能为力。也许有办法关闭循环?
1 回答
不负相思意
TA贡献1777条经验 获得超10个赞
问题是 GeoJson 数据需要用您打开它的相同点来关闭循环。
为了:[ [ [ -63.39386, -41.035009 ], [ -62.39386, -33.260144 ], [ -54.665826, -33.260144 ], [ -56.665836, -41.035009 ] ] ]
我必须在最后添加 [ -63.39386, -41.035009 ] 所以它变成了:[ [ [ -63.39386, -41.035009 ], [ -62.39386, -33.260144 ], [ -54.665826, -33.260144 ], [ -56.665836, -41.035009 ],[ -63.39386, -41.035009 ] ] ]
添加回答
举报
0/150
提交
取消