prettymaps README

The project's README from github.com/marceloprates/prettymaps. As one markdown file: README.md.

prettymaps

A minimal Python library to draw customized maps from OpenStreetMap created using the osmnx, matplotlib, shapely and vsketch packages.

Docs PyPI Python License

This work is licensed under a GNU Affero General Public License v3.0 (you can make commercial use, distribute and modify this project, but must disclose the source code with the license and copyright notice)

Note about crediting and NFTs:

Buy Me a Coffee at ko-fi.com

As seen on Hacker News:

prettymaps subreddit

Tutorial (marimo) · Google Colaboratory Demo

Installation

Install locally:

Install prettymaps with:

pip install prettymaps

Install on Google Colaboratory:

Install prettymaps with:

!pip install -e "git+https://github.com/marceloprates/prettymaps#egg=prettymaps"

Then restart the runtime (Runtime -> Restart Runtime) before importing prettymaps

Run front-end

After prettymaps is installed, you can run the front-end (streamlit) application from the prettymaps repository using:

streamlit run app.py

Tutorial

The full tutorial is at docs/tutorial.md — a markdown walkthrough with rendered images, the [Plot] dataclass fields, the layers/style parameters, presets, multiplot, hillshade, and keypoints.

Heerhugowaard sample

Quick start:

import prettymaps

plot = prettymaps.plot('Stad van de Zon, Heerhugowaard, Netherlands')
Resource Where to find it
Full tutorial (markdown + images) docs/tutorial.md
Interactive marimo notebook (runnable) notebooks/tutorial.py
Open in Google Colab Open in Colab
Streamlit front-end streamlit run app.py

Run the tutorial locally (marimo)

# Install marimo (already in requirements.txt)
pip install marimo

# Open the notebook in your browser
marimo edit notebooks/tutorial.py

Customizing parameters

The most important prettymaps.plot() parameters are:

plot is a dataclass with geodataframes (per-layer GeoDataFrames), fig, and ax.

plot = prettymaps.plot(
    'Praça Ferreira do Amaral, Macau',
    circle=True,
    radius=1100,
    layers={
        "water": {"tags": {"natural": ["water", "bay"]}},
        "building": {"tags": {"building": True}},
    },
    style={
        "water": {"fc": "#a1e3ff", "ec": "#2F3737"},
        "building": {"palette": ["#FFC857", "#E9724C", "#C5283D"]},
    },
)

Macau, custom parameters

See docs/tutorial.md for the full set of examples (Macau, Bom Fim, mosaic, Barcelona plotter, Tijuca, multiplot, hillshade, Garopaba keypoints).

prettymaps (marceloprates/prettymaps)

Searching Database…

Что это такое?prettymaps — это библиотека на Python, которая рисует стилизованные, художественные карты на основе данных OpenStreetMap. Она объединяет osmnx, matplotlib, shapely и vsketch, чтобы отрисовать улицы, здания, водоёмы и другие объекты в виде фигуры с пользовательским оформлением.
Это просто библиотека или есть и приложение?В основном это библиотека на Python, которой вы управляете через prettymaps.plot(). Но в репозитории также есть необязательный фронтенд на Streamlit (app.py), который можно запустить локально для работы через графический интерфейс.
Как мне установить и нарисовать первую карту?Установите библиотеку локально через pip или в Google Colaboratory с последующим перезапуском среды выполнения. Затем вызовите prettymaps.plot(), указав layers, style и location. Учебный блокнот marimo и демо в Colab проведут вас через весь процесс.
Что лежит в её основе?Она построена на osmnx для загрузки данных OpenStreetMap, matplotlib для отрисовки, shapely для геометрии и vsketch для рисования в стиле эскиза. Нужна только среда Python.
Есть ли в лицензии что-то необычное, о чём мне стоит знать?Это лицензия AGPL-3.0: коммерческое использование, распространение и модификация разрешены, но нужно раскрывать исходный код и сохранять уведомление об авторстве. Кроме того, автор прямо запрещает использовать результаты prettymaps для выпуска и продажи NFT из-за прошлых злоупотреблений со стороны других проектов.
Что я могу настраивать при рисовании карты?Вы контролируете слои (какие объекты OSM загружать), стиль (оформление matplotlib для каждого слоя), пресеты (JSON-конфиги вроде 'default', 'minimal', 'macao', 'tijuca') и форму границы через параметры circle, radius и dilate.
Где я могу попробовать без установки?Есть демо-блокнот в Google Colaboratory, который можно открыть и запустить прямо в браузере, без локальной настройки.
Могу ли я посмотреть готовые примеры, прежде чем разбираться?docs/tutorial.md проводит по готовым примерам карт: Macau, Bom Fim, Barcelona plotter, Tijuca, multiplot, hillshade и keypoints. Изображения приведены рядом с кодом.
Size
557 MB
Stars
14.3K
Age
5y
Commits · 90 Days