mongodb - 在 MongoDB 中存储 GeoJSON 多边形

标签 mongodb indexing geo geojson

我在使用 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 ] ] } }

参见http://docs.mongodb.org/manual/applications/2dsphere/ .

关于mongodb - 在 MongoDB 中存储 GeoJSON 多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11137127/

相关文章:

javascript - findOneAndUpdate() 基于查找查询条件的子数组

mongodb - mongodump 断言 17369

javascript - 尝试在 meteor 中将两个集合合并在一起

Pythonic 方式在不丢失维度的情况下建立索引

arrays - 你能有一个在索引 0 处没有元素的数组吗

php - 无法在 mac os MAMP PRO 上设置 php mongo 驱动程序

python - 根据给定索引交换两个列表的值

安卓 6.0 getLastKnowLocationPermission

d3.js - 在 d3.geo MultiPoint 如何为不同的点提供不同的形状?

python - 在 python 中使用 X 和 Y 值从两个 CSV 文件创建单个 CSV