Instalación de bibliotecas geoespaciales

GeoDjango utiliza e/ínterfases para las siguientes bibliotecas geoespaciales de código abierto:

Programa

Descripción

Requerido

Supported Versions

GEOS

Motor de geometrías de código abierto

3.13, 3.12, 3.11, 3.10, 3.9, 3.8

PROJ

Biblioteca de proyecciones cartográficas

Sí (solo PostgreSQL y SQLite)

9.x, 8.x, 7.x, 6.x

GDAL

Geospatial Data Abstraction Library

3.10, 3.9, 3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1

GeoIP

Biblioteca de geolocalización basada en IP

No

2

`PostGIS`__

Extensiones espaciales para PostgreSQL

Sí (solo PostgreSQL)

3.4, 3.3, 3.2, 3.1

`SpatiaLite`__

Extensiones espaciales para SQLite

Sí (solo SQLite)

5.1, 5.0, 4.3

Ten en cuenta que versiones antiguas o más recientes de estas bibliotecas pueden funcionar perfectamente con GeoDjango. Tu experiencia puede variar.

Nota

Las interfaces de GeoDjango a GEOS, GDAL y GeoIP pueden usarse de forma independiente de Django. En otras palabras, no se requiere ninguna base de datos o archivo de configuración – importalas como normal desde django.contrib.gis.

En Debian/Ubuntu, te recomendamos instalar los siguientes paquetes que instalarán directamente o mediante dependencias las bibliotecas geoespaciales requeridas:

$ sudo apt-get install binutils libproj-dev gdal-bin

Por favor también consulta las instrucciones específicas de la plataforma si estás en macOS o Windows.

Compilación desde fuentes

Al instalar desde fuentes en sistemas UNIX y GNU/Linux, por favor sigue cuidadosamente las instrucciones de instalación y haz que se instalen las bibliotecas en el orden dado. Si estás utilizando MySQL o Oracle como base de datos espacial, solo es necesario GEOS.

Nota

En plataformas Linux puede ser necesario ejecutar el comando ldconfig después de instalar cada biblioteca. Por ejemplo:

$ sudo make install
$ sudo ldconfig

Nota

Los usuarios de macOS deben instalar Xcode para poder compilar software desde fuentes.

GEOS

GEOS es una biblioteca C++ para realizar operaciones geométricas, y es la representación interna de geometría por defecto utilizada por GeoDjango (está detrás de las «geometrías perezosas»). Específicamente, la biblioteca API C se llama directamente desde Python utilizando ctypes (por ejemplo, libgeos_c.so).

Primero, descarga GEOS desde el sitio web de GEOS y descomprime el archivo de fuentes:

$ wget https://download.osgeo.org/geos/geos-X.Y.Z.tar.bz2
$ tar xjf geos-X.Y.Z.tar.bz2

Luego, accede a la carpeta GEOS, crea una carpeta build, y accede a ella:

$ cd geos-X.Y.Z
$ mkdir build
$ cd build

Luego, construye e instala el paquete:

$ cmake -DCMAKE_BUILD_TYPE=Release ..
$ cmake --build .
$ sudo cmake --build . --target install

Solución de problemas

No se encuentra la biblioteca GEOS

Cuando GeoDjango no puede encontrar GEOS, se levanta este error:

ImportError: Could not find the GEOS library (tried "geos_c"). Try setting GEOS_LIBRARY_PATH in your settings.

La solución más común es configurar correctamente tus Configuración del entorno de biblioteca o establecer GEOS_LIBRARY_PATH en tus ajustes.

Si estás utilizando un paquete binario de GEOS (por ejemplo, en Ubuntu), puede que necesites Instala binutils.

GEOS_LIBRARY_PATH

Si tu biblioteca GEOS está en una ubicación no estándar o no deseas modificar el camino de la biblioteca del sistema, entonces se puede agregar la configuración GEOS_LIBRARY_PATH a tu archivo de configuración Django con el camino completo a la biblioteca C GEOS. Por ejemplo:

GEOS_LIBRARY_PATH = '/home/bob/local/lib/libgeos_c.so'

Nota

La configuración debe ser el path completo a la biblioteca compartida de C; es decir, quieres utilizar libgeos_c.so, no libgeos.so.

También consulta Mis registros están llenos de errores relacionados con GEOS.

PROJ

PROJ es una biblioteca para convertir datos geoespaciales a diferentes sistemas de referencia de coordenadas.

Primero, descarga el código fuente de PROJ:

$ wget https://download.osgeo.org/proj/proj-X.Y.Z.tar.gz

… y archivos de desplazamiento de datum (descarga proj-datumgrid-X.Y.tar.gz para PROJ < 7.x) [1]:

$ wget https://download.osgeo.org/proj/proj-data-X.Y.tar.gz

A continuación, descomprime el archivo de código fuente y extrae los archivos de desplazamiento de datum en la subcarpeta data. Esto debe hacerse antes de la configuración:

$ tar xzf proj-X.Y.Z.tar.gz
$ cd proj-X.Y.Z/data
$ tar xzf ../../proj-data-X.Y.tar.gz
$ cd ../..

Para PROJ 9.x y versiones posteriores, solo se admiten compilaciones utilizando CMake (consultar PROJ RFC-7).

Para compilar con CMake, asegúrate de que tu sistema cumpla con los requerimientos de compilación. Luego crea una carpeta build en el directorio PROJ y accede a ella:

$ cd proj-X.Y.Z
$ mkdir build
$ cd build

Finalmente, configura, haz y instala PROJ:

$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install

GDAL

`GDAL`__ es una excelente biblioteca geoespacial de código abierto que tiene soporte para leer la mayoría de formatos de datos espaciales vectoriales y raster. Actualmente, GeoDjango solo admite las capacidades de datos vectoriales de GDAL [2]. Debes instalar `geosbuild`__ y `proj4`__ antes de construir GDAL.

Primero descarga la versión más reciente de GDAL y descomprime el archivo:

$ wget https://download.osgeo.org/gdal/X.Y.Z/gdal-X.Y.Z.tar.gz
$ tar xzf gdal-X.Y.Z.tar.gz

Para GDAL 3.6.x y versiones posteriores, solo se admiten compilaciones utilizando CMake. Para compilar con CMake, crea un directorio build en el directorio GDAL y accede a él:

$ cd gdal-X.Y.Z
$ mkdir build
$ cd build

Finalmente, configura, compila y instala GDAL:

$ cmake ..
$ cmake --build .
$ sudo cmake --build . --target install

Si tienes algún problema, por favor consulta la sección de solución de problemas a continuación para sugerencias y soluciones.

Solución de problemas

No se encuentra la biblioteca GDAL

Cuando GeoDjango no puede encontrar la biblioteca GDAL, configura tus Configuración del entorno de biblioteca o establece GDAL_LIBRARY_PATH en tus configuraciones.

GDAL_LIBRARY_PATH

Si tu biblioteca GDAL está en una ubicación no estándar o no deseas modificar el camino de las bibliotecas del sistema, entonces la configuración `GDAL_LIBRARY_PATH`__ puede ser agregada a tu archivo de configuración Django con el camino completo a la biblioteca GDAL. Por ejemplo:

GDAL_LIBRARY_PATH = '/home/sue/local/lib/libgdal.so'

Notas al pie