笔者当时使用mapnik是在2009年,这些步骤可能不适应现在的版本,仅供参考吧。
一、在windows中安装mapnik
(一)安装条件
Windows XP或Vista
Python 2.5 - python.org
Mapnik 0.6.1 Binary Files (点击下载链接地址)
PROJ4 binary files, 如果你计划使用OGC的WMS服务,EPSG是必须的。(安装信息可以看下载的压缩包文件中“readme.txt”)
(二)安装步骤:
1、下载Mapnik binary
2、放置解压缩文件夹到“C:\ mapnik_0_6_1\”
3、设置您的系统和/或用户环境变量:
o 提示: 控制面板->系统->高级->环境变量
a. 添加“C:\ mapnik_0_6_1 \ lib” 到 PATH变量。
§ 注意:您可能还需要设置你的用户的PATH环境变量。
§ 如果变量PATH不存在,添加它。
§ 这项设置正确的话将允许绑定mapnik的Python发现mapnik.dll
b. 添加“C:\ mapnik_0_6_1 \site-packages”到PYTHONPATH变量。
§ 这项设置正确的话将允许Python发现绑定mapnik的Python
4、打开一个新的控制台运行“cmd”测试设置:
o 键入“路径”,以确保您的路径中包含“C:\ mapnik_0_6_1 \ lib”
5、运行“C:\ Python25 \ python.exe”,然后在Python中输入:
Import mapnik
o 如果你没有错误消息,您成功了!
o 如果你得到一个错误信息,请参见下面的故障排除
6、打开资源管理器,到“C:\ mapnik_0_6_1 \demo\Python”,双击rundemo.py
o 你应该看到几个demo.*文件输出
7、如果运行错误,请确认您已经安装Boost库和是否在环境变量中设置了正确的路径。
8、返回GettingStarted开始你第一个关于Mapnik的Python API的教程。
(三)故障排除
1、找不到Mapnik DLL文件
你得到一个这样的错误:
Can't find mapnik.dll
解决方法:请确保您正确的完成步骤3。
2、在Python中找不到Mapnik库
问题:当在Python中引入 mapnik库时得到这样的错误信息:
>>> import mapnik
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named mapnik
解决方法:请确保你已正确完成步骤3.b中的把“site-packages”文件夹设置到“PYTHONPATH”环境变量中
3、未知的依赖项(windows环境下)找不到
问题:当在Python中引入 mapnik库时得到这样的错误信息:
[...snip...]
from _mapnik import *
ImportError: DLL load failed: This application has failed to start because the application configuration is incorrect. Reinstalling the application may fix this problem.
解决方法:
· 您可能在使用一个老的的版本,需要安装Visual Studio 2008 Runtime Libraries (msvcrt90.dll从微软开发者网络 获得)。如果还没搞定它,你可能还缺少2005版本。
· 这个问题也可能会发生在一些新安装的系统中,缺少一些依赖项或某些DLL的版本不兼容。我遇到这这种情况时,不得不安装MSVC的依赖(vcredist_x86.exe)和在mapnik / lib文件夹下放置下载的msvcr90.dll。
· 通过Dependency Walker 对mapnik.dll的查看你可以得到更多的关于缺失和不兼容的信息。在64位系统,您必须使用32位版本。
二、vc下使用mapnik
参考:http://old.nabble.com/Mapnik%2BWin32%2BVisual-C%2B%2B-td25286445.html
(一)开发环境
Windows XP with sp2/sp3
Visual C++ 2008 Express Edition
(二)Mapnik安装步骤(请参考“一、在windows中安装mapnik”)
1、到 http://www.mapnik.org 下载 mapnik的 “win32 binaries”
2、安装Python2.5.4到“C:\Python25”下
3、根据“mapnik在windows下的安装”的说明安装mapnik到“D:\mapnik”
4、下载压缩包(mapnik-0.6.1.tar.bz2),解压到“D:\mapnik”中,运行其目录下 \demo\python \rundemo.py 。没有错误的话(新的文件将被创建:demo.jpg, demo.png, demo256.png, map.xml)
(三)创建mapnik-0.6.1中的 \demo\c++ rundemo.cpp示例程序,步骤如下:
1、创建一个空的Visual C++ 2008 Express Edition项目(Win32 Console Application),在 生成——>配置管理器 中设置只创建“Release|Win32”项目。
2、加载文件rundemo.cpp到项目中
3、在 工具——>选项——>项目解决方案——>VC++ 中设置:
a、在“包含文件”中添加 D:\mapnik\include
b、在“库文件”中添加 D:\mapnik\lib
4、在 项目——>属性——>链接器——>附加依赖项中 添加:mapnik.lib
5、在 D:\mapnik\include 下添加:
a、 新建文件夹“boost”,添加从 boost_1_39_0.zip解压后的头文件 *.hpp (http://www.boost.org/users/download/)(BOOST库可能需要自己编译一下)
b、 新建文件夹“unicode”,添加从icu4c-4_2_1-Win32-msvc9.zip 解压后的头文件 *.hpp (http://icu-project.org/download/)
c、 直接添加File ft2build.h ,新建“freetype”文件夹,添加从 freetype-2.3.5.tar.gz解压的头文件 *.h (http://freetype.sourceforge.net/download.html#stable)
d、直接添加file ltdl.h 文件,从 libtool-1.5.26-bin.zip 解压后获得(http://gnuwin32.sourceforge.net/downlinks/libtool-bin-zip.php)
6、在 D:\mapnik\lib 中添加:
a、 mapnik.lib
b、 libboost_date_time-vc90-mt-gd-1_39.lib
c、 libboost_regex-vc90-mt-gd-1_39.lib
d、 libboost_thread-vc90-mt-gd-1_39.lib
7、在 C:\windows\system32 或者运行程序的Realease文件夹下添加:
a、mapnik.dll
b、icudt40.dll
c、icuuc40.dll
d、libxml2.dll