У меня вопрос по поводу Laravel 5.2 и попытке поиска пользователей по расстоянию.
Пока это мой макет базы данных.
users — таблица пользователей не содержит личной информации.
users_info — эта таблица содержит информацию о пользователях (почтовый индекс и адрес) и подключается с помощью идентичных идентификаторов (user_id > id
)
У меня также есть таблица с информацией об индексе postcodes_geo, которая имеет поля
id int(11)
postcode varchar(5)
suburb varchar(100)
state varchar(4)
latitude decimal(6,3)
longitude decimal(6,3)
Теперь я так растерялся, как бы я искал пользователя по расстоянию от почтового индекса пользователя, который ищет. Я новичок в PHP, так как я просто разработчик интерфейса.
Кто-нибудь еще настраивал этот тип поиска раньше или мог бы дать мне подсказку?
Вы можете использовать этот пакет: https://github.com/alexpechkarev/google-maps
Используя это, вы можете рассчитать расстояние с почтовым индексом или адресом.
Если вы всегда рассчитываете расстояние относительно фиксированного места, попробуйте также сохранить это расстояние в таблице при создании информации о пользователе.
Теперь, если вам нужно динамически рассчитать расстояние, я бы сначала выбрал всех пользователей в одном и том же пригороде (если вам нужно получить пользователей с наименьшим расстоянием), а затем использовал вышеупомянутый пакет для вычисления расстояния, используя их почтовый индекс или адрес.
Это всего лишь идея. Но это будет работать. Вы можете также дать больше параметров, чтобы получить коллекцию пользователей.
Других решений пока нет …