В открытом доступе появилась библиотека prettymaps, превращающая любой район в постер
Разработчик Марсело Пратес выложил в открытый доступ библиотеку prettymaps, которая превращает участок карты в оформленный постер. Достаточно указать название места или координаты, и код сам заберёт геометрию из OpenStreetMap и отрисует дороги, здания, парки и водоёмы в выбранной палитре.
Библиотека написана на Python и построена на osmnx, matplotlib и shapely. Установка сводится к одной команде pip install prettymaps, а минимальная требуемая версия языка – 3.12. Для тех, кто не хочет работать с кодом, в репозитории лежит фронтенд на Streamlit, запускаемый командой streamlit run app.py.
Отрисовка строится вокруг двух словарей. Параметр layers описывает, какие слои OpenStreetMap забрать, например здания по тегу building или воду по тегу natural. Параметр style задаёт для каждого слоя цвет заливки, обводки и палитру matplotlib.
Возможности версии 1.4:
автоматическая отрисовка морской геометрии
поддержка отмывки рельефа
добавление ключевых точек на карту
оптимизация с сокращением числа запросов к Overpass API
готовые пресеты, включая default, minimal, macao и tijuca
Форма области настраивается, так что карту можно вписать в круг или прямоугольник. Функция multiplot вместе с классом Subplot собирает несколько районов на одном холсте. Результат возвращается как датакласс с геодатафреймами по каждому слою плюс объекты fig и ax из matplotlib, к которым можно добавлять подписи и менять фон.
Коммерческое использование разрешено при раскрытии исходного кода и сохранении уведомления об авторских правах. Пратес просит не удалять с изображений подпись с указанием репозитория и OpenStreetMap, что требует лицензия картографического сервиса.
Отдельным пунктом в описании идёт запрет на использование библиотеки для продажи NFT. Пратес называет NFT схемой отмывания денег с вредом для экологии и указывает, что две команды, AeternaCivitas и geoartnft, продавали работы на его коде и отказались указывать источник.
- Японский разработчик сделал интерактивную карту из 1383 живых камер на японских островах
- Художник изобразил Китай в стиле толкиновских карт Средиземья – получилось так хорошо, что он продает принты