#javascript #python #mysql #html #geolocation
#javascript #python #mysql #HTML #геолокация
Вопрос:
У меня есть база данных о местоположениях, где двумя полями являются долгота и широта. Когда пользователь достигает индексной страницы, я хотел бы получить их местоположение, а затем получить каждую точку внутри базы данных в определенном радиусе расстояния от пользователя.
До сих пор я думал, что мог бы попытаться измерить расстояние с каждой точкой в базе данных, но это может занять некоторое время, если у меня много записей.
Я использую Python для создания своего приложения, но я использую Javascript и Google Maps API для получения местоположения.
Кто-нибудь знает, что я должен использовать для этого?
Спасибо за вашу помощь!
Комментарии:
1. используйте базу данных со встроенными функциями гео, такими как MongoDB
2. @dandavis У вас есть ссылка на документацию какой-либо из таких баз данных? Я просмотрел MongoDB, но не могу найти ничего, что имеет отношение к моей текущей проблеме. Спасибо!
Ответ №1:
Ваше расстояние будет преобразовано в некоторый угол, который вы могли бы добавить и вычесть к вашей долготе и широте. Затем вы могли бы отфильтровать свою базу данных на основе этого диапазона, т. Е. найти элементы, где долгота равна — углу и т.д. Я ожидал бы, что это должно быть достаточно быстро.
Обратите внимание, что если у вас есть [lat_min, lat_max] и [long_min, long_max], вы рисуете прямоугольник, а не круг, который может вас устраивать, а может и не устраивать. Если вам нужна большая точность, вы могли бы затем начать вычислять фактическое расстояние этого меньшего подмножества, что все равно должно быть быстрее, чем вычисление расстояния для каждой точки в базе данных.
Редактировать
@dandavis заставил меня поискать… MySQL, а также MongoDB, похоже, поддерживают геопространственные запросы, что довольно круто! Вот блог о функциях MySQL, который включает в себя ссылку на сайт разработчика. Документы Mongodb по геопространственным запросам можно найти здесь.
Комментарии:
1. Ссылка на блог — это именно то, что я ищу, хотя я действительно не понимаю, как это реализовать в проекте django. Но я думаю, это другой вопрос. Спасибо за вашу помощь!
Ответ №2:
Если вы ищете запросы на основе местоположения в реляционных базах данных, postgresql является более зрелым по сравнению с mysql.
Массовые запросы Mongodb действительно хороши, если вам удобен NoSQL.
Ссылки:
Комментарии:
1. Я никогда не использовал NoSQL, поэтому выбрал MySQL, хотя у меня ограниченный опыт работы с ним. Спасибо за вашу помощь!