2
我已經設置了一個精美的地理空間查詢,但是我希望得到每個結果的距離。從Near查詢距離「dis」結果查詢
鑑於查詢:
var query = Query.Near("Location", longitude, latitude);
var places = mongoDb.GetCollection<Place>("places").Find(near);
我怎麼檢索每個元素在「地方」的距離?
我已經設置了一個精美的地理空間查詢,但是我希望得到每個結果的距離。從Near查詢距離「dis」結果查詢
鑑於查詢:
var query = Query.Near("Location", longitude, latitude);
var places = mongoDb.GetCollection<Place>("places").Find(near);
我怎麼檢索每個元素在「地方」的距離?
我不知道你是否可以從mongo得到距離,但是我過去所做的只是使用Haversine公式來獲得數據後的距離。
你可以找到,我用 here
編輯實施:對不起,你可以得到的距離蒙戈回來,但不與Query.Near()。您需要使用集合上的GeoNear函數。
mongoDb.GetCollection<Place>("places").GeoNear(Query.Null, latitude, longitude, maxDistance);
這將返回一個GeoNearResult<Place>
這將有一個命中屬性,它是IEnumurable<Hit>
將包含一個距離屬性和文檔屬性將包含你的地方對象。
你是一個拯救生命的人,就像一個魅力。儘管現在我需要去查找什麼測量,也許是弧度? – 2012-01-13 21:00:17
是的,它可能會以弧度表示,在MongoDB文檔中他們說它的弧度大概是69英里。但那只是在赤道。你可以在這裏找到更多的信息http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-TheEarthisRoundbutMapsareFlat – 2012-01-13 23:52:33