1

Я планирую написать веб-службу RESTful с Node.js-питанием, которую я буду использовать для мобильного приложения, которое предоставляет какие-то функции, основанные на местоположении. Самый простой случай использования будет выглядеть примерно так:Оптимизация запросов геоданных

  • пользователь может создать ресурс, отправив запрос на веб-службы, содержащее имя ресурса и текущее местоположение пользователя (широта и долгота)
  • веб-служба будет хранить метаданные об этом ресурсе внутренне в каком-то коллекциях
  • пользователь может запросить веб-сервис для получения списка ресурсов в пределах 5 км от его текущего местоположения

Одна из первых проблем, которые пришли на мой взгляд, был способность. Предположим, что в какой-то момент в будущем сервер будет хранить метаданные за 1 миллион ресурсов. Когда пользователь будет запрашивать близлежащие результаты, цикл на 1 миллион записей для вычисления расстояния будет длиться вечно.

Есть много услуг, которые имеют тот же поток, поэтому я думал, что реализация чего-то подобного не займет у меня много времени. Возможно, я ошибся.

Я сейчас два дня исследую проверенные методы и алгоритмы. К настоящему времени я прочитал все, что мог бы рассказать о QuadTrees, Geohases, базах данных с поддержкой пространственной индексации, формулах и т. Д. Тем не менее, я все еще не могу понять, как все будет работать.

Я надеялся, что, возможно, кто-то, кто работал над чем-то подобным, может поделиться своим пониманием того, какой подход может быть наиболее подходящим, учитывая этот прецедент и технологии, которые я планирую использовать. Кроме того, краткое описание того, как это может быть реализовано, мне очень помогло!

ответ

0

Для тех, кто также ищет дополнительную информацию по этой теме из любопытства, мой ответ может не обеспечить достаточного разрешения. Тем не менее, некоторые ответы в here могут помочь вам понять, как можно добиться поиска близости с помощью Geohash.

Мой подход, сделав небольшое исследование на Redis, не будет чрезмерно затруднять работу и просто использовать инструменты, которые уже есть. Он имеет встроенную поддержку пространственной индексации и, скорее всего, удовлетворит все мои требования к устойчивости для этого проекта.

Видимо MongoDB также поставляется со встроенной поддержкой геоданных. На самом деле даже такие СУБД, как MySQL или SQLite, обладают такими возможностями.

Смежные вопросы