Skip to main content

Mapyta

One import. A few method calls. A full interactive map.

PyPI version Supported Python versions Tests Documentation License: MIT


Documentation: https://egarciamendez.github.io/mapyta

Source Code: https://github.com/egarciamendez/mapyta


Build OpenStreetMap visualizations with hover tooltips, choropleths, heatmaps, and export to HTML or PNG all from Shapely geometries.

Perfect for geotechnical site plans, infrastructure overviews, or any spatial data visualization where you want more control than static images but don't need the full power of a GIS.

Mapyta is standing on the shoulders of giants like Folium and Leaflet, but it's designed to be more intuitive and Pythonic for users who are already familiar with Shapely and GeoPandas. It's not trying to replace a full GIS, but rather to provide a simple way to create interactive maps without needing to learn a whole new set of tools.

A mapyta map of Amsterdam with markers, areas, and a walking route

👉 See the Showcase — every feature as a live, interactive map on a single page.


Key features


Installation

Mapyta requires Python 3.12+.

uv add mapyta
# or
pip install mapyta

Exporting maps to PNG/SVG images additionally needs a headless browser (Chrome, Chromium, or Edge) and the export extra:

uv add "mapyta[export]"
# or
pip install "mapyta[export]"

Quickstart

Create your first map:

from shapely.geometry import Point
from mapyta import Map

m = Map(title="Hello Utrecht")
m.add_point(
    point=Point(5.121311, 52.090648),
    tooltip="**Utrecht**",
    popup="**Utrecht**\nCity in the Netherlands\nPopulation: ~350k",
    caption="UTR",
)
m.to_html("hello.html")

Open hello.html in any browser and you're done.

Want the map as an image instead? Get raw PNG bytes or a buffer, no file needed:

png_bytes = m.to_image()   # bytes, for an HTTP response or an email attachment
buf = m.to_bytesio()       # io.BytesIO, e.g. for Flask/FastAPI/Django

See the Showcase for choropleths, heatmaps, clusters, drawing tools, and more — each as a live, interactive map — or work through the Tutorial one concept at a time.

Contributing

Issues and pull requests are welcome. To set up a local development environment:

git clone https://github.com/egarciamendez/mapyta
cd mapyta
uv sync --all-extras --all-groups
uv run pytest

Please open an issue to discuss substantial changes before starting.

License

This project is licensed under the terms of the MIT license.

Metadata

Release files for mapyta 1.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mapyta 1.1.0
File Size Uploaded
mapyta-1.1.0.tar.gz 3.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for mapyta 1.1.0
File Interpreter ABI Platform
mapyta-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 3.2 MB

Release files / mapyta-1.1.0.tar.gz

Download URL mapyta-1.1.0.tar.gz
Size 3.2 MB
Tags Source
SHA-256 checksum
How to use checksums
54207675b947daa9a827d0315f98e2e9cefb49788f7f8d350be194d5695d6812
BLAKE2b-256 checksum
How to use checksums
8b0b79f585fa06e7a97cd38b5c21941b91f11e98ec5638a9369cfb8451067247
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / mapyta-1.1.0-py3-none-any.whl

Download URL mapyta-1.1.0-py3-none-any.whl
Size 65.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a46e42d877feafe3641b191f078387208b4cfdfb5fe7164eaeb14a7629e64fd7
BLAKE2b-256 checksum
How to use checksums
701fad24ab225d52ef510bf8faf13ea3c72e43c2612c9dca0e069d4c657b6df4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

1.1.1

2 release files

This release

1.1.0 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page