Installera geospatiala bibliotek¶
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.14, 3.13, 3.12, 3.11, 3.10 |
|
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.13, 3.12, 3.11, 3.10, 3.9, 3.8, 3.7, 3.6, 3.5, 3.4, 3.3 |
|
IP-baserat bibliotek för geolokalisering |
Nej |
2 |
|
`PostGIS`____ |
Rumsliga tillägg för PostgreSQL |
Ja (endast PostgreSQL) |
3.6, 3.5, 3.4, 3.3, 3.2 |
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 behövs ingen databas eller inställningsfil – importera dem normalt 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 ska installationsanvisningarna följas noggrant och biblioteken installeras i angiven ordning. Om MySQL eller Oracle används 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 standardrepresentationen för geometri som används av GeoDjango (det ligger bakom de ”lata” geometrierna). Närmare bestämt anropas C API-biblioteket (t.ex. libgeos_c.so) direkt från Python med 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 GEOS-biblioteket finns på en plats som inte är standard, eller om du inte vill ändra systemets biblioteksökväg, kan inställningen GEOS_LIBRARY_PATH läggas till i Djangos inställningsfil med den fullständiga sökvägen till C-biblioteket GEOS. 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 stöder läsning av de flesta spatiala dataformat för vektor och raster. För närvarande stöder GeoDjango endast GDAL:s vektordatakapacitet [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 -DCMAKE_BUILD_TYPE=Release ..
$ 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 GDAL-biblioteket finns på en plats som inte är standard, eller om du inte vill ändra systemets biblioteksökväg, kan inställningen GDAL_LIBRARY_PATH läggas till i Djangos inställningsfil med den fullständiga sökvägen till GDAL-biblioteket. Till exempel:
GDAL_LIBRARY_PATH = '/home/sue/local/lib/libgdal.so'
Fotnoter