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/

ポイントが2回使用されると、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 に答える