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'
GEOS and PROJ.4应在构建SpatiaLite之前安装。
首先检查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 ..
libspatialite
)¶$ 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
要安装SpatiaLite库和工具,macOS用户可以在KyngChaos packages和Homebrew之间进行选择。
首先,按照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'
2017年9月6日