我在使用 MongoDB 时遇到以下问题。我从我的祖国获得了一些地理数据,我必须将它们存储到 mongodb 中以建立一个简单的 Web 要素服务。该服务主要使用 $within
运算符进行边界框查询。数据采用 GeoJSON 格式。因此,我首先导入了以这种格式表示为点([1,2]
)的村庄和城市。没问题。下一步河流和街道是 LineStrings 并根据 GeoJSON 以这种方式表示 [[1,2],[3,4]]
。但是,当导入区域(实际上是多边形,并且根据 GeoJSON 规范 3 个暗淡数组)时,我在创建索引时收到错误geo value必须是数字
。
db.collection.ensureIndex({"geometry.coordinates" : "2d"});
所有数据都是有效的 GeoJSON,并且采用 EPSG:4326 投影中的纯二维坐标。
有人有想法吗?
最佳答案
在 MongoDB 2.4 中,对 GeoJSON 点、线串和多边形使用“2dsphere”索引。
例如,您可以创建此索引:
db.mycoll.ensureIndex( { loc : "2dsphere" } )
并存储此 LineString:
{ loc : { type : "LineString" , coordinates : [ [ 1 , 2 ] , [ 3 , 4 ] ] } }
关于mongodb - 在 MongoDB 中存储 GeoJSON 多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11137127/