- en
- Langue : fr
Installation de Spatialite¶
SpatiaLite ajoute la prise en charge spatiale à SQLite, en en faisant une base de données spatiale pleinement opérationnelle.
Vérifiez premièrement si vous pouvez installer Spatialite à partir de paquets ou de binaires du système. Par exemple, avec les distributions basées sur Debian, essayez d’installer le paquet spatialite-bin. Pour Mac OS X, suivez les instructions spécifiques ci-dessous. Pour Windows, vous pouvez trouver des binaires sur la page d’accueil de Gaia-SINS. Dans tous les cas, il est toujours possible de recourir à l’installation à partir des sources.
Lorsque le processus d’installation est terminé, passez à Création d’une base de données spatiale pour SpatiaLite.
Installation à partir des sources¶
GEOS et PROJ.4 doivent être installées avant de compiler SpatiaLite.
SQLite¶
Contrôler d’abord si SQLite est compilé avec le module R*Tree. Lancez l’interface en ligne de commande sqlite3 et saisissez la requête suivante :
sqlite> CREATE VIRTUAL TABLE testrtree USING rtree(id,minX,maxX,minY,maxY);
Si vous obtenez une erreur, vous devrez recompiler SQLite à partir de ses sources. Sinon, vous pouvez sans autre passer à la section suivante.
Pour installer à partir des sources, téléchargez la dernière version de l’archive des sources amalgamation à partir de la page de téléchargement de SQLite et faites-en l’extraction :
$ wget http://sqlite.org/sqlite-amalgamation-3.6.23.1.tar.gz
$ tar xzf sqlite-amalgamation-3.6.23.1.tar.gz
$ cd sqlite-3.6.23.1
Ensuite, lancez le script configure; cependant, la variable d’environnement CFLAGS doit être personnalisée afin que SQLite sache qu’il doit compiler le module R*Tree :
$ CFLAGS="-DSQLITE_ENABLE_RTREE=1" ./configure
$ make
$ sudo make install
$ cd ..
Bibliothèque SpatiaLite (libspatialite)¶
Récupérez le paquet groupé des sources de la bibliothèque Spatialite le plus récent à partir de la page de téléchargement:
$ wget http://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-4.1.0.tar.gz
$ tar xaf libspatialite-4.1.0.tar.gz
$ cd libspatialite-4.1.0
$ ./configure
$ make
$ sudo make install
Note
Pour les utilisateurs de Mac OS X compilant à partir des sources, il faut configurer l’option target pour la bibliothèque et les outils SpatiaLite :
$ ./configure --target=macosx
pysqlite2¶
Si vous avez décidé d’utiliser une version plus récente de pysqlite2 au lieu du module Python standard sqlite3, vous devez alors vous assurer que les extensions externes puissent être chargées (c’est-à-dire que la méthode indispensable enable_load_extension soit disponible pour pouvoir charger SpatiaLite).
Cela pourrait impliquer une recompilation de votre part. Pour cela, téléchargez pysqlite2 2.6 et décompressez l’archive :
$ wget https://pypi.python.org/packages/source/p/pysqlite/pysqlite-2.6.3.tar.gz
$ tar xzf pysqlite-2.6.3.tar.gz
$ cd pysqlite-2.6.3
Ensuite, modifiez le fichier setup.cfg dans un éditeur de texte afin qu’il ressemble à ceci :
[build_ext]
#define=
include_dirs=/usr/local/include
library_dirs=/usr/local/lib
libraries=sqlite3
#define=SQLITE_OMIT_LOAD_EXTENSION
ou si vous êtes sous Mac OS X :
[build_ext]
#define=
include_dirs=/Library/Frameworks/SQLite3.framework/unix/include
library_dirs=/Library/Frameworks/SQLite3.framework/unix/lib
libraries=sqlite3
#define=SQLITE_OMIT_LOAD_EXTENSION
Note
L’élément important à ce stade est de vérifier que le drapeau define=SQLITE_OMIT_LOAD_EXTENSION soit commenté et que les réglages include_dirs et library_dirs ne soient pas commentés et que leur chemin soit correctement défini dans le cas où les fichiers d’en-têtes et de bibliothèques ne se trouvent pas respectivement dans /usr/include et /usr/lib.
Après la modification appropriée de setup.cfg, lancez le script setup.py pour compiler et installer :
$ python setup.py install
Instructions spécifiques à Mac OS X¶
Pour installer la bibliothèque et les outils SpatiaLite, les utilisateurs de Mac OS X peuvent choisir entre les systèmes Paquets KyngChaos et Homebrew.
KyngChaos¶
Tout d’abord, suivez les instructions de la section Paquets KyngChaos.
Lors de la Création d’une base de données spatiale pour SpatiaLite, le programme spatialite est requis. Cependant, au lieu d’essayer de compiler les outils SpatiaLite à partir des sources, téléchargez les binaires SpatiaLite pour OS X et installez spatialite à un emplacement accessible dans votre chemin PATH. Par exemple :
$ curl -O http://www.gaia-gis.it/spatialite/spatialite-tools-osx-x86-2.3.1.tar.gz
$ tar xzf spatialite-tools-osx-x86-2.3.1.tar.gz
$ cd spatialite-tools-osx-x86-2.3.1/bin
$ sudo cp spatialite /Library/Frameworks/SQLite3.framework/Programs
Pour terminer et afin que GeoDjango puisse trouver la bibliothèque SpatiaLite de KyngChaos, ajoutez ce qui suit à votre fichier settings.py:
SPATIALITE_LIBRARY_PATH='/Library/Frameworks/SQLite3.framework/SQLite3'
Homebrew¶
Homebrew se charge lui-même d’installer tous les paquets liés à SpatiaLite, y compris SQLite3, SpatiaLite, PROJ et GEOS. Voici comment les installer :
$ brew update
$ brew install spatialite-tools
$ brew install gdal
Pour terminer et afin que GeoDjango puisse trouver la bibliothèque SpatiaLite, ajoutez ce qui suit à votre fichier settings.py:
SPATIALITE_LIBRARY_PATH='/usr/local/lib/mod_spatialite.dylib'
Création d’une base de données spatiale pour SpatiaLite¶
Lors de l’exécution de manage.py migrate avec une base de données SQLite ou SpatiaLite, le fichier de base de données sera automatiquement créé s’il n’existe pas encore. Django va aussi s’assurer que les métadonnées spatiales sont initialisées dans la base de données.
Avant Django 1.8, il fallait initialiser soi-même les tables de métadonnées spatiales en exécutant manuellement la requête “SELECT InitSpatialMetaData();”.