前言

最近在做安卓开发,一直涉及到空间数据的存储,安卓是使用了spatialite-android封装好的jar包去操作sqlite数据库,但是把sqlite拷贝出来后用navicate打开后反而无法直接进行那些空间函数的使用。


一、spatialite是什么

spatialite是在sqlite的外部再包了一层空间数据的封装。

二、使用步骤

1.下载spatialite

下载地址
网址界面如下图,32位电脑就下载32的版本,64就下载64位的版本,我也不知道为什么64位后面要加个amd。
在这里插入图片描述

2.解压压缩包

下载完成后解压代码压缩包,会得到许多dll文件。
在这里插入图片描述

3.将所有的dll迁移

可能并不需要所有的dll,但我为了方便省事,直接全部复制了。将所有的文件迁移到navicate的安装目录。例如:D:\Program Files\PremiumSoft\Navicat Premium 17,这是我本地的安装目录。可自行替换。

4.激活mod_spatialite.dll

使用navicate打开你本地的sqlite文件,可能需要注意sqlite的版本,低版本的sqlite不一定支持高版本的spatialite。大家可以使用下面的sql进行查询,查询自己的sqlite版本是多少。本人sqlite版本为3.45.0

SELECT sqlite_version();

打开sqlite之后执行

SELECT load_extension('mod_spatialite.dll');

开始网上很多教程都是让人使用绝对路径去使用这个dll, 例如:

SELECT load_extension('D:\mod\mod_spatialite.dll');

不确定是不是我路径有问题,或者拼写有问题,一直报错找不到模块,后续还是直接迁移dll到navicate安装目录才能一次性成功。大家有兴趣的可以接着试试采用绝对路径的方式,看看能否成功,成功了的话可以给我留言。

执行完加载mod_spatialite.dll没有错误的情况下进行执行。

SELECT spatialite_version();

成功之后返回spatialite版本号。然后就可以使用一些空间函数去操作数据库了。
在这里插入图片描述

总结

以上就是在navicate中加载sqlite的spatialite扩展方式了,有一点不好的地方在于每次使用都需要重新加载,并不能一劳永逸。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐