Получение расстояния "dis" в результате запроса Near - PullRequest
2 голосов
/ 11 января 2012

Я настроил гео-пространственный запрос, который прекрасно работает, однако я ищу расстояние для каждого из результатов.

С учетом запроса:

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

как мне узнать расстояние от каждого элемента в "местах"?

1 Ответ

3 голосов
/ 13 января 2012

Я не знаю, можете ли вы получить расстояние от Монго, но то, что я делал в прошлом, просто использовал формулу Хаверсайна, чтобы получить расстояние после того, как у меня были данные.

Вы можете найтиреализация, которую я использовал здесь

EDIT : Извините, вы можете получить расстояние назад от Mongo, но не с помощью Query.Near ().Вам нужно использовать функцию GeoNear, которая есть в коллекции.

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

Это вернет GeoNearResult<Place>, который будет иметь свойство Hits, равное IEnumurable<Hit>, которое будет содержать свойство Distance и свойство документа, которое будет содержать ваш объект place.

...