実行した環境
Linux Mint 18.2
Python 3.5.2
インストール
Mapnikのインストール
https://github.com/mapnik/mapnik/wiki/UbuntuInstallation
Ubuntu (16.04)のインストールのやり方でインストールしました。
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get update -y
エラー:1 http://packages.linuxmint-jp.net/linuxmint-ja ./ InRelease
packages.linuxmint-jp.net:80 (219.94.251.202) へ接続できませんでした。 - connect (111: 接続を拒否されました)
sudo apt-get install -y gcc-6 g++-6 clang-3.8
export CXX="clang++-3.8" && export CC="clang-3.8"
git clone https://github.com/mapnik/mapnik mapnik-3.x --depth 10
cd mapnik-3.x
git submodule update --init
sudo apt-get install python zlib1g-dev clang make pkg-config curl
source bootstrap.sh
./configure CUSTOM_CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" CXX=${CXX} CC=${CC}
make
make test
sudo make install
sudo apt install python3.5-mapnik
インストールはスムーズに終わりましたが、サンプルプログラムがエラーなくできるまでは苦労しました。(古いPC(セレロンCPU)でインストールに1時間近くかかりました。)
サンプルプログラムはネットで検索するとたくさんヒットするのですが、エラーがでてうまく動作しないものが多いです。
test.py
# !/usr/bin/python3
import mapnik
map = mapnik.Map (600 ,300)
map.background = mapnik.Color('steelblue')
polygons = mapnik.PolygonSymbolizer ()
polygons.fill = mapnik.Color('lightgreen')
rules = mapnik.Rule()
rules.symbols.append(polygons)
style = mapnik.Style()
style.rules.append(rules)
map.append_style('Countries', style)
layer = mapnik.Layer('world')
layer.datasource = mapnik.Shapefile(file='/home/ty21ky/mapnik-3.x/test/data/shp/ne_110m_admin_0_countries.shp')
layer.styles.append('Countries')
map.layers.append(layer)
map.zoom_all ()
mapnik.render_to_file(map ,'world.png','png')