2016-10-27 2 views
0

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

Antwort

0

Es stellt sich heraus, dass das OCCI Plugin nicht einmal mit dieser Version von Mapnik funktioniert.Wenn ich Oracle Spatial Database Connectivity erhalten möchte, muss ich das OGR-Plugin verwenden.