staticmap

A small, python-based library for creating map images with lines, markers and polygons.

  • 所有者: komoot/staticmap
  • 平台:
  • 許可證: Other
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

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 = 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 staticmap

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 staticmap 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 = m.render(zoom=5)
image.save('marker.png')

Position IconMarker on a Map

Show Ferry Connection

from staticmap 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 = m.render()
image.save('ferry.png')

Ferry Connection Shown on a Map

Show Icon Marker

from staticmap 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 = 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

主要指標

概覽
名稱與所有者komoot/staticmap
主編程語言Python
編程語言Python (語言數: 1)
平台
許可證Other
所有者活动
創建於2015-08-24 16:45:58
推送於2024-04-29 22:36:43
最后一次提交2023-08-01 17:42:54
發布數7
最新版本名稱0.4.3 (發布於 2015-12-02 13:00:25)
第一版名稱0.1 (發布於 2015-11-13 15:40:09)
用户参与
星數314
關注者數21
派生數70
提交數59
已啟用問題?
問題數21
打開的問題數8
拉請求數7
打開的拉請求數10
關閉的拉請求數1
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?