• Как выгрузить записи по ближайшим городам определенного радиуса?

    kawabanga
    @kawabanga
    1) использовать яндекс АПИ, чтобы конвертировать адрес в координаты. (геокодер) проходим по бэкенду и конвертируем адреса. потом конвертируем уже при добавлении нового мероприятия. Заметьте, это раньше нарушало лицензионное соглашение яндекса.
    2) Смотрим в сторону POINT. Наблюдаем за Spatial index если данных/пользователей много(mysql 5.7.19+)
    3) читаем доки по гис функциям. ST_Distance_Sphere . В yii2 есть пара библиотек для работы с point.
    4) грубо вычисляем город пользователя и координаты - ip-api.com
    5) точно вычисляем место пользователя, используя гугл мапс и систему определения локации. работает точнее, но заморочек больше.

    По сути, если что-то не получается, можно ограничиться конвертацией адресов в координаты, использовать не радиус, а квадрат вокруг пользователя, пусть даже не точный.
    Ответ написан
    Комментировать
  • Как добавить FOREIGN KEY, если поле может быть NULL?

    Melkij
    @Melkij
    PostgreSQL DBA
    INSERT INTO `city` (`country_id`, `region_id`, `title`) VALUES (109, 0, 'Москва')

    А вот если вы попробуете писать NULL вместо вот этого - то всё получится и именно так FK и работает, допуская использование NULL.
    Ответ написан
    2 комментария