0
我有一個來自歐洲的地理數據(lng,lat)。 我試圖做一個地理空間查詢來獲取一個圓內的所有元素。
所以,我創建了一個GeoJSON字段和一個2dsphere索引。 這看起來像:
{
"_id" : ObjectId("56c3484612aeb853a83ec336"),
"defaultLabel" : "Zoo de Mulhouse",
"weight" : NumberInt(1),
"country" : "FR",
"loc" : {
"type" : "Point",
"coordinates" : [
47.731673,
7.347819
]
}
}
和db.myCollection.createIndex({"loc":"2dsphere"});
到目前爲止,一切都很好。 但後來我嘗試了一些查詢來檢查。 我從距離數據約1,12公里(1120米)處得到一點,並做了一個半徑爲1200米的請求。
db.poi.find({loc:
{$geoWithin:
{$centerSphere:[
[47.728593,7.333486],
1200/6378100] // radius of earth ~6378.1Km
}
}
})
我沒有結果。 有了同樣的要求,我必須把約1650米才能得到結果。顯然,這是不可接受的。
那麼,我做錯了什麼?