为node-mapnik构建occi插件



我正在尝试为node-mapnik构建occi插件。我的目的是在node-mapnik安装tilelive-bridge节点模块时使用该插件。

下面是我首先做的:

git clone https://github.com/mapnik/mapnik --depth 5
cd mapnik
git submodule update --init

这样做之后,我可以构建postgis插件使用:

python scons/scons.py INPUT_PLUGINS='postgis'

生成的postgis。输入文件在plugins/Input目录下。

我克隆了mapnik/noncore -plugins存储库,将occi插件复制到plugins/input目录,zip-installed oracle instantclient 11.2.0.4.0版本(rpm安装没有给我包含文件夹和/或。h文件),编辑SConstruct文件并将这一行添加到plugins对象:

'occi':{'default':False,'path':'OCCI','inc':'occi.h','lib':'clntsh','lang':'C++'},

然后编辑config.py文件并添加以下内容:

OCCI_INCLUDES = '/usr/lib/oracle/10.2.0.3/client/include'
OCCI_LIBS = '/usr/lib/oracle/10.2.0.3/client'

同时,我改变了这一行:

PathVariable('OCCI_LIBS', 'Search path for OCCI library files', '/usr/lib/oracle/10.2.0.3/client' + LIBDIR_SCHEMA_DEFAULT, PathVariable.PathAccept),

PathVariable('OCCI_LIBS', 'Search path for OCCI library files', '/usr/lib/oracle/10.2.0.3/client', PathVariable.PathAccept),

然后在~/.bashrc:

中添加这3行
export ORACLE_HOME=/usr/lib/oracle/10.2.0.3/client
export PATH=$ORACLE_HOME:$PATH
export LD_LIBRARY_PATH=/usr/lib/oracle/10.2.0.3/client

请注意,我不是使用10.2.0.3版本,而是11.2.0.4.0,我只是以这种方式命名文件夹,以适应SConstruct中的默认文件夹(我也可以更改默认文件夹,但我不确定它是默认文件夹,所以我保留了它)。

然后输入:

source ~/.bashrc

,转到mapnik文件夹运行构建:

python scons/scons.py INPUT_PLUGINS='occi'

它说:

Checking for C++ library clntsh... yes

但是它没有说:

Checking for C++ library ociei... yes

就像mapnik wiki在github中的occi页面所建议的那样。

我得到的错误:

In file included from plugins/input/occi/occi_datasource.cpp:24:0:
plugins/input/occi/occi_featureset.hpp:55:43: error: ‘geometry_type’ in namespace ‘mapnik’ does not name a type
                         const mapnik::geometry_type::types& geom_type,
                                       ^
plugins/input/occi/occi_featureset.hpp:55:63: error: expected unqualified-id before ‘&’ token
                         const mapnik::geometry_type::types& geom_type,
                                                           ^
plugins/input/occi/occi_featureset.hpp:55:63: error: expected ‘)’ before ‘&’ token
plugins/input/occi/occi_featureset.hpp:55:63: error: expected ‘;’ at end of member declaration
plugins/input/occi/occi_featureset.hpp:55:65: error: ‘geom_type’ does not name a type
                         const mapnik::geometry_type::types& geom_type,
                                                             ^
plugins/input/occi/occi_featureset.hpp:61:38: error: ‘mapnik::geometry_type’ has not been declared
     void fill_geometry_type (mapnik::geometry_type* geom,
                                  ^
scons: *** [plugins/input/occi/occi_datasource.os] Error 1
scons: building terminated because of errors.

Tilelive-bridge没有安装有occi插件的mapnik,并且在他们删除occi支持之前的版本无法编译。

你能告诉我我错过了什么吗?

感谢大家提前提供的帮助

原来OCCI插件甚至不能与那个版本的Mapnik一起工作。如果我想获得Oracle空间数据库连接,我必须使用OGR插件。

相关内容

  • 没有找到相关文章