过去几天我一直在尝试让 node-mapnik 运行,但没有成功。
最初受到 Wilhelm Berg 的演示 ( https://www.youtube.com/watch?v=GlTaRpg3CbQ ) 的启发,该演示使用 node-mapnik 呈现纯矢量地图,我有兴趣让它在 Windows Server 上运行。
我已经处理了关于这些主题的所有 StackExchange 问题,包括 Wilhelm 的清单,以使其在 Windows 7 x64 上运行,但我处于死胡同,我的知识在进一步诊断问题方面确实有限。
我的环境是:
- Windows 2008 服务器 R2 x64
- Visual Studio Express 2012 桌面版(32 位和 64 位)
- Node.js v0.10.26(64 位)
- Python27(32 位)
我已采取以下步骤:
安装从 git 下载的 Mapnik 2.2.0 SDK 并放置在 C:\apps\mapnik-v2.2.0
添加到路径:
C:\apps\mapnik-v2.2.0\lib
C:\apps\mapnik-v2.2.0\bin
安装 Python v2.7 (32bit) 下载并放置在 C:\apps\python27
添加到路径:
C:\apps\python27
C:\apps\python27\scripts
添加到 PYTHONPATH:
C:\apps\Python27\Lib; C:\apps\Python27\DLLs;
C:\apps\Python27\Lib\lib-tk;
C:\apps\mapnik-v2.2.0\python\2.7\site-packages;
使用 VS 2012 重建 node-gyp
节点gyp重建--msvs_version=2012
下载并安装 protobuf(32 位)并放在 c:\apps\protobuf
添加到路径:
c:\apps\protobuf
使用 NPM 安装 protobuf
npm install protobuf --msvs_version=2012
使用 git 下载开罗
git clone git://anongit.freedesktop.org/git/cairo
将 Cairo 文件复制到 mapnik:
将 cairo\src\cairo-svg-surface.c 复制到 C:\apps\mapnik-v2.2.0\include
将 cairo\src\cairo-svg.h 复制到 C:\apps\mapnik-v2.2.0\include
将 cairo\src\cairo-svg-surface-private.h 复制到 C:\apps\mapnik-v2.2.0\include
使 proj4 epsg 文件可用:
SET PROJ_LIB=C:\apps\mapnik-v2.2.0\share\proj
尝试安装 node-mapnik
npm install node-mapnik --msvs_version=2012
我收到以下错误:
节点预gyp错误!需要源编译:404 状态代码下载 tarball ... mapnik_grid.cpp c:\users\administrator\node_modules\node-mapnik\build\release\obj\global_interm ediate\vector_tile.pb.h(9):致命错误 C1083:无法打开包含文件:'googl e/protobuf/stubs/common.h':没有这样的文件或目录(C:\Users\Administrator\n ode_modules\node-mapnik\build\Release\obj\global_intermediate\vector_tile.pb。 cc ) [C:\Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj] c:\users\administrator\node_modules\node-mapnik\src\utils.hpp(11):致命错误 C1083:无法打开包含文件:'mapnik/unicode.hpp':没有这样的文件或目录 y (..\src\mapnik_geometry.cpp) [C:\Users\Administrator\node_modules\node-mapnik \build\mapnik.vcxproj] mapnik_layer.cpp mapnik_cairo_surface.cpp c:
mapnik_datasource.cpp C:\Users\Administrator\node_modules\node-mapnik\node_modules\mapnik-vector-tile \src\mapnik3x_compatibility.hpp(4):致命错误 C1083:无法打开包含文件:'mapnik/version.hpp':没有这样的文件或目录 (..\src\mapnik_color.cpp) [C:\Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj]
node_mapnik.cpp ..\src\mapnik_grid_view.cpp(9):致命错误 C1083:无法打开包含文件:'m apnik/grid/grid.hpp':没有这样的文件或目录 [C:\Users\Administrator\node_mo dules \node-mapnik\build\mapnik.vcxproj] mapnik_projection.cpp C:\Users\Administrator\node_modules\node-mapnik\node_modules\mapnik-vector-tile \src\mapnik3x_compatibility.hpp(4):致命错误 C1083:无法打开包含文件:'mapnik/version.hpp':没有这样的文件或目录 (..\src\mapnik_layer.cpp) [C:\Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj]
mapnik_feature.cpp ..\src\mapnik_grid.cpp(9):致命错误 C1083:无法打开包含文件:'mapnik /version.hpp':没有这样的文件或目录 [C:\Users\Administrator\node_modules\n ode- mapnik\build\mapnik.vcxproj] mapnik_palette.cpp ..\src\mapnik_image_view.cpp(11):致命错误 C1083:无法打开包含文件:'mapnik/color.hpp':没有这样的文件或目录 [C:\Users \Administrator\node_modu les\node-mapnik\build\mapnik.vcxproj] mapnik_vector_tile.cpp c:\users\administrator\node_modules\node-mapnik\src\utils.hpp(11):致命错误 C1083:无法打开包含文件: 'mapnik/unicode.hpp':没有这样的文件或目录 y (..\src\mapnik_cairo_surface.cpp) [C:\Users\Administrator\node_modules\node-m apnik\build\mapnik.vcxproj] mapnik_expression.cpp
mapnik_memory_datasource.cpp ..\src\mapnik_memory_datasource.cpp(3):致命错误 C1083:无法打开包含文件:'mapnik/version.hpp':没有这样的文件或目录 [C:\Users\Administrator\n ode_modules\node- mapnik\build\mapnik.vcxproj] c:\users\administrator\node_modules\node-mapnik\src\utils.hpp(11):致命错误 C1083:无法打开包含文件:'mapnik/unicode.hpp':没有这样的文件或目录 y (..\src\mapnik_feature.cpp) [C:\Users\Administrator\node_modules\node-mapnik\ build\mapnik.vcxproj] ..\src\mapnik_image.cpp(7):致命错误 C1083:不能打开包含文件:'mapnik/color.hpp':没有这样的文件或目录 [C:\Users\Administrator\node_modules\no de-mapnik\build\mapnik.vcxproj] C:\Users\Administrator\node_modules\node- mapnik\node_modules\mapnik-vector-tile \src\mapnik3x_compatibility.hpp(4):致命错误 C1083:无法打开包含文件:'mapnik/version.hpp':没有这样的文件或目录 (..\src\mapnik_datasource.cpp) [C:\Users\Administrator\node_modules\node-mapnik\build\mapnik. vcxproj] C:\Users\Administrator\node_modules\node-mapnik\node_modules\mapnik-vector-tile \src\mapnik3x_compatibility.hpp(4):致命错误 C1083:无法打开包含文件:'mapnik/version.hpp':否这样的文件或目录(..\src\mapnik_projection.cpp)[C:\Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj] C:\Users\Administrator\node_modules\node-mapnik\node_modules\mapnik -vector-tile \src\mapnik3x_compatibility.hpp(4): 致命错误 C1083: 无法打开包含文件: 'mapnik/version.hpp': 没有这样的文件或目录 (..\src\mapnik_palette.cpp) [C:\Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj] C:\Users\Administrator\node_modules\node-mapnik\node_modules\mapnik-vector-tile \src\mapnik3x_compatibility.hpp(4):致命错误 C1083 :无法打开包含文件:'mapnik/version.hpp':没有这样的文件或目录 (..\src\node_mapnik.cpp) [C:\ Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj] c :\users\administrator\node_modules\node-mapnik\src\utils.hpp(11): 致命错误 C1083: 无法打开包含文件: 'mapnik/unicode.hpp': 没有这样的文件或目录 y (..\src\ mapnik_vector_tile.cpp) [C:\Users\Administrator\node_modules\node-map nik\build\mapnik.vcxproj]mapnik/version.hpp': 没有这样的文件或目录 (..\src\node_mapnik.cpp) [C:\ Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj] c:\users\administrator\node_modules \node-mapnik\src\utils.hpp(11): 致命错误 C1083: 无法打开包含文件: 'mapnik/unicode.hpp': 没有这样的文件或目录 y (..\src\mapnik_vector_tile.cpp) [C: \Users\Administrator\node_modules\node-map nik\build\mapnik.vcxproj]mapnik/version.hpp': 没有这样的文件或目录 (..\src\node_mapnik.cpp) [C:\ Users\Administrator\node_modules\node-mapnik\build\mapnik.vcxproj] c:\users\administrator\node_modules \node-mapnik\src\utils.hpp(11): 致命错误 C1083: 无法打开包含文件: 'mapnik/unicode.hpp': 没有这样的文件或目录 y (..\src\mapnik_vector_tile.cpp) [C: \Users\Administrator\node_modules\node-map nik\build\mapnik.vcxproj]vcxproj]vcxproj]