# Documentation Django 3.1.9.dev

# Installation de SpatiaLite

SpatiaLite ajoute la prise en charge spatiale à SQLite, en en faisant une base de données spatiale pleinement opérationnelle.

Tout d’abord, vérifiez si vous pouvez installer SpatiaLite à partir de paquets systèmes ou de binaires.

Par exemple, avec les distributions basées sur Debian ayant des paquets SpatiaLite 4.2+, essayez d’installer le paquet `libsqlite3-mod-spatialite`. Pour les distributions plus anciennes, installez `spatialite-bin`.

Pour macOS, suivez les instructions ci-dessous.

Pour Windows, vous pouvez trouver des binaires sur la page d’accueil Gaia-SINS.

Dans tous les cas, il devrait toujours être possible d”installer à partir des sources.

## 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 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 https://www.sqlite.org/YYYY/sqlite-amalgamation-XXX0000.zip
    $ unzip sqlite-amalgamation-XXX0000.zip
    $ cd sqlite-amalgamation-XXX0000

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 https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-X.Y.Z.tar.gz
    $ tar xaf libspatialite-X.Y.Z.tar.gz
    $ cd libspatialite-X.Y.Z
    $ ./configure
    $ make
    $ sudo make install

Note

Pour les utilisateurs de macOS compilant à partir des sources, il faut configurer l’option `target` pour la bibliothèque et les outils SpatiaLite :

    $ ./configure --target=macosx

## Instructions spécifiques à macOS

Pour installer la bibliothèque et les outils SpatiaLite, les utilisateurs de macOS 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 Spatialite, le programme `spatialite` est requis. Cependant, au lieu d’essayer de compiler les outils SpatiaLite à partir des sources, téléchargez le paquet SpatiaLite Tools pour macOS et installez `spatialite` à un emplacement accessible dans votre chemin `PATH`. Par exemple :

    $ curl -O https://www.kyngchaos.com/files/software/frameworks/Spatialite_Tools-4.3.zip
    $ unzip Spatialite_Tools-4.3.zip
    $ cd Spatialite\ Tools/tools
    $ 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 SQLite, 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'