A small, python-based library for creating map images with lines and markers.
Project description
Static Map
A small, python-based library for creating map images with lines and markers.
Example
m = StaticMap(300, 400, 10)
m.add_line(Line(((13.4, 52.5), (2.3, 48.9)), 'blue', 3))
image = await m.render()
image.save('map.png')
This will create a 300px x 400px map with a blue line drawn from Berlin to Paris.
Installation
StaticMap is a small library, all it takes is python and two python packages: Pillow and request. Install staticmap via:
pip install aiostaticmap
Usage
Create a new map instance:
m = StaticMap(width, height, padding_x, padding_y, url_template, tile_size)
| parameter | description |
|---|---|
| width | width of the image in pixels |
| height | height of the image in pixels |
| padding_x | (optional) minimum distance in pixel between map features (lines, markers) and map border |
| padding_y | (optional) minimum distance in pixel between map features (lines, markers) and map border |
| url_template | (optional) the tile server URL for the map base layer, e.g. http://a.tile.osm.org/{z}/{x}/{y}.png |
| tile_size | (optional) tile size in pixel, usually 256 |
Add a line:
line = Line(coordinates, color, width))
m.add_line(line)
| parameter | description |
|---|---|
| coordinate | a sequence of lon/lat pairs |
| color | a color definition Pillow supports |
| width | the stroke width of the line in pixel |
| simplify | whether to simplify coordinates, looks less shaky, default is true |
Add a map circle marker:
marker = CircleMarker(coordinate, color, width))
m.add_marker(marker)
| parameter | description |
|---|---|
| coordinate | a lon/lat pair: e.g. (120.1, 47.3) |
| color | a color definition Pillow supports |
| width | diameter of marker in pixel |
Add a polygon:
polygon = Polygon(coordinates, fill_color, outline_color, simplify)
m.add_polygon(polygon)
| parameter | description |
|---|---|
| coordinate | a lon/lat pair: e.g. [[9.628, 47.144], [9.531, 47.270], [9.468, 47.057], [9.623, 47.050], [9.628, 47.144]] |
| fill_color | a color definition Pillow supports |
| outline_color | a color definition Pillow supports |
| simplify | whether to simplify coordinates, looks less shaky, default is true |
Samples
Show Position on Map
from src import StaticMap, CircleMarker
m = StaticMap(200, 200, url_template='http://a.tile.osm.org/{z}/{x}/{y}.png')
marker_outline = CircleMarker((10, 47), 'white', 18)
marker = CircleMarker((10, 47), '#0036FF', 12)
m.add_marker(marker_outline)
m.add_marker(marker)
image = await m.render(zoom=5)
image.save('marker.png')
Show Ferry Connection
from src import StaticMap, Line
m = StaticMap(200, 200, 80)
coordinates = [[12.422, 45.427], [13.749, 44.885]]
line_outline = Line(coordinates, 'white', 6)
line = Line(coordinates, '#D2322D', 4)
m.add_line(line_outline)
m.add_line(line)
image = await m.render()
image.save('ferry.png')
Show Icon Marker
from src import StaticMap, IconMarker
m = StaticMap(240, 240, 80)
icon_flag = IconMarker((6.63204, 45.85378), './samples/icon-flag.png', 12, 32)
icon_factory = IconMarker((6.6015, 45.8485), './samples/icon-factory.png', 18, 18)
m.add_marker(icon_flag)
m.add_marker(icon_factory)
image = await m.render()
image.save('icons.png')
Licence
StaticMap is open source and licensed under Apache License, Version 2.0
The map samples on this page are made with OSM data, © OpenStreetMap contributors
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aiostaticmap-0.1.0.tar.gz.
File metadata
- Download URL: aiostaticmap-0.1.0.tar.gz
- Upload date:
- Size: 8.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.7.0 requests/2.25.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.5.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72df405b03e0a7fa06f2d6416cdf9d885964eeea9d73343841b6a88f92bee8af
|
|
| MD5 |
4db596dbc09918a7b5af9ac1996726fa
|
|
| BLAKE2b-256 |
2c1e26405dc429a1912af3a8cae4d4103b92887261d10f5c8cd8b975c30f6e22
|
File details
Details for the file aiostaticmap-0.1.0-py3-none-any.whl.
File metadata
- Download URL: aiostaticmap-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.15.0 pkginfo/1.7.0 requests/2.25.1 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.5.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
265094e2bb4955276053d2c1b007952d11af6b5baea25d76d6f44ed9cd1973bb
|
|
| MD5 |
4dacd42b5f196ebcafe249c9a5c5bb95
|
|
| BLAKE2b-256 |
7dfa466a9734ec07e2fa46b7abbceed1369b3fd4359bbcbdb1b89f258f303735
|