Installera geospatiala bibliotek

GeoDjango använder och/eller tillhandahåller gränssnitt för följande geospatiala bibliotek med öppen källkod:

Program

Beskrivning

Obligatorisk

Versioner som stöds

GEOS

Geometry Engine Open Source

Ja

3.13, 3.12, 3.11, 3.10, 3.9, 3.8

PROJ

Bibliotek för kartografiska projektioner

Ja (endast PostgreSQL och SQLite)

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

GDAL

Bibliotek för abstraktion av geospatiala data

Ja

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

GeoIP

IP-baserat bibliotek för geolokalisering

Nej

2

`PostGIS`____

Rumsliga tillägg för PostgreSQL

Ja (endast PostgreSQL)

3.4, 3.3, 3.2, 3.1

SpatiaLite

Spatiala tillägg för SQLite

Ja (endast SQLite)

5.1, 5.0, 4.3

Observera att äldre eller nyare versioner av dessa bibliotek kan också fungera helt bra med GeoDjango. Din körsträcka kan variera.

Observera

GeoDjango-gränssnitten till GEOS, GDAL och GeoIP kan användas oberoende av Django. Med andra ord, ingen databas eller inställningsfil krävs - importera dem som vanligt från django.contrib.gis.

På Debian/Ubuntu rekommenderas att du installerar följande paket som installerar, direkt eller genom beroenden, de nödvändiga geospatiala biblioteken:

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

Se även plattformsspecifika instruktioner om du använder macOS eller Fönster.

Bygga från källan

Vid installation från källkod på UNIX- och GNU/Linux-system, följ installationsanvisningarna noggrant och installera biblioteken i angiven ordning. Om du använder MySQL eller Oracle som spatial databas krävs endast GEOS.

Observera

På Linux-plattformar kan det vara nödvändigt att köra kommandot ldconfig efter att varje bibliotek har installerats. Ett exempel:

$ sudo make install
$ sudo ldconfig

Observera

macOS-användare måste installera Xcode för att kunna kompilera programvara från källan.

GEOS

GEOS är ett C++-bibliotek för att utföra geometriska operationer och är den interna standardgeometrirepresentationen som används av GeoDjango (den ligger bakom de ”lata” geometrierna). Specifikt anropas C API-biblioteket (t.ex. libgeos_c.so) direkt från Python med hjälp av ctypes.

Först laddar du ner GEOS från GEOS webbplats och avtar källarkivet:

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

Gå sedan in i GEOS-katalogen, skapa en build-mapp och gå in i den:

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

Bygg sedan och installera paketet:

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

Felsökning

Kan inte hitta GEOS-biblioteket

När GeoDjango inte kan hitta GEOS utlöses detta fel:

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

Den vanligaste lösningen är att korrekt konfigurera din Inställningar för biblioteksmiljö eller ange GEOS_BIBLIOTEK_ SÖKVÄG i dina inställningar.

Om du använder ett binärt paket av GEOS (t.ex. på Ubuntu) kan du behöva Installera binutils.

GEOS_BIBLIOTEK_ SÖKVÄG

Om ditt GEOS-bibliotek finns på en plats som inte är standard, eller om du inte vill ändra systemets bibliotekssökväg, kan inställningen GEOS_LIBRARY_PATH läggas till i din Django-inställningsfil med den fullständiga sökvägen till GEOS C-biblioteket. Till exempel:

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

Observera

Inställningen måste vara den fullständiga sökvägen till det delade C-biblioteket; med andra ord vill du använda libgeos_c.so, inte libgeos.so.

Se även Mina loggar är fyllda med GEOS-relaterade fel.

PROJ

PROJ är ett bibliotek för konvertering av geospatiala data till olika koordinatreferenssystem.

Först laddar du ner PROJ-källkoden:

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

… och datumskiftningsfiler (ladda ner proj-datumgrid-X.Y.tar.gz för PROJ < 7.x) [1]:

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

Ta sedan fram källkodsarkivet och extrahera datumskiftfilerna i underkatalogen data. Detta måste göras förut för konfigurationen:

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

För PROJ 9.x och senare stöder utgåvorna endast byggande med CMake (se PROJ RFC-7).

För att bygga med CMake måste du se till att ditt system uppfyller build requirements. Skapa sedan en build-mapp i PROJ-katalogen och gå in i den:

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

Slutligen ska du konfigurera, skapa och installera PROJ:

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

GDAL

GDAL är ett utmärkt geospatialt bibliotek med öppen källkod som har stöd för att läsa de flesta vektor- och rasterformat för spatiala data. För närvarande stöder GeoDjango endast GDAL:s vektordata-funktioner [2]. GEOS och PROJ bör installeras innan GDAL byggs.

Ladda först ner den senaste versionen av GDAL och öppna arkivet:

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

För GDAL 3.6.x och senare stöder utgåvorna endast byggande med CMake. Om du vill bygga med CMake skapar du en build-mapp i GDAL-katalogen och går in i den:

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

Slutligen ska du konfigurera, skapa och installera GDAL:

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

Om du har några problem, se felsökningsavsnittet nedan för förslag och lösningar.

Felsökning

Hittar inte GDAL-biblioteket

När GeoDjango inte kan hitta GDAL-biblioteket, konfigurera din Inställningar för biblioteksmiljö eller ange GDAL_BIBLIOTEK_VÄG i dina inställningar.

GDAL_BIBLIOTEK_VÄG

Om ditt GDAL-bibliotek finns på en plats som inte är standard, eller om du inte vill ändra systemets bibliotekssökväg, kan inställningen GDAL_LIBRARY_PATH läggas till i din Django-inställningsfil med den fullständiga sökvägen till GDAL-biblioteket. Till exempel:

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

Fotnoter