Skip to content

v1.0.9

Choose a tag to compare

@github-actions github-actions released this 26 Mar 16:09
· 14 commits to main since this release
feat: 新增 slib 符号库解析与导出支持 (v1.0.9)

主要变更:

1. 新增 slib_parser.py 模块
   - 逆向解析 Subgraph.lib(点符号)、Fillgrph.lib(面填充)、LINESTY.lib(线型)三种符号库
   - 修复 LINESTY.lib 解析中的无限循环 bug:使用有效偏移排序表计算精确记录边界,
     防止乱序/重用偏移导致的 n_subdirs 爆炸性计算
   - 提供 SlibDirectory 类,支持按点/线/面符号 ID 查找符号几何与元数据

2. 修正 pymapgis.py 中 WL 线要素属性解析字节偏移(_parse_line_info)
   - 原代码存在 2 字节错位,导致线型号、颜色、线宽等字段读取错误
   - 修正后正确解析:线型号(bytes 20-21)、辅助线号(22)、覆盖方式(23)、
     线颜色(24-27)、线宽(28-31)、线种类(32)、X/Y系数(33-40)、辅助色(41-44)、图层(45-48)

3. pymapgis.py 集成 slib 支持
   - MapGisReader.__init__ 新增 slib_dir 参数,加载 SlibDirectory
   - 新增 _apply_slib() 方法:为 GeoDataFrame 附加 7 个符号字段
     (sl_lib / sl_id / sl_type / sl_aux / sl_cov / sl_parts / sl_ok)
   - to_file() 自动写出同名 .slib.json 伴随文件(含每要素完整符号信息)
   - _sanitize_field_names() 补充新 WL 字段及 slib 字段的英文映射

4. main.py 新增 slib 界面控件
   - 转换配置面板新增「slib 符号库(可选)」分组,含文件夹选择与清除按钮
   - 选择后校验目录内是否存在 .lib 文件,并在配置日志中显示路径
   - ConvertThread 透传 slib_dir 至 MapGisReader
   - 转换完成后在日志中显示 slib 应用状态及 JSON 伴随文件名
   - 不选择 slib 时行为与之前完全一致,无任何输出差异