2

嗨,我有一个带有 2d 球体索引的集合

wayCollection.createIndex(new BasicDBObject("poly", "2dsphere"));

我当我尝试插入某个对象时出现错误:

Exception in thread "main" com.mongodb.WriteConcernException: { "serverUsed" : "localhost:27017" , "ok" : 1 , "n" : 0 , "err" : "insertDocument :: caused by :: 16755 Can't extract geo keys from object, malformed geometry?: { _id: ObjectId('53a89dc6a0042baf54050037'), id: 24837452, version: \"64\", changeset: \"13731788\", uid: \"362915\", user: \"micha555\", timestamp: \"2012-11-03T09:11:23Z\", poly: { type: \"Polygon\", coordinates: [ [ [ 9.1244131, 50.0109503 ], [ 9.120464800000001, 50.0099731 ], [ 9.116641, 50.0077

虽然多面环是闭合的(第一个和最后一个坐标相同)

有任何想法吗?

这是另一个被拒绝的多边形:

{
   "type":"Polygon",
   "coordinates":[
      [
         [
            9.0496053,
            51.3255584
         ],
         [
            9.0492235,
            51.32532
         ],
         [
            9.0495831,
            51.3251321
         ],
         [
            9.049917199999999,
            51.3253429
         ],
         [
            9.0496053,
            51.3255584
         ],
         [
            9.049984500000001,
            51.3258463
         ],
         [
            9.0505795,
            51.3262127
         ],
         [
            9.050045600000001,
            51.326574
         ],
         [
            9.0496432,
            51.3263928
         ],
         [
            9.049625300000001,
            51.3262806
         ],
         [
            9.0495628,
            51.3261244
         ],
         [
            9.0495316,
            51.3259341
         ],
         [
            9.0495471,
            51.3257127
         ],
         [
            9.0496053,
            51.3255584
         ]
      ]
   ]
}

当我把它贴在这里似乎没问题:http: //geojsonlint.com/

也许mongo db不喜欢一个点被使用两次

4

2 回答 2

3

多边形是自相交的: 在此处输入图像描述

MongoDB 禁止此类多边形。

于 2014-06-25T20:09:07.927 回答
1

我要做的第一件事是在http://geojsonlint.com/检查你的多边形。如果它没有通过,那么您知道您的数据点有问题(这在以前曾导致许多人出现此错误)。

如果它确实通过了,那么我会检查最近报告并提交给 MongoDB 的这个错误:https ://jira.mongodb.org/browse/SERVER-13735 。基本上,一个有效的 MultiPolygon 会导致 MongoDB 2.6.X 上的 2dsphere 索引出错。其他人报告了类似的问题,所以我敢打赌,这是一个错误,或者是一些未记录的限制。

我会在 JIRA 上投票赞成这个问题并将你的声音添加到评论中 - 让 MongoDB 知道这个错误存在并且影响他们的人越多,它得到修复的速度就越快。

于 2014-06-25T01:53:19.413 回答