Рассчитать границу из набора географических местоположений

0

У меня есть список широт и долгот.

Они приобретаются из базы данных обратного почтового индекса и находятся в определенном городе (Дейтон, Огайо).

39.721286   -84.133892
39.760000   -84.195900
39.757800   -84.177700
39.845339   -84.123287
...

У меня есть база данных свойств в mongodb, и каждое свойство имеет определенное местоположение (lat/lng), когда пользователь вводит "Дейтон, Огайо", я захватываю Дейтона все почтовые индексы с соответствующими гео-координатами, и что я хочу сделать создать границу и добавить 5 миль к ней и выполнить поиск в базе данных свойств, которая охватывает lat/lng дневных почтовых индексов.

Какой лучший способ создать границу (квадрат/круг) для поиска базы данных в пределах диапазона, используя этот список корней?

Теги:
geolocation
geospatial
geo

2 ответа

0
Лучший ответ

Найденное решение, по-видимому, наилучшим подходом является вычисление границы с конца приложения с использованием алгоритма "выпуклого корпуса" и последующего запроса.

0

Вы можете использовать оператор $ near в MongoDB.

Например:

db.cities.find( { loc : { $near : { $geometry : { type : "Point" , coordinates : [ lon, lat] }, $maxDistance : 1/111.12 } } } )

Вышеуказанный запрос искажает все около конкретных координат в радиусе 1 км (см. $ MaxDistance).

Для получения дополнительной информации о операторе $ near см. Руководство MongoDB.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню