MongoDB географическое расстояние / радиус до полезных единиц - PullRequest
5 голосов
/ 12 августа 2010

Я использую геопространственные запросы MongoDB - $near, geoNear и т. Д. - и я хотел бы узнать, как включить dis результат команды geoNear, а также radius аргумент для $within запросов в / из читаемых единиц, таких как мили или километры.

Ответы [ 3 ]

20 голосов
/ 16 марта 2011

Используя команду geoNear для значения dis в километрах, добавьте параметр:

distanceMultiplier: (6371 * Math::PI / 180.0)
4 голосов
/ 14 августа 2010

если ваши данные представлены в географических координатах (т. Е. 30,47921 N -121,45724 Вт), то вам необходимо преобразовать базовую проекцию в нужные вам единицы (выбрать проекцию, сохраняющую расстояние) или преобразовать расстояние в координатах во что-токак мили.

Используйте формулу Хаверсайна для расчетов http://www.movable -type.co.uk / scripts / latlong.html

1 голос
/ 22 июня 2014

Обратите внимание, что если вы используете Mongodb версии 2.6.0, существует ошибка, которая всегда позволяет новому поведению сферических систем координат возвращать расстояние в метрах (на основе координат WGS84).

В документации говорится, что указание параметра $near в устаревших координатах вместо GeoJSON должно по-прежнему возвращать радианы. Это было исправлено в более новых версиях.

Сообщение об ошибке: Ошибка # 13540

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...