# 市政标高小助手 **Repository Path**: prococu/municipal-elevation-assistant ## Basic Information - **Project Name**: 市政标高小助手 - **Description**: 市政标高小助手”是一款面向市政道路设计、施工复核和标高查询的小工具。最终目标平台是微信小程序,当前阶段先开发本地验证程序,把鸿业道路纵断面、横断面数据解析和高程查询规则跑通。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-05 - **Last Updated**: 2026-05-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 市政标高小助手 - 本地原型 这是“市政标高小助手”的第一版本地原型,用于先跑通道路横断面、纵断面数据导入和任意位置高程查询。 项目会面向微信小程序继续演进。核心解析和高程计算代码放在 `shared/wechat_core/`,小程序页面原型放在 `miniprogram/`,云函数原型放在 `cloudfunctions/`。Python 图形界面只是本地验证工具。 ## 技术栈 - Python 3.13 - PySide6:本地图形界面 - openpyxl:读取 `.xlsx` 文件 - Node.js:微信云函数同类运行环境 - 微信小程序原生框架 + 云开发 CloudBase:后续正式平台 后续迁移到微信小程序时,以 `shared/wechat_core/` 的 JavaScript 核心为准,Python 代码只用于本地验证和对照。 ## 当前功能 - 导入鸿业 `.bgs` 纵断面变坡点文件,按竖曲线半径计算设计高程 - 导入鸿业 `.hdm` 横断面模板文件,查看每段横断面构成 - 输入桩号查询纵断面中心线设计高程 - 输入桩号和距离,查询横断面任一点高程 - 横断面查询支持四种输入方式: - 左边界起算 N 米 - 右边界起算 N 米 - 中心线左偏 N 米 - 中心线右偏 N 米 ## 运行方式 打开图形界面: ```powershell cd C:\Users\A\Desktop\市政标高小助手 python -m municipal_elevation_assistant ``` 使用步骤: 1. 点击“导入纵断面”,选择 `.bgs` 文件。 2. 点击“导入横断面”,选择 `.hdm` 文件。 3. 在右侧“横断面构成”下拉框中选择要查看的区间。 4. 输入桩号、选择距离方式、输入距离。 5. 点击“横断面查询”。 命令行查询纵断面高程: ```powershell python -m municipal_elevation_assistant.query "data\鹊华大道西段\鹊华大道西段(衔接东侧建成段)纵断面.bgs" K0+100 ``` 验证微信侧核心算法: ```powershell node tests\query_bgs.js node tests\query_hdm.js ``` ## HDM 解析约定 当前 `.hdm` 样例按以下规则解释: - 每个 `K...` 是一个横断面模板控制桩号。 - `Left/Right` 后的明细行描述从中心线向外的构成段。 - 第 1 列:构成类型。 - 第 2 列:宽度,单位 m。 - 第 3 列:横坡,单位 %。 - 查询任意桩号时,使用该桩号所在区间的横断面模板。 - 横断面点高程 = 纵断面中心线设计高程 + 横断面相对高差。 如果后续确认鸿业 `.hdm` 其他列包含缘石、台阶、超高等额外高差,可以继续把这些细部规则加入计算模型。 ## 后续迁移到微信小程序 建议第二阶段拆为: - 小程序端:项目管理、文件选择、上传、查询界面 - 云函数:文件解析、纵断面查询、横断面查询、导出 - 云数据库:项目、原始文件、纵断面点、横断面模板 - 云存储:保存用户上传的原始文件 详细小程序演进说明见 `docs/wechat_mini_program_plan.md`。