pycnik
A simple Translator from Python code (with coding conventions) to Mapnik XML stylesheet.
- features:
allow using exotic number of zoom levels and tile sizes (computes scales denominators)
provides a mechanism for inheritance
automatically add cache-feature attribute when using more than 2 styles
- caveats:
still work to do to be compliant with https://github.com/mapnik/mapnik/wiki/XMLConfigReference
Install Pycnik
$ git clone https://github.com/Mappy/pycnik.git $ cd pycnik $ python setup.py install
Or via pip:
$ pip install pycnik
Dependencies:
python-mapnik (mapnik >= 2.x)
lxml
Testing
Dependencies:
$ pip install -r requirements/test.pip
To run the tests with nose:
$ nosetests -v
Getting started
Pycnik uses dynamic variable declaration, so you have to use the same keywords as the xml declaration syntax.
example.py:
from pycnik.model import *
BACKGROUND_COLOR = 'rgb(255,255,220)'
NATURAL_RASTER = {
"type": "gdal",
"file": "natural_earth.tif"
}
DATABASE_PARAM = {
"dbname": "database",
"estimate_extent": "true",
"host": "0.0.0.0",
"password": "******",
"port": "5432",
"type": "postgis",
"user": "mapuser",
"srid": "4326",
}
################
# MAP DEFINITION
################
Map.background_color = BACKGROUND_COLOR
Map.srs = "+init=epsg:4326"
Map.minimum_version = "2.0"
Map.font_directory = "fonts"
Map.buffer_size = 128
########
# LAYERS
########
natural_earth = Layer("natural_earth")
natural_earth.datasource = NATURAL_RASTER
bnd = Layer("country boundaries")
bnd.datasource = DATABASE_PARAM
bnd.table = "schema.boundaries"
########
# STYLES
########
natural_earth.style()[:3] = {
RASTER: {
'scaling': 'bilinear'
}
}
bnd.style("blue")[0:19] = {
LINE: {
'fill': 'rgb(255,0,0)',
'stroke-width': '4'
},
'filter': "[countrycode]='ESP'"
}
# change the stroke width from level 10 to 15
# the `filter` and `fill` attributes are preserved
bnd.style("blue")[10:15] = {
LINE: {'stroke-width': '12'}}
You can see more examples in the test/resources directory.
Generate mapnik XML
$ pycnik example.py -o example.xml
Changelog
1.4 (2015-02-23)
fix compute_scales for WGS84
1.3.2 (2012-12-05)
allowing any attributes for layer tag
1.3.1 (2012-10-25)
Updated documentation
1.3 (2012-10-04)
Removed “zoom” comment in tag scaledenominator (for mapnik 2.1)
More tests
1.2 (2012-09-11)
Added copy_style() helper
1.1 (2012-09-10)
Support many symbolizer with the same type in rule
More tests
1.0 (2012-08-07)
Initial release
Release files for pycnik 1.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pycnik-1.4.tar.gz | 10.8 kB | Details |
Release files / pycnik-1.4.tar.gz
| Download URL | pycnik-1.4.tar.gz |
|---|---|
| Size | 10.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6a49bcc5fe4268046682de73f017c0d83a68f3a679b92478d001ce172e0f67f3
|
|
BLAKE2b-256 checksum How to use checksums |
2a7d1c085a6baadde2f008b732033622329154e41509eb28d5ba7c53e69de3ac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |