Об этом проекте

MapToPoster — это инструмент командной строки, который генерирует минималистичные карты-постеры городов по всему миру. По названию города и страны он геокодирует местоположение, загружает данные OpenStreetMap и создаёт PNG высокого разрешения, подходящий для печати или обоев. Как это работает: скрипт определяет координаты через Nominatim, загружает сети улиц и объекты через OSMnx, затем отрисовывает многослойный вывод с помощью matplotlib — фон, вода, парки, дороги, окрашенные и взвешенные по типу шоссе OSM, градиентные переходы и текстовые подписи. Выходные файлы сохраняются в каталог posters/ с именем по городу, теме и временной метке. Ключевые опции включают --city и --country (обязательные), а также --theme, --distance (радиус карты в метрах, по умолчанию 18000), --width/--height в дюймах (по умолчанию 12x16, максимум 20), --latitude/--longitude для переопределения центра, --country-label, --list-themes и --all-themes для отрисовки всех тем сразу. Руководство по разрешению сопоставляет распространённые цели (пост в Instagram, обои для мобильных/HD/4K, печать A4) со значениями в дюймах при 300 DPI. Многоязычная поддержка позволяет отображать названия городов и стран на родных письменностях через --display-city, --display-country и --font-family; шрифты загружаются с Google Fonts и кэшируются локально. Рендерер определяет латинские и нелатинские письменности и соответствующим образом настраивает межбуквенный интервал (разреженные латинские буквы, естественный интервал для японского, арабского, корейского, тайского и других). В каталоге themes/ поставляется семнадцать тем, включая noir, midnight_blue, blueprint, neon_cyberpunk, warm_beige, pastel_dream, japanese_ink, emerald, forest, ocean, terracotta, sunset, autumn, copper_patina, monochrome_blue, gradient_roads и contrast_zones. Пользовательские темы добавляются как JSON-файлы, определяющие цвета фона, текста, воды, парков и каждого класса дорог. Установка поддерживает uv (рекомендуется, с зафиксированными зависимостями) или pip с виртуальным окружением. В README также документированы внутренняя архитектура, ключевые функции, порядок отрисовки, сопоставление шоссе OSM с иерархией дорог, позиционирование типографики, шаблоны расширения для новых слоёв карты или свойств тем, а также советы по производительности, такие как кэширование координат и использование сетей только для автомобилей для более быстрого рендеринга.