当我尝试在 mongoDB 中创建 2dsphere 索引时,我收到此错误消息:
> db.mahalle.createIndex({geometry:"2dsphere"})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"errmsg" : "exception: Can't extract geo keys: { _id: ObjectId('55b4e025a6ef7e9c50ae79cd'), type: \"Feature\", p
roperties: { ADI: \"Çelemli\", ILADI: \"Adana\", ILCEADI: \"Yüre?ir\", BUCAKADI: \"Merkez\", KOYADI: \"Çelemli\", ILKOD:
1 }, geometry: { type: \"Polygon\", coordinates: [ [ [ 35.624498, 36.849395 ], [ 35.649357, 36.876937 ], [ 35.657724, 3
6.879572 ], [ 35.663334, 36.873718 ], [ 35.668063, 36.875857 ], [ 35.671228, 36.87511 ], [ 35.676613, 36.872193 ], [ 35.
676789, 36.86627 ], [ 35.681188, 36.865075 ], [ 35.683002, 36.864582 ], [ 35.685911, 36.858289 ], [ 35.690937, 36.856315
], [ 35.698809, 36.857084 ], [ 35.70811, 36.84059 ], [ 35.703934, 36.838901 ], [ 35.669599, 36.82501 ], [ 35.65748, 36.
820107 ], [ 35.63049, 36.809188 ], [ 35.639549, 36.812853 ], [ 35.625102, 36.834434 ], [ 35.624498, 36.849395 ] ] ] } }
Loop is not valid: [ [ 35.624498, 36.849395 ], [ 35.649357, 36.876937 ], [ 35.657724, 36.879572 ], [ 35.663334, 36.8737
18 ], [ 35.668063, 36.875857 ], [ 35.671228, 36.87511 ], [ 35.676613, 36.872193 ], [ 35.676789, 36.86627 ], [ 35.681188,
36.865075 ], [ 35.683002, 36.864582 ], [ 35.685911, 36.858289 ], [ 35.690937, 36.856315 ], [ 35.698809, 36.857084 ], [
35.70811, 36.84059 ], [ 35.703934, 36.838901 ], [ 35.669599, 36.82501 ], [ 35.65748, 36.820107 ], [ 35.63049, 36.809188
], [ 35.639549, 36.812853 ], [ 35.625102, 36.834434 ], [ 35.624498, 36.849395 ] ] Edges 16 and 18 cross. Edge locations
in degrees: [35.6574800, 36.8201070]-[35.6304900, 36.8091880] and [35.6395490, 36.8128530]-[35.6251020, 36.8344340]",
"code" : 16755,
"ok" : 0
}
>
收集数据如下所示:
> db.mahalle.findOne()
{
"_id" : ObjectId("55b4e025a6ef7e9c50ae792f"),
"type" : "Feature",
"properties" : {
"KOYADI" : "Ömerli",
"ILKOD" : 1,
"ADI" : "Ömerli",
"ILADI" : "Adana",
"ILCEADI" : "Pozanty",
"BUCAKADI" : "Merkez"
},
"geometry" : {
"type" : "Polygon",
"coordinates" : [
[
[
34.840791,
37.516416
],
[
34.843066,
37.525614
],
[
34.847284,
37.545556
],
[
34.849961,
37.602446
],
[
34.892618,
37.570159
],
[
34.8991,
37.559108
],
[
34.902859,
37.545415
],
[
34.887897,
37.508253
],
[
34.843046,
37.489936
],
[
34.842049,
37.501638
],
[
34.840791,
37.516416
]
]
]
}
}
我必须创建 2dsphere 索引才能在多边形区域中搜索坐标。我怎样才能解决这个问题?谢谢