安装SpatiaLite

SpatiaLite向SQLite添加了空间支持,将其转换为全功能空间数据库。

首先,检查是否可以从系统包或二进制文件安装SpatiaLite。

例如,在基于Debian的发行版上,尝试安装spatialite-bin包。 对于包装SpatiaLite 4.2+的发行版,请安装libsqlite3-mod-spatialite

对于macOS,请按照下面的instructions below

对于Windows,您可以在Gaia-SINS主页上找到二进制文件。

无论如何,您应始终能够install from source

SpatiaLite 4.2+所需的SPATIALITE_LIBRARY_PATH设置

如果您使用SpatiaLite 4.2+,您必须将其放在您的设置中:

SPATIALITE_LIBRARY_PATH = 'mod_spatialite'

Installing from source

GEOS and PROJ.4应在构建SpatiaLite之前安装。

SQLite

首先检查SQLite是否使用R * Tree模块编译。 运行sqlite3命令行界面并输入以下查询:

sqlite> CREATE VIRTUAL TABLE testrtree USING rtree(id,minX,maxX,minY,maxY);

如果您获得错误,您将必须从源重新编译SQLite。 否则,只需跳过此部分。

要从源安装,请从SQLite下载页面下载最新的合并源归档文件,然后解压缩:

$ wget https://sqlite.org/sqlite-amalgamation-3.6.23.1.tar.gz
$ tar xzf sqlite-amalgamation-3.6.23.1.tar.gz
$ cd sqlite-3.6.23.1

接下来,运行configure脚本 - 但是需要定制CFLAGS环境变量,以便SQLite知道构建R * Tree模块:

$ CFLAGS="-DSQLITE_ENABLE_RTREE=1" ./configure
$ make
$ sudo make install
$ cd ..

SpatiaLite库(libspatialite

下载页面获取最新的SpatiaLite库源码包

$ wget https://www.gaia-gis.it/gaia-sins/libspatialite-sources/libspatialite-4.1.0.tar.gz
$ tar xaf libspatialite-4.1.0.tar.gz
$ cd libspatialite-4.1.0
$ ./configure
$ make
$ sudo make install

对于从源代码构建的macOS用户,SpatiaLite库工具需要配置target

$ ./configure --target=macosx

macOS特定指令

要安装SpatiaLite库和工具,macOS用户可以在KyngChaos packagesHomebrew之间进行选择。

KyngChaos

首先,按照KyngChaos packages部分中的说明进行操作。

创建SpatiaLite数据库时,需要spatialite程序。 However, instead of attempting to compile the SpatiaLite tools from source, download the SpatiaLite Binaries for macOS, and install spatialite in a location available in your PATH. 像这样:

$ curl -O https://www.gaia-gis.it/spatialite/spatialite-tools-osx-x86-2.3.1.tar.gz
$ tar xzf spatialite-tools-osx-x86-2.3.1.tar.gz
$ cd spatialite-tools-osx-x86-2.3.1/bin
$ sudo cp spatialite /Library/Frameworks/SQLite3.framework/Programs

最后,要让GeoDjango能够找到KyngChaos SpatiaLite库,请将以下内容添加到您的settings.py

SPATIALITE_LIBRARY_PATH='/Library/Frameworks/SQLite3.framework/SQLite3'

Homebrew

Homebrew代表您处理所有与SpatiaLite相关的软件包,包括SQLite3,SpatiaLite,PROJ和GEOS。 安装它们这样:

$ brew update
$ brew install spatialite-tools
$ brew install gdal

最后,要让GeoDjango能够找到SpatiaLite库,请将以下内容添加到您的settings.py

SPATIALITE_LIBRARY_PATH='/usr/local/lib/mod_spatialite.dylib'