2012-01-10 94 views
2

我已經設置了一個精美的地理空間查詢,但是我希望得到每個結果的距離。從Near查詢距離「dis」結果查詢

鑑於查詢:

var query = Query.Near("Location", longitude, latitude); 
var places = mongoDb.GetCollection<Place>("places").Find(near); 

我怎麼檢索每個元素在「地方」的距離?

回答

3

我不知道你是否可以從mongo得到距離,但是我過去所做的只是使用Haversine公式來獲得數據後的距離。

你可以找到,我用 here

編輯實施:對不起,你可以得到的距離蒙戈回來,但不與Query.Near()。您需要使用集合上的GeoNear函數。

mongoDb.GetCollection<Place>("places").GeoNear(Query.Null, latitude, longitude, maxDistance); 

這將返回一個GeoNearResult<Place>這將有一個命中屬性,它是IEnumurable<Hit>將包含一個距離屬性和文檔屬性將包含你的地方對象。

+0

你是一個拯救生命的人,就像一個魅力。儘管現在我需要去查找什麼測量,也許是弧度? – 2012-01-13 21:00:17

+0

是的,它可能會以弧度表示,在MongoDB文檔中他們說它的弧度大概是69英里。但那只是在赤道。你可以在這裏找到更多的信息http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-TheEarthisRoundbutMapsareFlat – 2012-01-13 23:52:33