Для лучшего отображения всех аутпутов и правильной работы интерактивной карты в конце, можно открыть Jupyter Notebook по ссылке: https://nbviewer.org/github/Gundeundefined1/GeocodingYandex-FoliumMapExample/blob/main/Direct%20geocoding%20with%20Yandex%20geocoder.ipynb
Часть 1. Прямой геокодинг (geopy.geocoders Yandex) адресов из базы, подготовка датасета для дальнейшей визуализации на карте.
- geopy - основная билбиотека, которая будет использоваться в проекте для прямого геокодирования с помощью API Yandex
- Так как прямое геокодирование большого количества адресов достаточно долгая процедура, в качестве теста, добавим оповещение в Telegramm (это позволит в цикле каждые, например, 10 000 адресов, отправлять сообщение с статусом работы)
- Загрузка первичной базы data_test.csv с адресами 500 строк (Публичный источник: Адресный справочник Челябинска - https://ts.domspravka.com/adres/chelyabinsk/, дополнительно поля name и birth изменены)
- Подключение Геокодер API Яндекс.Карт и проверка работы прямого геокодирования Яндекс API (https://yandex.ru/dev/maps/geocoder/)
- Применение геокодера Яндекс для получения координат адресов из загруженного списка
- Заполнение полей конкретными числовыми значениями координат (разделение столбца 'point' на столбцы 'latitude', 'longitude','altitude')
- folium - основная билбиотека, которая будет использоваться в проекте для создания интерактивных карт
- Создание функции для формирования HTML таблиц с значениями из датафрейма (при клике по значку на карте откроется данная таблица с детальной информацией. Формат приведен для примера, реально применение всей палитры возможностей языка HTML)
- Создание функций для динмаической окраски значков на карте по заданным условиям (дата рождения и есть ли e-mail)
- Преобразование данных датафрейма в geojson для последующего использования в качестве входных данных построения карты
- Создание самого объекта map библиотеки folium, инициализация начальных парметров (приближение/стиль карт) и фильтров для поиска по ключевым значениям
- Отрисовываем на карте все элементы из geojson, в соответствии с заданными параметрами (используя функции color_change и back_color_change для цветовой индикации)
- Финальная визуализация карты
Из простой базы с информацией по клиентам, содержащей только его адрес в качестве ориентира (возможно в различных форматах его написания, в т.ч. с ошибками и опечатками) на выходе получится интерактивная карта с кластеризацией отметок в группы, цветовой индикацие по желаемому параметру, дополнительными плашками с информацией по клику на значок (рис.1) и полями с поиском по конкретным значениям (рис.2).