@dsh-gis/dsh-gis-gdal
v0.1.0
Published
GDAL and QGIS integration: binary detection, confined execution, and the settings that make system environment variables unnecessary
Readme
@dsh-gis/dsh-gis-gdal
GDAL 与 QGIS 的对接层:探测二进制、在沙箱里受限执行,并提供那套让系统环境变量变得不必要的设置。 用户装上 OSGeo4W 或 QGIS、在插件里告诉它路径就结束了 —— 配置目录被 PREPEND 到子进程的 PATH,环境里原有的 PATH 保留在其后。
dsh-gis 的一部分:给 DeepSeek Harness 的 GIS 能力插件(读空间数据、画地图卡片、查询、CRS 换算、OGC 服务)。
安装
通常是随 bundle 一起装进来的:
dsh plugin --profile <profile> add @dsh-gis/dsh-gis然后把 @dsh-gis/dsh-gis 加进 profile 的 dsh.profile.bundles 并重启 dsh。
单独挂这一行(而不是 bundle)时,才需要显式 add 这个包本身。
这一层做什么
- 发布
ctx.gisRuntime:探测 gdalinfo/ogrinfo/ogr2ogr 与 qgis_process 的版本和目录;探测从不抛错、也不阻塞启动,没装 GDAL 是受支持的配置。 gis_doctor工具报告这台机器上 GDAL/QGIS 到底能不能跑、跑不了的原因,以及实际交给子进程的 PATH。- 配置目录被前置到子进程 PATH,
extraEnv逐行以KEY=VALUE追加:不必再改系统的 PATH、GDAL_DATA 或 PROJ_LIB。外部程序只经 spawn 执行,argv 绝不经过 shell,cwd总是显式传入,并受沙箱约束。 - GDAL handler 用 ogrinfo 拿到真实 EPSG 码(PROJ 数据库),补上纯 JS 的
.prj解析给不出的 CRS;要素经 ogr2ogr -f GeoJSON 后由同一个 GeoJSON reader 解析。 - 打开文件地理数据库
.gdb(全图层;读门槛 GDAL 1.11,写门槛 3.6 在本版只做诊断)与 GeoTIFF/COG 栅格;COG 由浏览器按 Range 直接读,因此自成一类。 gis_cog把栅格转成 Cloud-Optimized GeoTIFF:作为后台任务运行(有进度、可取消),先查缓存配额再动 GDAL,同一文件第二次调用直接命中缓存。
许可
MIT(见 LICENSE 与 THIRD_PARTY_NOTICES.md)。
