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

GEOS

Geometry Engine Open Source

Ja

3.14, 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.11, 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.5, 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

The GeoDjango interfaces to GEOS, GDAL, and GeoIP may be used independently of Django. In other words, no database or settings file required – import them as normal from 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

When installing from source on UNIX and GNU/Linux systems, please follow the installation instructions carefully, and install the libraries in the given order. If using MySQL or Oracle as the spatial database, only GEOS is required.

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 is a C++ library for performing geometric operations, and is the default internal geometry representation used by GeoDjango (it’s behind the ”lazy” geometries). Specifically, the C API library is called (e.g., libgeos_c.so) directly from Python using 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

If your GEOS library is in a non-standard location, or you don’t want to modify the system’s library path then the GEOS_LIBRARY_PATH setting may be added to your Django settings file with the full path to the GEOS C library. For example:

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 is an excellent open source geospatial library that has support for reading most vector and raster spatial data formats. Currently, GeoDjango only supports GDAL’s vector data capabilities [2]. GEOS and PROJ should be installed prior to building GDAL.

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

If your GDAL library is in a non-standard location, or you don’t want to modify the system’s library path then the GDAL_LIBRARY_PATH setting may be added to your Django settings file with the full path to the GDAL library. For example:

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

Fotnoter