2013-07-29 2 views
0
db.restaurant.ensureIndex({'deliver_area': '2dsphere'}) 
db.restaurant.insert({'deliver_area':{type: 'Polygon', coordinates:[[[0,0], [0,1], [1,0], [1,1], [0, 0]]]}}) 

повышения возб:MongoDB Ошибка: наружная оболочка многоугольника недействительна?

Внешней оболочка полигона недействительна: {типа: "Многоугольник", координаты: [[[0,0, 0,0], [0,0, 1,0], [1,0, 0,0], [1,0 , 1.0], [0.0, 0.0]]]}

Почему полигон недействителен?

ответ

3

Это само пересекающей многоугольник:

2  4 
    |\ /| 
    | \/| 
    | \/ | 
    | /\ | 
    |/\ | 
    |/ \| 
1/5  3 

Вы хотите:

{ 
    type: "Polygon", 
    coordinates: [ [ 
     [ 0.0, 0.0 ], 
     [ 0.0, 1.0 ], 
     [ 1.0, 1.0 ], 
     [ 1.0, 0.0 ], 
     [ 0.0, 0.0 ] 
    ] ] 
} 

Что:

2------3 
    |  | 
    |  | 
    |  | 
    |  | 
    |  | 
    |  | 
1/5-----4 
+0

Привет, Дерик. Спасибо за Ваш ответ. У меня есть еще одна проблема о геопространственном индексе mongodb [link] (http://stackoverflow.com/questions/18032023/mongodb-2-4-2dsphere-queries-very-slow-using-geointersects) – Tallmad

Смежные вопросы