安裝地理空間函式庫¶
GeoDjango 使用和/或提供以下開源地理空間函式庫的介面
程式 |
說明 |
必要 |
支援的版本 |
---|---|---|---|
Geometry Engine Open Source (開源幾何引擎) |
是 |
3.12, 3.11, 3.10, 3.9, 3.8 |
|
製圖投影函式庫 |
是 (僅限 PostgreSQL 和 SQLite) |
9.x, 8.x, 7.x, 6.x |
|
Geospatial Data Abstraction Library (地理空間資料抽象化函式庫) |
是 |
3.8, 3.7, 3.6, 3.5, 3.4, 3.3, 3.2, 3.1, 3.0 |
|
基於 IP 的地理位置函式庫 |
否 |
2 |
|
PostgreSQL 的空間擴展 |
是 (僅限 PostgreSQL) |
3.4, 3.3, 3.2, 3.1, 3.0 |
|
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
如果您使用 macOS 或 Windows,也請參考特定平台的說明。
從原始碼建置¶
在 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]。GEOS 和 PROJ 應在建置 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'
腳註