安裝地理空間函式庫

GeoDjango 使用和/或提供以下開源地理空間函式庫的介面

程式

說明

必要

支援的版本

GEOS

Geometry Engine Open Source (開源幾何引擎)

3.12, 3.11, 3.10, 3.9, 3.8

PROJ

製圖投影函式庫

是 (僅限 PostgreSQL 和 SQLite)

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

GDAL

Geospatial Data Abstraction Library (地理空間資料抽象化函式庫)

3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0

GeoIP

基於 IP 的地理位置函式庫

2

PostGIS

PostgreSQL 的空間擴展

是 (僅限 PostgreSQL)

3.4, 3.3, 3.2, 3.1, 3.0

SpatiaLite

SQLite 的空間擴展

是 (僅限 SQLite)

5.1, 5.0, 4.3

請注意,這些函式庫的較舊或較新版本也可能完全適用於 GeoDjango。您的使用情況可能會有所不同。

注意

GeoDjango 與 GEOS、GDAL 和 GeoIP 的介面可以獨立於 Django 使用。換句話說,不需要資料庫或設定檔 – 將它們從 django.contrib.gis 導入即可。

在 Debian/Ubuntu 上,建議您安裝以下套件,它們將直接或透過依賴項安裝必要的地理空間函式庫

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

如果您使用 macOSWindows,也請參考特定平台的說明。

從原始碼建置

在 UNIX 和 GNU/Linux 系統上從原始碼安裝時,請仔細遵循安裝說明,並按照給定的順序安裝函式庫。如果使用 MySQL 或 Oracle 作為空間資料庫,則只需要 GEOS。

注意

在 Linux 平台上,在安裝每個函式庫後,可能需要執行 ldconfig 命令。例如

$ sudo make install
$ sudo ldconfig

注意

macOS 使用者必須安裝 Xcode 才能從原始碼編譯軟體。

GEOS

GEOS 是一個 C++ 函式庫,用於執行幾何運算,並且是 GeoDjango 使用的預設內部幾何表示法(它在「惰性」幾何體背後)。具體來說,C API 函式庫(例如,libgeos_c.so)是使用 ctypes 直接從 Python 呼叫。

首先,從 GEOS 網站下載 GEOS 並解壓縮原始碼封存檔

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

然後進入 GEOS 目錄,建立一個 build 資料夾,並進入該資料夾

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

然後建置並安裝套件

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

疑難排解

找不到 GEOS 函式庫

當 GeoDjango 找不到 GEOS 時,會引發此錯誤

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

最常見的解決方案是正確設定您的 函式庫環境設定 在您的設定中設定 GEOS_LIBRARY_PATH

如果使用 GEOS 的二進位套件 (例如,在 Ubuntu 上),您可能需要安裝 binutils

GEOS_LIBRARY_PATH

如果您的 GEOS 函式庫位於非標準位置,或者您不想修改系統的函式庫路徑,則可以使用 GEOS C 函式庫的完整路徑,將 GEOS_LIBRARY_PATH 設定新增至您的 Django 設定檔中。例如

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

注意

此設定必須是 C 共用函式庫的完整路徑;換句話說,您要使用 libgeos_c.so,而不是 libgeos.so

另請參閱 我的記錄檔中充滿了與 GEOS 相關的錯誤

PROJ

PROJ 是一個用於將地理空間資料轉換為不同座標參考系統的函式庫。

首先,下載 PROJ 原始碼

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

… 以及基準偏移檔案 (針對 PROJ < 7.x 下載 proj-datumgrid-X.Y.tar.gz) [1]

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

接下來,解壓縮原始碼封存檔,並將基準偏移檔案解壓縮到 data 子目錄中。這必須在設定之前完成

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

對於 PROJ 9.x 及更高版本,版本僅支援使用 CMake 進行建置 (請參閱 PROJ RFC-7)。

若要使用 CMake 建置,請確保您的系統符合建置需求。然後在 PROJ 目錄中建立一個 build 資料夾,並進入該資料夾

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

最後,設定、製作和安裝 PROJ

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

GDAL

GDAL 是一個極佳的開源地理空間函式庫,支援讀取大多數向量和柵格空間資料格式。目前,GeoDjango 僅支援 GDAL 的向量資料 功能 [2]GEOSPROJ 應在建置 GDAL 之前安裝。

首先,下載最新的 GDAL 發行版本並解壓縮封存檔

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

對於 GDAL 3.6.x 及更高版本,版本僅支援使用 CMake 進行建置。若要使用 CMake 建置,請在 GDAL 目錄中建立一個 build 資料夾,並進入該資料夾

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

最後,設定、製作和安裝 GDAL

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

如果您有任何問題,請參閱下面的疑難排解章節以取得建議和解決方案。

疑難排解

找不到 GDAL 函式庫

當 GeoDjango 找不到 GDAL 函式庫時,請設定您的 函式庫環境設定 在您的設定中設定 GDAL_LIBRARY_PATH

GDAL_LIBRARY_PATH

如果您的 GDAL 函式庫位於非標準位置,或者您不想修改系統的函式庫路徑,則可以使用 GDAL 函式庫的完整路徑,將 GDAL_LIBRARY_PATH 設定新增至您的 Django 設定檔中。例如

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

腳註

返回頂部