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 |
---|---|---|---|
Geometry Engine Open Source |
Ja |
3.13, 3.12, 3.11, 3.10, 3.9, 3.8 |
|
Bibliotek för kartografiska projektioner |
Ja (endast PostgreSQL och SQLite) |
9.x, 8.x, 7.x, 6.x |
|
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 |
|
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 |
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
.
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