Индекс Mongodb Sphere отклоняет мой объект

Привет, у меня есть COllection с индексом 2d сферы

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

i, когда я пытаюсь вставить определенный объект, я получаю сообщение об ошибке:

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 не нравится, когда точка используется дважды

2
задан wutzebaer 24 июня '14 в 1:32
источник поделиться
2 ответов

Первое, что я хотел бы сделать, это проверить ваш полигон на http://geojsonlint.com/. Если он не пройдет, вы знаете, что у вас есть проблема с вашими точками данных (что вызвало эту ошибку для многих людей ранее).

Если он пройдет, я проверил бы эту ошибку, которая была недавно сообщена и отправлена ​​MongoDB: https://jira.mongodb.org/browse/SERVER-13735. В принципе допустимый MultiPolygon вызывает ошибку с индексом 2dsphere на MongoDB 2.6.X. Другие сообщали о подобных проблемах, поэтому моя ставка заключается в том, что это ошибка или некоторые недокументированные ограничения.

Я проголосую за вопрос JIRA и добавлю свой голос к комментариям - чем больше людей позволят MongoDB знать, что эта ошибка существует, а влияет на них, тем быстрее она будет исправлена.

1
ответ дан John Petrone 25 июня '14 в 4:53
источник поделиться

Многоугольник самопересекающийся: enter image description here

MongoDB запрещает такие полигоны.

3
ответ дан A. Jesse Jiryu Davis 25 июня '14 в 23:09
источник поделиться

Другие вопросы по меткам