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 installSi 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)