Python + SQLite + ST_Geometry
SQLite是嵌入式的轻量级数据库,ArcMap可以建立SQLite数据库,并配合ST_Geometry直接对数据库中的空间数据进行操作,
为了可以更加灵活的编写SQL语言,使用Python调用SQLite。
参考ArcGIS的帮助文档,SQLite要使用ST_Geometry对数据进行处理,需要加载stgeometry_sqlite.dll组件
为了将空间属性字段(ST_Geometry类型)加入到数据库中,还需要调用CreateOGCTables()函数
在PyCharm中建立Python代码如下:因为使用的是64位的Python,所以调用了Windows64的stgeometry_sqlite.dll组件。
运行代码提示错误,原因是没有权限
修改将上述代码,添加 conn.enable_load_extension(True),开启加入扩展组件的权限,并运行代码。
运行代码提示错误,原因是找不到指定模块,但是stgeometry_sqlite.dll模块的路径正确,不存在模块没有找到,终于得知解决办法。
代码中import sqlite3是调用的Python自带的sqlite3.dll模块,如下图所示,但是这个sqlite3.dll模块只满足了SQLite基础功能
笔者从网上下了sqlite3.exe,https://www.sqlite.org/download.html
解压上下面的zip文件,sqlite-tools-win32-x86-3300100.zip中的sqlite3.exe是官方提供的SQL编辑器,
将sqlite-dll-win64-x64-3300100.zip中的文件解压,放入sqlite-tools-win32-x86-3300100文件中,sqlite3.exe就可以使用64位的SQLite了。
将上述sqlite-dll-win64.x64-3300100.zip解压后的sqlite3.dll文件,替换Python自带的sqlite3.dll(将Python自带的重命名为sqlite3_old.dll),对比文件大小,可以明显看到差异。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)