Ich versuche, Occi-Plugin für Node-Mapnik zu bauen. Mein Zweck ist es, dieses Plugin in der Node-Mapnik-Installation des Tilelive-Bridge-Knotenmoduls zu verwenden.Occi-Plugin für Node-Mapnik erstellen
Hier ist, was ich tat, zuerst:
git clone https://github.com/mapnik/mapnik --depth 5
cd mapnik
git submodule update --init
Nachdem Sie das getan, ich mit postgis Plugin bauen konnte:
python scons/scons.py INPUT_PLUGINS='postgis'
Die resultierende postgis.input Datei in plugins/Eingabeverzeichnis zur Verfügung stand.
Ich habe das mapnik/non-core-plugins Repository geklont, das occi plugin in plugins/input Verzeichnis kopiert, zip-installiertes oracle instantclient 11.2.0.4.0 Version (die rpm Installation hat mir keinen Include Ordner und/oder H-Dateien), herausgegeben SConstruct Datei und hinzugefügt, um diese Linie zu den Plugins Objekt:
'occi':{'default':False,'path':'OCCI','inc':'occi.h','lib':'clntsh','lang':'C++'},
ich dann die config.py Datei bearbeitet und hinzugefügt diese:
OCCI_INCLUDES = '/usr/lib/oracle/10.2.0.3/client/include'
OCCI_LIBS = '/usr/lib/oracle/10.2.0.3/client'
auch änderte ich diese Zeile :
PathVariable('OCCI_LIBS', 'Search path for OCCI library files', '/usr/lib/oracle/10.2.0.3/client' + LIBDIR_SCHEMA_DEFAULT, PathVariable.PathAccept),
in
PathVariable('OCCI_LIBS', 'Search path for OCCI library files', '/usr/lib/oracle/10.2.0.3/client', PathVariable.PathAccept),
Dann habe ich diese 3 Zeilen zu ~/.bashrc:
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
Bitte beachte, dass ich nicht 10.2.0.3 Version aber 11.2.0.4.0 verwenden, Ich habe den Ordner so benannt, dass er in den Standardordner in SConstruct passt (ich könnte auch den Standardordner ändern, aber ich war mir nicht sicher, ob es der Standardordner war, also habe ich ihn so gelassen wie er ist).
Dann trat ich:
source ~/.bashrc
und ging in den Mapnik Ordner den Build auszuführen:
python scons/scons.py INPUT_PLUGINS='occi'
Dort heißt es:
Checking for C++ library clntsh... yes
Aber es sagt nicht:
Checking for C++ library ociei... yes
Wie die occi Seite von mapniks Wiki in GitHub suggeriert.
Der Fehler, ich habe:
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-Brücke kommt nicht mit einer Mapnik-Installation, die OCCI Plugin hat, und die Versionen, bevor sie occi Unterstützung nur nicht kompiliert entfernt.
Können Sie mir bitte sagen, was ich vermisse?
Vielen Dank für die Hilfe im Voraus