如果使用地理空间查询确定MongoDB,如果由Point和radius确定的圆与LineString相交?
用例:
MongoDB GeoJson LineString对象定义如下:
db.places.insert(
{
loc : { type: "LineString", coordinates: [ [-121.9420624, 37.3734995], [ -121.9388008, 37.3755458], [-121.9408607, 37.3720671] ] },
name: "Small trail"
});
用户位置为[-121.928887,37.299849] 如何确定以User位置为中心,半径为10英里的圆与LineString在任何地方相交?
我期待一个类似
的查询db.places.find({loc : {$geoIntersects :{$geometry :{$centerSphere: [ [ -121.928887, 37.299849 ], 100 / 3959 ]}}}});
但是这个不起作用
答案 0 :(得分:1)
文档令人困惑,但我认为底线是$geoIntersects
不能与$centerSphere
一起使用。不过,$centerSphere
可以与$geoWithin
一起使用。这适用于您的用例吗?语义有点不同,但可能足够接近。