【发布时间】:2015-05-25 17:46:48
【问题描述】:
我在 MongoDB 中有一个带有 2dsphere 索引的集合。我要保存的对象如下所示:
{
"type" : "Polygon",
"coordinates" : [
[
[
5.052617929724351,
52.64653192570052
],
[
5.051738165167465,
52.64765805672784
],
[
5.054162882116928,
52.64831549553909
],
[
5.054592035559312,
52.64780777138566
],
[
5.055364511755601,
52.64790541110375
],
[
5.056094072607651,
52.64688343792051
],
[
5.054237983969346,
52.64661654927096
],
[
5.052617929724351,
52.64653192570052
]
]
]
}
根据http://geojsonlint.com/,这是完全有效的 GeoJSON。但是 MongoDB 表示它无法提取地理键,因为 GeoJSON 可能格式不正确。
谁能帮我找出错误?
这是我得到的 MongoDB 错误:
insertDocument :: caused by :: 16755 Can't extract geo keys from object, malformed geometry?
【问题讨论】:
-
您的点阵列周围有 2 个阵列括号。尝试删除一组数组括号。应该是 [[lat, long],[lat, long],...]
-
你好布赖恩,我不认为这是正确的。 GeoJSON 中的多边形是一组坐标环。 GeoJSON lint 还报告这是无效的 GeoJSON。不过我会在 MongoDB 中尝试一下。
-
对不起。我认为只有 MultiPolygon 需要额外的数组括号。太有趣了...我发现一个帖子的答案以相同的方式开始groups.google.com/forum/m/#!topic/mongodb-user/OPouYFHS_zU
-
没问题 :) 这是一个容易犯的错误。
-
这根本不是问题,这个确切的文档只是在您的文档中找到一个 geoJSON 对象的 值。
标签: mongodb mongodb-query geojson