Skip to main content

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.

Map with Line 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')

Position IconMarker on a Map

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')

Ferry Connection Shown on a Map

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')

Ferry Connection Shown on a Map

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

aiostaticmap-0.1.0.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

aiostaticmap-0.1.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

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

Hashes for aiostaticmap-0.1.0.tar.gz
Algorithm Hash digest
SHA256 72df405b03e0a7fa06f2d6416cdf9d885964eeea9d73343841b6a88f92bee8af
MD5 4db596dbc09918a7b5af9ac1996726fa
BLAKE2b-256 2c1e26405dc429a1912af3a8cae4d4103b92887261d10f5c8cd8b975c30f6e22

See more details on using hashes here.

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

Hashes for aiostaticmap-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 265094e2bb4955276053d2c1b007952d11af6b5baea25d76d6f44ed9cd1973bb
MD5 4dacd42b5f196ebcafe249c9a5c5bb95
BLAKE2b-256 7dfa466a9734ec07e2fa46b7abbceed1369b3fd4359bbcbdb1b89f258f303735

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page