Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

Использование команды Geonear для значения DIS в километрах добавить параметр:

distanceMultiplier: (6371 * Math::PI / 180.0)

ПРИМЕЧАНИЕ Если вы используете Mongodb версии 2.6.0. Существует ошибка, которая всегда включает новое поведение для систем сферических координат для возврата для возврата расстояния в метрах (на основе координат WGS84).

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

Отчет об ошибке: BUG # 13540.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top