Я планирую написать веб-службу RESTful с Node.js-питанием, которую я буду использовать для мобильного приложения, которое предоставляет какие-то функции, основанные на местоположении. Самый простой случай использования будет выглядеть примерно так:Оптимизация запросов геоданных
- пользователь может создать ресурс, отправив запрос на веб-службы, содержащее имя ресурса и текущее местоположение пользователя (широта и долгота)
- веб-служба будет хранить метаданные об этом ресурсе внутренне в каком-то коллекциях
- пользователь может запросить веб-сервис для получения списка ресурсов в пределах 5 км от его текущего местоположения
Одна из первых проблем, которые пришли на мой взгляд, был способность. Предположим, что в какой-то момент в будущем сервер будет хранить метаданные за 1 миллион ресурсов. Когда пользователь будет запрашивать близлежащие результаты, цикл на 1 миллион записей для вычисления расстояния будет длиться вечно.
Есть много услуг, которые имеют тот же поток, поэтому я думал, что реализация чего-то подобного не займет у меня много времени. Возможно, я ошибся.
Я сейчас два дня исследую проверенные методы и алгоритмы. К настоящему времени я прочитал все, что мог бы рассказать о QuadTrees, Geohases, базах данных с поддержкой пространственной индексации, формулах и т. Д. Тем не менее, я все еще не могу понять, как все будет работать.
Я надеялся, что, возможно, кто-то, кто работал над чем-то подобным, может поделиться своим пониманием того, какой подход может быть наиболее подходящим, учитывая этот прецедент и технологии, которые я планирую использовать. Кроме того, краткое описание того, как это может быть реализовано, мне очень помогло!