MongoDB:如何确定GeoJson LineString与具有半径的Point的交集

时间:2015-02-17 00:50:04

标签: mongodb geospatial

如果使用地理空间查询确定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 ]}}}});

但是这个不起作用

1 个答案:

答案 0 :(得分:1)

文档令人困惑,但我认为底线是$geoIntersects不能与$centerSphere一起使用。不过,$centerSphere可以与$geoWithin一起使用。这适用于您的用例吗?语义有点不同,但可能足够接近。