【发布时间】:2013-05-12 03:09:57
【问题描述】:
我想要一个 MongoDB 集合,每个文档都包含一个由纬度/经度点(在 GeoJSON 中)定义的地理空间多边形。然后,我想获取任何给定的经度/纬度点并检查它是否位于文档中定义的任何 MongoDB 多边形内。假设,这就是文档的样子。
{
"type" : "congressional",
"points" : [
{ "coords" : [
-141.0205,
70.0187 ]
},
...
{ "coords" : [
-141.0205,
70.0187 ]
}
]
}
或者可能是这样:
{ loc :
{ type : "Polygon" ,
coordinates : [ [ [ 0 , 0 ] , [ 3 , 6 ] , [ 6 , 1 ] , [ 0 , 0 ] ] ]
} }
然后我会假设性地查询它(最有可能使用 Mongo 的 $geoWithin):
db.places.find( { loc : { $geoWithin : { $geometry : "EACH DOCUMENT IN COLLECTION"} } } )
地理围栏或类似的东西可以与当前的 MongoDB 功能集一起使用吗?如果有,怎么做?
【问题讨论】:
-
我已经完全改写了这个问题并包含了一些假设的代码示例,以帮助澄清我的问题。如果您认为这个问题现在的格式易于理解并且清楚地代表了一个真实的问题,您是否考虑投票重新打开它。非常感谢!
-
+1 好问题 .. 你能解决这个问题吗?你使用的是什么开发语言?
-
根据所有进一步的研究,我认为 MongoDB 并不真正支持地理围栏。同时,我选择将 Postgres SQL 与 PostGIS 一起使用。如果 MongoDB 曾经支持完整的地理围栏,我会切换回它。我希望这会有所帮助!
-
Mongo 可以做地理围栏,见答案。
标签: mongodb geocoding geospatial