Python port of https://github.com/mapbox/projectmill for Python 2.5+ (including 3.X).
Currently only support --mill
and --render
.
There are no requirements for Python 2.7, 3.2+, and pypy-1.9 unless you want to run the tests.
To run tests, simply python setup.py test
.
The remainder of the documentation is adapted from the original project.
Need to generate a bunch of TileMill projects that are nearly identical and then render them all out? What to script that? We gotcha covered.
Usage: projectmill <command> [options]
Example: projectmill --mill -c config.example.json -t ../tilemill/
The easiest route is to just pip install py-projectmill
.
To install from source: pip install -e .
or python setup.py install
.
If you're using Python 2.5, 2.6, 3.0, or 3.1, you will also need to pip install -r requirements-X.Y.txt
(they don't include argparse
, which is required, and 2.5 needs simplejson
).
Tests pass with all versions from 2.5 - 3.3 and pypy-1.9, so it ought to work for just about everyone.
Configuration is expected as a json file which contains an array as the root
object. See config.example.json
for an example. Each element in the array
should be an object which can have the following keys:
source REQUIRED The source project, generally the name of folder it lives in. destination REQUIRED The destination project name. mml A json snippet which will be merged on top of the project's mml file. To clear out an option set it to 'null' cartoVars A json object containing key value pairs which can be use to override variables in in carto stylesheets. MBmeta MBTiles: A json object containing key value pairs which will be added to a rendered MBtiles export. Additionally, the following options will be passed to TileMill's export commnd format Export format (png|pdf|svg|mbtiles). (Default: undefined) bbox Array containing coordinates of bounding box to export. (Default: undefined) minzoom MBTiles: minimum zoom level to export. (Default: undefined) maxzoom MBTiles: maximum zoom level to export. (Default: undefined) width Image: image width in pixels. (Default: 400) height Image: image height in pixels. (Default: 400) bufferSize Mapnik render buffer size. (Default: 128)
ProjectMill accepts the following commands. They can be issued either individually or together:
--mill Generates new tilemill projects based on configuration. --render Renders projects that are present in configuration and have been milled. --upload Uploads projects that are present in configuration and have been rendered.
We also accept the following options:
-t Path to the TileMill install -c specify a configuration file. (Defaults: ./config.json) -p Path to TileMill project folder. (Defaults: ~/Documents/Mapbox) -f Replace existing projects (together with mill) or existing projects and exports (together with render).