【发布时间】:2013-05-29 21:53:29
【问题描述】:
我正在尝试在坐标数组的字段上使用地理空间 2dsphere。
我的城市有区域,每个城市都有自己的区域阵列。当我尝试做一个交叉路口时,我只用特定城市的区域测试 myArea 。因此,我不想将所有城市的所有区域放在同一个集合中。
所以我的问题是,你如何设置它?
我的服务器是 nodejs,如果有帮助,我会使用本机 mongodb 库。
【问题讨论】:
标签: mongodb geospatial
我正在尝试在坐标数组的字段上使用地理空间 2dsphere。
我的城市有区域,每个城市都有自己的区域阵列。当我尝试做一个交叉路口时,我只用特定城市的区域测试 myArea 。因此,我不想将所有城市的所有区域放在同一个集合中。
所以我的问题是,你如何设置它?
我的服务器是 nodejs,如果有帮助,我会使用本机 mongodb 库。
【问题讨论】:
标签: mongodb geospatial
GeoJSON 确实定义了 MultiPoli 数据类型,它已在 recent releases of MongoDB 中实现。如果您无法使用其中一个版本,您可以通过为一个集合中的每个城市创建一个文档,并为与另一个集合中的一个城市相关联的每个多边形创建一个文档,同时存储原始城市的 id 来解决问题。
即
城市收藏:
{
_id: ObjectId("51f67cfb20ea59dba539d9f8"),
name: 'New York',
...
}
city_polys 集合
{
city_id: ObjectId("51f67cfb20ea59dba539d9f8"),
loc: {
type: Polygon,
coordinates: ...
},
...
}
然后您可以在 city_poly 的 loc 字段上创建一个 2dsphere 索引。
【讨论】: