# 3.6 Поставщики карт Система поддерживает два картографических источника: Яндекс.Карты и Google Maps. Соответствующие модули реализованы в файлах `yandex_map.py` и `google_map.py`. \section{Яндекс.Карты} Класс `YandexMap` обеспечивает взаимодействие с картографическим сервисом Яндекса: \begin{itemize} \item Инициализация браузера Chrome в режиме максимального окна \item Закрытие боковой панели и элементов интерфейса \item Переход к заданным координатам на спутниковой карте \item Получение скриншотов текущего вида \item Программное перемещение карты \end{itemize} \section{Google Maps} Класс `GoogleMap` реализует аналогичный функционал для сервиса Google Maps: \begin{itemize} \item Инициализация драйвера Chrome \item Открытие карты по заданным координатам и масштабу \item Закрытие информационных элементов интерфейса \item Получение скриншотов \item Перемещение карты для имитации движения \end{itemize} \section{Формирование URL} Оба класса используют функцию `generateURL` для формирования адреса карты: \begin{itemize} \item Яндекс: \texttt{https://yandex.ru/maps/.../?l=sat\&ll=lat,lon\&z=zoom} \item Google: \texttt{https://www.google.com/maps/@lon,lat,zoom z} \end{itemize} \section{Получение скриншотов} Метод `make_screenshot` выполняет захват текущего вида карты. Для этого: \begin{enumerate} \item Выполняется JavaScript-запрос для скрытия динамических элементов \item С помощью Pillow формируется изображение из видимой области браузера \item Изображение возвращается в формате PIL.Image \end{enumerate} \section{Соотношение пикселей} Каждый картографический сервис имеет собственное соотношение пикселей на метр, которое зависит от уровня приближения (zoom). Эти коэффициенты определяются константами в файле `constants.py`.