Вывод объявлений на расстоянии от населенного пункта

Приветствую всех.

Пробую себя в создании компонента для своего небольшого проекта. Задача состоит в том, чтобы фильтровать объявления на указанном расстоянии от выбранного населенного пункта. Мое видение модели БД такое:
  • Таблица стран
  • Таблица населенных пунктов
  • Две или более таблиц промежуточных административных делений (по аналогии с Google Maps Api и таблицей административного деления стран)
А теперь к подсчету, это для меня пока самое сложное. Выходит, нужна отдельная таблица для расстояний между населенными пунктами (НП), а в масштабах страны — это немаленькая такая табличка выходит. Можно, конечно, ограничиться, например, 50 км и обвязать друг с другом на этих расстояниях НП, но это, я так прикидываю, нехилая такая работа. Можно, конечно, использовать Google Maps, даже сохраняя запросы в свою БД, чтобы впоследствии грузить от себя.

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

Всем хорошего дня/вечера :)
Виктор Долгий
15 февраля 2018, 17:12
modx.pro
1
1 167
0

Комментарии: 4

Roman
16 февраля 2018, 12:13
0
А почему бы не сделать взаимосвязь: населенный пункт — Геопозиция. Расстояние высчитывать пробегаясь по всем населенным пунктам, и если расстояние удовлетворяет условию — выводить объявление. Чтобы исключить огромный перебор данных — привязать каждый населенный пункт к своему региону.
    Виктор Долгий
    16 февраля 2018, 19:04
    0
    Сейчас как раз разбираюсь, как будет что-то — поделюсь :)
    but1head
    16 февраля 2018, 19:29
    0
    Таблица с странами
    Id / name

    Таблица с городами
    Id / country_id / lat,lng

    При заходе юзера определяется / выбирается его город, и по координатам высчитывается расстояние (в гугле очень много примеров).

    P.s на mongo есть очень крутая штука для вывода объявлений основываясь на расстоянии от пользователя, возможно есть некий аналог под mysql
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    4