CONTROL SURVEY SOFTWARE

控制测量基本计算系统

涵盖前方交会、后方交会、侧方交会、单三角形、完全三角形、导线测量、三角高程、水准测量、两点间信息——共 9 大控制测量计算模块的一体化桌面软件。

VERSION 1.0 · WINDOWS · 测量坐标系: X 轴北 · Y 轴东 · 方位角顺时针

1 软件概述

本软件是面向测绘工程技术人员、院校师生与工程管理人员的 控制测量计算工具集。在单个主窗体中通过 9 个选项卡实现常用控制测量计算功能。

精密水准测量对中整平
图:精密水准测量对中整平(控制测量外业作业规范操作)
📍

前方交会

已知两控制点 A、B 坐标及在该两点对 P 点的水平角 α、β,求 P 点平面坐标。

🎯

后方交会

在待求点 P 观测三个已知点 A、B、C 的水平夹角 α、β,由余切公式求解 P 点坐标。

↗️

侧方交会

在一个已知点与待求点各观测一个水平角,由正弦定理推出待求点坐标。

单三角形

已知两个三角点坐标及观测角 α、β,由正弦定理计算第三点坐标及边长。

完全三角形

在 P 点观测三已知点 A、B、C 的三方向夹角 α、β、γ,由三点加权方法求得 P 点。

导线测量

支持附合/闭合导线。输入起点坐标、起始方位角、各边水平距离与转折角,自动坐标推算。

📐

三角高程

由水平距离、垂直角、仪器高、棱镜高,按 D×tan(α)+i−v 计算高差与高程。

🧭

水准测量

附合/闭合水准路线,后前视读数计算测段高差,按距离或测站数分配闭合差。

两点间信息

坐标增量、水平距离、方位角/反方位角、象限角、高差、中点坐标 — 一站式查询。

1.1 坐标系约定

X 轴 = 北方向(+) // X 坐标增大表示点位向北 Y 轴 = 东方向(+) // Y 坐标增大表示点位向东 方位角 α = 从北方向顺时针量至目标方向的水平角 ( 0° ~ 360° ) 象限角 R = 从北或南方向量至目标方向的锐角 ( 0° ~ 90° )

1.2 硬件与系统要求

操作系统Windows 7 及以上
屏幕分辨率建议 1280 × 800 及以上
磁盘占用约 90 MB

2 快速上手

2.1 启动与主界面

  1. 双击 SurveyApplication.exe 启动程序,主窗体即刻显示。
  2. 窗体顶部为标题栏;中部为 9 个选项卡,从左到右依次为:
    • 前方交会 → 后方交会 → 侧方交会 → 单三角形 → 完全三角形 → 导线 → 三角高程 → 水准测量 → 两点间信息
  3. 每个选项卡左侧为 输入区,右侧为 结果输出区

2.2 通用操作流程

  1. 在左侧输入框中填入已知数据(坐标、角度、距离等)。
  2. 点击 计算 / 计算 P 点坐标 / 计算高程 / 计算两点信息 按钮。
  3. 右侧 RichTextBox 内将输出详细的计算过程、中间量及最终结果。
  4. 如需重新输入,点击 清空 / 清空结果 清除输出区。

2.3 数据输入规范

数据类型单位格式样例说明
平面坐标米 (m)5237.6820小数位 0~4 位均可,整数自动补 4 位
高程米 (m)128.536支持负号,小数点后建议保留 3~4 位
距离 / 边长米 (m)285.347必须为正数
水平角 / 垂直角度 (°)63.542863°32′34″两种格式均可,详见第三章
测站数整数15用于水准测量按测站分配闭合差

3 角度输入格式

所有角度输入框均支持两种格式,程序自动识别。结果输出时会同时显示 度°分′秒″十进制度 两种格式,便于核对。

3.1 格式 A — 十进制度

63.5428整数度 . 十进制度小数
180整数度
-15.25负角度(自动取绝对值)

3.2 格式 B — 度°分′秒″

63°32′34″标准 DMS 全角符号
63°32'34"英文单双引号亦可
63 32 34空格分隔(度 分 秒)
💡 小技巧:角度计算严格按照国际单位弧度进行,输入角度经统一转换后参与计算,输出时再还原为度/分/秒格式,避免累积误差。

3.3 角度与方位角的区别

名称定义取值范围使用场景
水平角两方向线在水平面的夹角0° ~ 180°交会法(观测角)
转折角导线两相邻边的水平角0° ~ 360°导线测量
方位角从北方向顺时针到目标方向0° ~ 360°方位推算、两点间信息
象限角从南/北方向到目标方向的锐角0° ~ 90°传统测量、手工核对
垂直角视线与水平线的夹角-90° ~ +90°三角高程测量

4 前方交会 (Intersection — Forward)

在两个已知控制点 A、B 上分别设置仪器,同时观测到待求点 P 的水平角 α(∠PAB)、β(∠PBA),由余切公式推求 P 点坐标。

4.1 数学模型

Xp = ( XA·cotβ + XB·cotα + (YB − YA) ) / ( cotα + cotβ ) Yp = ( YA·cotβ + YB·cotα + (XA − XB) ) / ( cotα + cotβ ) // 三角形内角闭合检查 ∠APB = 180° − α − β (α + β < 180°) // 边长反算 D_AB = √[(XB−XA)² + (YB−YA)²] D_AP = D_AB · sinβ / sin∠APB D_BP = D_AB · sinα / sin∠APB

4.2 操作步骤

  1. 点击选项卡 前方交会
  2. "已知点 A" 组填入 X_A、Y_A (单位:米)。
  3. "已知点 B" 组填入 X_B、Y_B。
  4. "观测角度" 组填入:
    • α = ∠PAB (在 A 点对 P 的水平角)
    • β = ∠PBA (在 B 点对 P 的水平角)
  5. 点击 计算 P 点坐标,右侧即显示完整计算过程。

4.3 输入示例

示例数据(等边三角形场景)

⚠ 注意:α + β 必须 < 180°,且两点 A、B 不得重合。程序会自动检查这些条件,若不满足将弹出错误提示。

4.4 输出结果说明

输出区将依次列出:

5 后方交会 (Intersection — Resection)

将仪器设在待求点 P,观测到三个已知点 A、B、C 的两个水平夹角 α(∠APB)、β(∠BPC),由余切公式求出 P 点坐标。

5.1 数学模型

// 由 A、B、α 及 B、C、β 构成两组余切方程,加权求解 方法: 由三角形 ABP 及 BCP 分别构造两组余切解 Xp1,Yp1 与 Xp2,Yp2, 取其平均值(或当两组解差异过大时输出警告)。

5.2 输入项

分组输入项格式说明
已知点 AX_A第一参考点坐标
Y_A
已知点 BX_B第二参考点(通常位于 A、C 之间)
Y_B
已知点 CX_C第三参考点坐标
Y_C
在 P 点观测角α = ∠APB度 / DMSA-P-B 的水平角
β = ∠BPC度 / DMSB-P-C 的水平角

5.3 操作步骤

  1. 点击选项卡 后方交会
  2. 依次填入 A、B、C 三个已知点的坐标。
  3. 填入在 P 点观测的两个夹角 α(∠APB) 和 β(∠BPC)。
  4. 点击 计算 P 点坐标
📘 提示:后方交会的最佳观测布局,应使 A、B、C 大致均匀分布在 P 点周围,避免 危险圆(A、B、C、P 四点共圆时方程无唯一解)。程序会在检测到危险圆临界情况时给出警告。

6 侧方交会 (Intersection — Side)

在一个已知点 A 观测水平角 α,在待求点 P 观测水平角 γ(∠APB),由正弦定理反算 P 点坐标。

6.1 数学模型

已知: A(XA,YA), B(XB,YB), α = ∠PAB, γ = ∠APB 推算: β = 180° − α − γ 边长: D_AB = √[(XB−XA)² + (YB−YA)²] D_BP = D_AB · sinα / sinγ 方位角: α_AB = Azimuth(XB−XA, YB−YA) α_BP = α_AB ± 180° − β 坐标: X_P = XB + D_BP · cos(α_BP) Y_P = YB + D_BP · sin(α_BP)

6.2 输入项

分组输入项格式
已知点 AX_A
Y_A
已知点 BX_B
Y_B
观测角α = ∠PAB度 / DMS
γ = ∠APB度 / DMS
💡 适用场景:当 P 点位置偏僻、A 或 B 之一不便同时通视 C 点时,侧方交会是后方交会的简化替代方案,但精度相对较低。

7 单三角形

单三角形由两个已知坐标点 A、B 及一个待求点 P 组成,在 A、B 两点观测水平角 α、β,由正弦定理求解 P 点及各边长。

7.1 输入项

分组输入项格式
已知点 AX_A
Y_A
已知点 BX_B
Y_B
观测角α度 / DMS
β度 / DMS

7.2 输出内容

⚠ 注意:α + β 必须小于 180°,否则三角形无解。程序会自动检测并给出错误提示。

8 完全三角形

在待求点 P 观测到三个已知点 A、B、C 的三个方向夹角 α、β、γ(应等于 360°),由三组前方交会公式分别求解后取均值,得到 P 点最或然坐标。

8.1 输入项

分组输入项格式
已知点 AX_A
Y_A
已知点 BX_B
Y_B
已知点 CX_C
Y_C
在 P 点观测的三方向夹角α度 / DMS
β度 / DMS
γ度 / DMS

8.2 计算过程

  1. 验证 α + β + γ 是否 = 360°,若不等则显示闭合差。
  2. 由 (A,B,α)、(B,C,β)、(C,A,γ) 三组参数,以前方交会余切公式分别求出三组 P 点坐标 (X1,Y1)、(X2,Y2)、(X3,Y3)。
  3. 输出三组坐标的最大差值(点位较差),作为精度指标。
  4. 取三组坐标的算术平均作为 P 点最或然坐标。
📘 工程应用:完全三角形是高精度加密图根控制点的常用方法。三组解较差应控制在 2~3 cm 内,否则需重测。

9 导线测量

导线测量是平面控制测量中最基础的常规方法。本模块支持附合导线闭合导线两种类型。

9.1 输入项

分组输入项格式说明
起始数据起点 X0已知起始点纵坐标
起点 Y0已知起始点横坐标
起点方位角 α0度 / DMS起始边方位角
终点方位角 αN度 / DMS附合导线的终止方位角(闭合导线留空)
观测数据表站点名文本如 B、C、D…
转折角度 / DMS左角或右角(需统一)
距离 D到下一测站的平距
终点 XN / YN附合导线的终止已知点坐标

9.2 操作步骤

  1. 点击 添加行 添加导线测站,点击 删除行 删除选中行。
  2. 在表格中逐行填入测站名、转折角、距离。
  3. 如为 闭合导线,终点坐标留空;如为 附合导线,需填终点 XN、YN 及终点方位角。
  4. 点击 计算 按钮,输出区显示每站坐标、闭合差、相对精度。

9.3 计算原理

// 方位角推算 α(i+1) = α(i) + β(i) ± 180° // 坐标增量 ΔX(i) = D(i) · cosα(i), ΔY(i) = D(i) · sinα(i) // 闭合差 f_x = ΣΔX − (XN − X0), f_y = ΣΔY − (YN − Y0) f_D = √(f_x² + f_y²), K = f_D / ΣD ( 1 / N 形式 ) // 按边长比例分配闭合差 ν_xi = −f_x · D(i) / ΣD, ν_yi = −f_y · D(i) / ΣD // 坐标推算 X(i+1) = X(i) + ΔX(i) + ν_xi, Y(i+1) = Y(i) + ΔY(i) + ν_yi
💡 精度指标:相对闭合差 K = f_D / ΣD 通常应 ≤ 1/2000(图根)、1/5000(一级导线)、1/10000(二级导线)。

10 三角高程

三角高程测量利用水平距离垂直角,由三角函数关系求两点间的高差,进而推算高程。本模块支持多点往返观测。

10.1 计算模型

// 单程观测 h(i) = D(i) · tan(α(i)) + i_s − v_p // 往返观测取平均 h_mid = ( h_AB − h_BA ) / 2 // 高程推算 H(i+1) = H(i) + h(i)

其中 D 为水平距离,α 为垂直角(仰角为正),i 为仪器高,v 为棱镜高/觇标高。

10.2 输入项

输入项格式说明
起点高程 H0已知起始点的绝对高程
表格: 目标点文本各观测目标的点名
表格: 水平距离 D测站到目标的水平距离
表格: 垂直角 α度 / DMS仰角为正,俯角为负
表格: 仪器高 i测站点仪器高
表格: 棱镜高 v目标点棱镜高

10.3 操作步骤

  1. 输入起点高程 H0。
  2. 点击 添加行 添加观测目标,逐行填入目标点名、水平距离、垂直角、仪器高、棱镜高。
  3. 如为往返观测,请分两行分别输入(先 A→B,再 B→A),程序会给出往返较差。
  4. 点击 计算高程,输出区显示每目标点的高差与推算高程。
📘 精度讨论:距离超过 300 m 时,需考虑地球曲率与大气折光改正(两差改正)。本软件默认采用未改正模型,长距离精密测量请在外部手工加改正值。

11 水准测量

水准测量通过观测两点间的后视读数前视读数之差,得出测段高差,进而推算各点高程。本模块支持附合水准路线闭合水准路线

11.1 输入项

分组输入项格式说明
起点起点名文本如 BM1
起点高程 H0已知起始点高程
终点(仅附合路线)终点名文本如 BM2
终点高程 HN闭合路线请留空或与起点相同
选项按测站数分配复选框默认按距离分配;勾选则按测站数分配
测段数据表测段名文本如 A-B、B-C…
后视读数 a测段起点处后视读数
前视读数 b测段终点处前视读数
距离 D测段距离(按距离分配使用)
测站数整数(按测站数分配使用)

11.2 数学模型

// 测段高差 h(i) = a(i) − b(i) // 闭合差 f_h = Σ h(i) − ( HN − H0 ) (附合路线) f_h = Σ h(i) (闭合路线, HN=H0) // 容许闭合差 (等外水准规范) f_h_容 = ± 40 · √L (mm), L 为路线总长 (km) = ± 12 · √n (mm), n 为总测站数 // 闭合差分配 ν(i) = − f_h · D(i) / ΣD (按距离) ν(i) = − f_h · n(i) / Σn (按测站数) // 高程推算 H(k+1) = H(k) + h(k) + ν(k)

11.3 操作步骤

  1. 点击选项卡 水准测量
  2. 输入起点高程(必填),终点高程可选。
  3. 点击 添加行 添加测段,填入每测段的后前视读数、距离(或测站数)。
  4. 如需按测站数分配闭合差,请勾选 按测站数分配,否则按距离分配。
  5. 点击 计算高程,输出区显示每测段高差、闭合差、容许闭合差、平差后的各点高程。
⚠ 注意:闭合差超限(|f_h| > |f_h_容|)时程序会给出"超限"提示,此时应检查原始读数是否有误,必要时返工重测。

12 两点间信息

本模块用于查询任意两点 A、B 之间的全部基本几何量,是测量工作中最常用的反算工具。

12.1 输入项

分组输入项格式说明
A 点坐标X_A北方向坐标
Y_A东方向坐标
Z_A可选,高程
B 点坐标X_B北方向坐标
Y_B东方向坐标
Z_B可选,高程

12.2 输出内容

输出项公式说明
坐标增量 ΔX、ΔYΔX = XB − XA, ΔY = YB − YA正负号表示南北/东西方向
水平距离 DD = √(ΔX² + ΔY²)单位:米
方位角 α_ABatan2(ΔY, ΔX)0° ~ 360°,顺时针,从北向起算
反方位角 α_BAα_AB ± 180°同一直线上相反方向
象限角 R|atan(ΔY/ΔX)|0° ~ 90°,附象限标注(NE/NW/SE/SW)
高差 h_ABZB − ZA仅当输入 ZA、ZB 时输出
坡度 ih/D 或 h/D × 100%仅当输入高程时输出
中点 M 坐标XM=(XA+XB)/2, YM=(YA+YB)/2, ZM=(ZA+ZB)/2A、B 连线中点

12.3 操作步骤

  1. 点击选项卡 两点间信息
  2. 输入 A 点 (X_A, Y_A, Z_A),Z_A 可选。
  3. 输入 B 点 (X_B, Y_B, Z_B),Z_B 可选。
  4. 点击 计算两点信息 即得上述全部输出。

示例: A(50000, 30000, 100) → B(50300, 30400, 115.5)

输出示例: ΔX=+300 m, ΔY=+400 m, D=500.000 m, α_AB=53°07′48″, 象限 NE, h=+15.5 m, 坡度 3.10%, 中点 M (50150, 30200, 107.75)。

13 常见问题 (FAQ)

Q1 · 程序启动后提示"缺少......"或闪退?

请将您的Windows系统更新到最新。

Q2 · 计算按钮点击后无反应?

若输入数据为空或含有非法字符,程序会在结果区给出 红色错误行。请确认:

Q3 · 前方交会时 P 点位置在 A、B 的哪一侧?

本软件约定观测角为水平角的内部角,因此 P 点位于由 A→B 方向、按水平角左侧(逆时针方向)一侧的延伸线上。若观测数据相反,将得到对称解。

Q4 · 导线闭合差超限时如何处理?

程序会按规范分配闭合差并给出最终坐标,但也会在输出区末尾标注 ⚠ 超限 提示。实际作业中,超限应分析原因并重测关键测段,不得直接采用。

Q5 · 能否导出计算结果?

结果区文字可直接用 Ctrl + A 全选,Ctrl + C 复制,粘贴到 Word、Excel 或文本文件中。

Q6 · 输入大量测段时表格操作慢?

可在 Excel 中先整理数据后,选中多行复制并在表格中 Ctrl + V 粘贴;也可通过多次点击 添加行 批量添加后,逐行填入。

Q7 · 三角高程两差改正?

当前版本未内置球气差改正,长距离精密测量时请手工将 0.43·D²/R 的改正值附加到垂直角或高差中。

Q8 · 数据结果是否会自动保存?

本软件为轻量级计算工具,不自动保存输入数据。建议重要计算结束后复制结果区内容到外部文档备案。