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.1

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.1
File Size Uploaded
mapyta-1.1.1.tar.gz 3.2 MB Details

Built distribution (wheel)

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

Total release size: 3.2 MB

Release files / mapyta-1.1.1.tar.gz

Download URL mapyta-1.1.1.tar.gz
Size 3.2 MB
Tags Source
SHA-256 checksum
How to use checksums
532d0297d8fbac326a28011ea7e53e1b038681e184bd53963319f2dc40279b37
BLAKE2b-256 checksum
How to use checksums
815ee4d5b796a840733df8f60234c77aee91f38beb55113231d6dc520d0f45c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.8 {"installer":{"name":"uv","version":"0.12.8","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.1-py3-none-any.whl

Download URL mapyta-1.1.1-py3-none-any.whl
Size 66.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6c822573f32f9c1d83b4101fdae36d039ca6983ad562b3dcd87067b368d256f9
BLAKE2b-256 checksum
How to use checksums
66c703d2bf595d6363b1bff660f2937f11437054291aabcd0b2006962296d4c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.8 {"installer":{"name":"uv","version":"0.12.8","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

This release

1.1.1 This release

2 release files

1.1.0

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