安装地理空间库

geodjango使用和/或为以下开源地理空间库提供接口:

程序

描述

要求的

支持的版本

GEOS

几何引擎开源

是的

3.12、3.11、3.10、3.9、3.8

PROJ

地图投影库

是(仅限PostgreSQL和SQLite)

9.x、8.x、7.x、6.x、5.x

GDAL

采用空间数据抽象库

是的

3.7、3.6、3.5、3.4、3.3、3.2、3.1、3.0、2.4

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

请注意,这些库的旧版本或更新版本 may 也可以和吉昂哥一起工作。您的里程可能会有所不同。

备注

GeoDjango到GEOS、GDAL和GeoIP的接口可以独立于Django使用。换句话说,不需要数据库或设置文件——从 django.contrib.gis .

在Debian/Ubuntu上,建议您安装以下软件包,这些软件包将直接或通过依赖关系安装所需的地理空间库:

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

如果您在 马科斯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 )直接从python使用ctypes。

首先,从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.

最常见的解决方案是正确配置 库环境设置 or 设置 GEOS_LIBRARY_PATH 在您的设置中。

如果使用geos的二进制包(例如,在Ubuntu上),您可能需要 安装 binutils .

GEOS_LIBRARY_PATH

如果您的GEOS库位于非标准位置,或者您不想修改系统的库路径,则 GEOS_LIBRARY_PATH 可以使用GEOS C库的完整路径将设置添加到您的Django设置文件中。例如:

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

备注

设置必须是 full 路径到 C 共享库;换句话说,您要使用 libgeos_c.so 不是 libgeos.so .

也见 My logs are filled with GEOS-related errors .

PROJ

PROJ 是用于将地理空间数据转换为不同坐标参考系统的库。

首先,下载项目源代码:

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

..。和基准移动文件(下载 proj-datumgrid-X.Y.tar.gz 对于低于7.x的项目) [1]:

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

接下来,解压源代码归档文件,并解压 data 子目录(使用 nad <6.x的项目的子目录)。这是必须做的 prior 要配置:

$ 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 确保您的系统符合 build requirements 。然后创建一个 build 文件夹,然后进入该文件夹:

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

最后,配置、制作和安装项目:

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

GDAL

GDAL _是一个优秀的开源地理空间库,支持读取大多数矢量和栅格空间数据格式。目前,geodjango只支持 GDAL's vector data 能力 [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 创建一个 build GDAL目录中的文件夹,并进入该文件夹:

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

最后,配置、制作和安装GDAL:

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

如果您有任何问题,请参阅下面的故障排除部分以获取建议和解决方案。

故障排除

找不到gdal库

当geodjango找不到gdal库时,配置 库环境设置 or 设置 GDAL_LIBRARY_PATH 在您的设置中。

GDAL_LIBRARY_PATH

如果您的GDAL库位于非标准位置,或者您不想修改系统的库路径,则 GDAL_LIBRARY_PATH 可以将设置添加到Django设置文件中,其中包含GDAL库的完整路径。例如:

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

脚注