当前位置: 首页 > 工具软件 > Mapnik > 使用案例 >

mapnik在VC下的配置

韦飞尘
2023-12-01

笔者当时使用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

 类似资料: