pycnik is een eenvoudige Translator van Python-code (met codering conventies) naar XML stylesheet Mapnik.
Install Pycnik
& Nbsp; git clone https://github.com/ldgeo/pycnik
& Nbsp; cd pycnik
& Nbsp; python setup.py installeren
Testen
Om de tests uit te voeren:
& Nbsp; python -m unittest ontdekken -s test /
Aan de slag
Pycnik gebruiken dynamische variabele declaratie, dus je moet dezelfde zoekwoorden te gebruiken als de xml declaratie-syntax.
example.py:
van pycnik.model import *
Background_color = "rgb (255.255.220)"
NATURAL_RASTER = {
& Nbsp; "type": "GDAL",
& Nbsp; "bestand": "natural_earth.tif"
}
DATABASE_PARAM = {
& Nbsp; "dbname": "databank",
& Nbsp; "estimate_extent": "true",
& Nbsp; "host": "0.0.0.0",
& Nbsp; "password": "******",
& Nbsp; "port": "5432",
& Nbsp; "type": "postgis",
& Nbsp; "gebruiker": "mapuser",
& Nbsp; "SRID": "4326",
}
################
# MAP DEFINITIE
################
Map.background_color = background_color
Map.srs = "+ init = epsg: 4326"
Map.minimum_version = "2.0"
Map.font_directory = "fonts"
Map.buffer_size = 128
########
# LAGEN
########
natural_earth = Layer ("natural_earth")
natural_earth.datasource = NATURAL_RASTER
BND = Layer ("land grenzen")
bnd.datasource = DATABASE_PARAM
bnd.table = "schema.boundaries"
########
# STIJLEN
########
natural_earth.style () [3] = {
& Nbsp; RASTER: {
& Nbsp; 'scaling': 'bilinear'
& Nbsp;}
}
bnd.style ("blauwe") [00:19] = {
& Nbsp; LINE: {
& Nbsp; 'vullen': 'rgb (255,0,0)',
& Nbsp; 'stroke-width': '4'
& Nbsp;},
& Nbsp; 'filter': "[landcode] = 'ESP'"
}
bnd.style ("blauwe") [10:15] = {
& Nbsp; LINE: {
& Nbsp; 'stroke-width': '12'
& Nbsp;}
& Nbsp; # erfenis, het filter is geconserveerd
}
Genereer mapnik XML
& Nbsp; pycnik example.py -o example.xml
Kenmerken
- toe met behulp van exotische aantal zoomniveaus en tegel maten (berekent schalen noemers)
- biedt een mechanisme voor overerving
- automatische add-cache-functie attribuut bij het gebruik van meer dan 2 stijlen
Eisen
- Python
- mapnik2
- LXML
Beperkingen
- geen mogelijkheid om meerdere gelijksoortige symbolizers gebruiken in dezelfde regel
Reacties niet gevonden