Ubuntu16.04 Mapnik部署安装

目的

  • 记录安装部署过程,好记性不如烂笔头。
  • 国内资料较少,使用版本也都比较老,希望对后续的人能有所帮助。
  • 希望能找到和我一样对快显感兴趣的小伙伴。
  • 练习写作,拓展个人视野,结交更多的朋友。

基础

官方资料

Mapnik GitHub首页 :传送门
Mapnik官方部署文档 :传送门
Mapnik官方资料:传送门
Python-Mapnik示例资料:传送门

Mapnik简介

Mapnik 是一个用来开发 GIS 应用程序的工具包,其核心是一个 C++ 的共享库提供空间数据访问和可视化的算法和模式。特别是包含一些地理对象,如地图、层、数据源、特征和地理几何等。该共享库支持多种操作系统,可以在多线程环境下很好的运行,主要面向一些提供GIS服务的Web应用开发。

Mapnik的使用案例

简单列举几个,如下:

  1. Mapbox
  2. OSM(OpenStreetMap)
  3. CartoDB

准备工作

部署环境

Ubuntu16.0.4_lts

相关工具

本文使用xshell,xftp操作Linux系统,您也阔以使用自己熟悉的Linux操作工具。

前置条件

  • 安装部署需要对Linux常用的命令有个基础的了解,如果不会也不用怕,跟着本文一步一步来就阔以了,不懂的命令百度一下就好了(顺便学习学习Linux系统常用指令)。
  • 胆大心细,要有耐心。(看到这里不要笑话我,哈哈哈)

软件部署

安装部署是个繁琐的活,即使是根据官网的指导也不一定能安装成功,遇到啥问题先Google一下,查不到再在GitHub上Mapnik项目上提问(会有大佬回答的),历经九九八一难,会成佛的。
当前最新版本为Mapnik 3.0.21 Release
Mapnik官方下载:传送门
Mapnik安装部署:传送门
Mapnik Ubuntu 安装部署:传送门
Python-Mapnik:传送门
Node-Mapnik:传送门

相关建议

  1. 不建议部署Windows版本,主要原因是Windows版本较低,官方已经不再维护,这块建议部署在Linux系统,本文主要针对Ubuntu16.04。
  2. 建议先申请一个外国的云服务器(比如亚马逊的AWS或Google的云服务器,都是阔以免费试用一年的),国内直接安装下载相关包的时候可能会失败,按照Mapnik官方提供的资料,无法安装成功(为嘛安装不成功,都懂的,墙外的世界不是那么容易欣赏的),这都是血泪的经验教训。
  3. Mapnik实现的绑定有好几种语言(C++、Python、Node.JS),这块我个人对Python版本了解多一点,多以我开始安装部署的Python-Mapnik。经过长时间的查找资料,发现Python版本的更新较慢,资料相对较老。这块我建议安装部署NodeJS版本,主要原因是Github上更新评率高,资料较多、较新,集群容易(网上有现成的框架),支持较新的Mapnik版本 (顺便阔以在Node.JS方面练练手 哈哈)。
  4. 如果要本地安装,建议先在国外服务器上把包下载下来,然后在本地的服务器在安装。

在线部署

免费云服务器申请

亚马逊云(AWS)

传送门(你需要用信用卡,抵押一美金)

Google云

传送门(需要有visa功能的信用卡或借记卡)

Mapnik安装

官方文档:传送门
安装步骤如下:

# 首先执行下面的语句,更新和升级一下apt-get
sudo apt-get update
sudo apt-get upgrade

# 更新clang
sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
sudo apt-get update -y
sudo apt-get install -y gcc-6 g++-6 clang-3.8
export CXX="clang++-3.8" && export CC="clang-3.8"

# 安装 mapnik
git clone https://github.com/mapnik/mapnik mapnik --depth 10
cd mapnik
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

其他一些需要注意的地方,详细请看官方Github帮助页。

Python-Mapnik安装

官方文档:传送门
安装步骤如下:

  1. apt-get install python-dev
  2. apt-get install python-pip
  3. apt-get install python-setuptools
  4. git clone https://github.com/mapnik/python-mapnik.git
  5. cd python-mapnik
  6. export BOOST_PYTHON_LIB=boost_python
  7. export BOOST_THREAD_LIB=boost_thread
  8. export BOOST_SYSTEM_LIB=boost_system
  9. python setup.py install
    安装成功后
    运行测试:
    cd demo/python
    python rundemo.py
    查看是否成功生成切片图片,如果成功生成则安装成功!

Node-Mapnik安装

官方文档:传送门 (官网的安装需步骤要你有一个强力的FQ工具或者国外的云服务器)
参考博客:传送门A ,传送门B

本地部署

Mapnik安装

这块需要打包aws或者google云上已经安装好的mapnik包,然后拷贝到本地。
安装步骤如下:

  1. cd ~
  2. mkdir wwwroot
  3. cd wwwroot
  4. sudo apt-get install python zlib1g-dev clang make pkg-config curl
  5. 拷贝所提供文件目录下的mapnik.tar.bz2到wwwroot目录下
  6. tar jxvf mapnik.tar.bz2
  7. cd mapnik-3.x
  8. export PROJ_LIB=/root/wwwroot/mapnik-3.x/mason_packages/.link/share/proj
  9. export ICU_DATA=/root/wwwroot/mapnik-3.x/mason_packages/.link/share/icu/57.1
  10. export GDAL_DATA=/root/wwwroot/mapnik-3.x/mason_packages/.link/share/gdal
  11. export C_INCLUDE_PATH=/root/wwwroot/mapnik-3.x/mason_packages/.link/include
  12. export CPLUS_INCLUDE_PATH=/root/wwwroot/mapnik-3.x/mason_packages/include
  13. export LIBRARY_PATH=/root/wwwroot/mapnik-3.x/mason_packages/lib
  14. ./configure CUSTOM_CXXFLAGS="-D_GLIBCXX_USE_CXX11_ABI=0" CXX= C X X C C = {CXX} CC= CXXCC={CC}
  15. make
  16. make test
  17. sudo make install
# 检查mapnik的版本号
mapnik-config -v

Python-Mapnik安装

安装步骤如下:

  1. apt-get install python-dev
  2. apt-get install python-pip
  3. apt-get install python-setuptools
  4. 拷贝文件python-mapnik.tar.gz到wwwroot目录下
  5. tar zxvf python-mapnik.tar.gz
  6. cd python-mapnik
  7. export BOOST_PYTHON_LIB=boost_python
  8. export BOOST_THREAD_LIB=boost_thread
  9. export BOOST_SYSTEM_LIB=boost_system
  10. python setup.py install
    安装成功后
    运行测试:
    cd demo/python
    python rundemo.py
    查看是否成功生成切片图片,如果成功生成则安装成功!

Node-Mapnik安装

  1. 安装Node.js
# 安装nodejs & npm
apt-get install nodejs
apt-get install npm

# 由于npm访问国外网站过慢,可以切换成淘宝npm镜像:
npm config set registry https://registry.npm.taobao.org

# 升级npm
npm install -g n

# 安装lts版本,当然你也可以安装latest、stable、lts和指定版本等	
n lts

# 查看node和npm的版本
node -v
npm -v

# 发现当前版本不是最新版本,可以按照下面的命令重新链接node和npm,确保链接最新版本。
rm /usr/bin/node
ln -s /usr/local/n/versions/node/8.11.3/bin/node /usr/bin/node
rm /usr/bin/npm
ln -s /usr/local/n/versions/node/8.11.3/bin/npm /usr/bin/npm

# npm 升级到最新版本
npm i -g npm
  1. 安装npm相关的包
# 全局安装node-gyp和node-pre-gyp
npm install -g node-gyp
npm install -g node-pre-gyp
  1. 安装Node-Mapnik(Node-Mapnik安装不依赖Mapnik)
# 创建文件夹
cd /home
mkdir node-mapnik
cd node-mapnik
# 安装node-mapnik模块(这块感觉不稳定,有的时候从亚马逊s3上下载资源会失败)
# 如果出现安装失败的情况,有的是因为一些资源下载失败,尝试科学上网、不断重试直到安装成功。
npm install mapnik

Ubuntu16.04 Mapnik部署安装_第1张图片
4. 验证安装是否成功

# 创建app.js文件
vim app.js
# 按字母i进入编辑模式,输入如下代码,编辑完按Esc + :wq! 保存。(记得拷贝一张demo.jpg的图片到当前目录)
var mapnik = require('mapnik');
new mapnik.Image.open('demo.jpg').save('demo.png');

# 执行js文件
node app.js

# 查看当前目录是否输出了demo.png图片,如果有就说明安装成功啦!
ls

安装部署文档下载

  • Mapnik & Python-Mapnik安装部署文档:CSDN资源传送门
    我在CSDN上传了Mapnik和Python-Mapnik详细的安装过程(做了详细的批注),感兴趣的小伙伴可以下载,有问题的可以留言也可以加Q联系我。
  • Mapnik & Python-Mapnik包已上传百度云
    链接:https://pan.baidu.com/s/1S-gGQAr4KoSP1QG7QJeUqA 提取码:baig

安装总结

  1. 建议申请个国外的服务器先安装试一下。
  2. 安装过程比较繁琐,按照步骤一步一步来,遇到啥问题goole解决啥问题,实在搞不定了可以留言或者在GitHub/StackOverFlow上给大佬提问题。
  3. 历经八十一难,总会成功的。

你可能感兴趣的:(快显,Mapnik,快显)