Compilation de PostGIS et liaison avec JTS


Mainetant que JTS est convenablement installée, il nous faut encore compiler PostGIS en utilisant cette librairie à la place de GEOS.

Pour ce faire, il suffiit de lancer le script configue avec les options : --with-proj pour activer le support de la reprojection (cf. lwgeom/lwgeom_transform.c du répertoire des source de PostGIS pour plus d'information) et --with-jts=$(type -P jts-config) afin que PostGIS soit informé de notre souhait de compiler la librairie dynamique liblwgeom.so en la liant à la libjts.so.

Pour résuler, il suffit de lancer les commandes ci-dessous :

machine postgis-1.2.1 # ./configure  --prefix=/usr --datadir=/usr/share/postgresql/contrib/ --libdir=/usr/lib/postgresql/ --with-proj --with-jts=$(type -P jts-config)
machine postgis-1.2.1 # make
machine postgis-1.2.1 # make install
Si tout c'est bien passé vous devriez être capable de vérifier si la liaison a été correctement effectué en utilisant l'outil ldd de lma manière suivante :
machine postgis-1.2.1 # ldd /usr/lib/postgresql/liblwgeom.so
        linux-gate.so.1 =>  (0xffffe000)
        libgcj.so.7 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcj.so.7 (0xb69df000)
        libjts.so => /usr/X11R6/lib/libjts.so (0xb68aa000)
        libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 (0xb67c8000)
        libproj.so.0 => /usr/X11R6/lib/libproj.so.0 (0xb6796000)
        libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1 (0xb678a000)
        libc.so.6 => /lib/libc.so.6 (0xb6664000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb664d000)
        libdl.so.2 => /lib/libdl.so.2 (0xb6649000)
        libz.so.1 => /lib/libz.so.1 (0xb6637000)
        /lib/ld-linux.so.2 (0x80000000)
        libm.so.6 => /lib/libm.so.6 (0xb6612000)
Faite ici attention à ne pas avoir de lien cassé, c'est à dire des liens innexistant (des lignes contenant les charactères "not found"). Si le ldd vous a renvoyé les valeurs correctes, vous êtes alors fin prêt à créer votre première base de données spatiales utilisant JTS. Une fois votre base créé, connectez-vous à celle-ci et lancez ces deux commandes afin de vérifier que votre base PostGIS utilise bien JTS et non GEOS :
test_jts=# select postgis_full_version();
                         postgis_full_version     
---------------------------------------------------------------------- 
POSTGIS="1.2.1" JTS="1.7.2" PROJ="Rel. 4.5.0, 22 Oct 2006" USE_STATS
(1 ligne)

test_jts=# select postgis_jts_version(); 
 postgis_jts_version
 --------------------- 
 1.7.2
(1 ligne)