作者amjads (地天泰)
看板Hiking
标题山头方位角计算程式 v0.01 beta
时间Tue Oct 7 22:39:42 2008
图文版下载地址:
http://blog.yam.com/amjads/article/19453394
==============================================================================
山头方位角计算程式 v0.01 beta
Copyleft amjads 2008 Taiwan, Taipei
==============================================================================
这个小程式很久以前就想写了, 不过因为一时抽不出空来, 所以一直迟迟为未动工~
促使这个程式产生的动机, 应该是某天在七星山巧遇一位前辈, 当时谈得很投机,
特别是谈到用"角度方式"来认山头, 以这个方向的构思, 程式就好写多, 只要将角度
算出来, 然後再用 photoshop 在山头照片上拉线量测, 就可以轻松的将山头标注了
~ 省去用等高线去猜山头的困扰~
简单说明:
1. 内建 2千多座山头的 GPS 座标及标高资料, 可随时添加修改座标及标高
资料, 目前资料包含 400m~3952m 的郊山、中级山、高山, 资料目前还不
断再增加修正, 希望有兴趣的山友可以帮忙维护~ 谢谢!
2. 计算结果以报表方式输出:
1) 两点水平直线距离, 以 km 为单位
2) 仰俯角度以计算地圆及不计算地圆(直线)两种方式输出
3) 方位角可补正输出, 可以随便以任一座山头作为参考点(0), 将其余
各山头的方位角进行加减简化计算
<<输出报表范例如下>>
原灿光寮山的方位角是 64.724 , 本范例的方位角偏移补正值为 -64.724 , 经二次运
算输出~ 并用 "汉书" 对方位角进行排序~
------------------------------------------------------------------------------
[观测点]: 薯榔尖 321134 2769322 622 30 45 225 -64.724
目 标 山 名 | GPS 座 标 |标高| 水平距离| 仰俯角(直线/地圆) |方位角(+补正)
==============================================================================
灿光寮山 336467 2776562 738 16.956km hDeg= +0.392 +0.326 vDeg= 0.000
灿光寮山东峰 336834 2776704 600 17.349km hDeg= -0.073 -0.141 vDeg= 0.094
三貂岭山 333952 2775210 554 14.106km hDeg= -0.276 -0.331 vDeg= 0.604
草山 337483 2776703 729 17.938km hDeg= +0.342 +0.272 vDeg= 0.978
苦命岭 339509 2777504 428 20.114km hDeg= -0.553 -0.631 vDeg= 1.274
三貂岭山 333863 2774787 523 13.853km hDeg= -0.409 -0.464 vDeg= 2.040
和美山 340730 2777469 355 21.222km hDeg= -0.721 -0.804 vDeg= 2.701
十分寮山 326198 2771342 381 5.452km hDeg= -2.531 -2.552 vDeg= 3.529
草山南峰 337679 2775619 625 17.703km hDeg= +0.010 -0.060 vDeg= 4.439
五分寮山 330577 2772708 326 10.032km hDeg= -1.690 -1.729 vDeg= 5.550
南草山 337670 2774649 562 17.373km hDeg= -0.198 -0.266 vDeg= 7.420
石笋尖 335835 2773824 269 15.375km hDeg= -1.315 -1.375 vDeg= 8.249
狮子嘴岩 331540 2774525 395 11.634km hDeg= -1.118 -1.163 vDeg= -1.289
牡丹山 335161 2776541 650 15.776km hDeg= +0.102 +0.040 vDeg= -1.957
乌涂窟山 331116 2774498 422 11.244km hDeg= -1.019 -1.063 vDeg= -2.132
南雅山 339668 2778950 240 20.886km hDeg= -1.048 -1.130 vDeg= -2.175
鼻头角 342173 2780360 110 23.759km hDeg= -1.235 -1.327 vDeg= -2.408
半屏山 336824 2777619 713 17.749km hDeg= +0.294 +0.224 vDeg= -2.594
无耳茶壶山 336492 2778050 599 17.665km hDeg= -0.075 -0.144 vDeg= -4.334
三坑山 322325 2770018 472 1.379km hDeg= -6.206 -6.211 vDeg= -5.025
大粗坑山东峰 334550 2777278 540 15.598km hDeg= -0.301 -0.362 vDeg= -5.393
三角尖 329170 2774194 525 9.398km hDeg= -0.591 -0.628 vDeg= -5.951
大粗坑山 334271 2777289 576 15.364km hDeg= -0.172 -0.232 vDeg= -5.959
南子吝山 338083 2779657 196 19.851km hDeg= -1.229 -1.307 vDeg= -6.098
柴桥坑山 323651 2770895 499 2.968km hDeg= -2.373 -2.385 vDeg= -6.727
三瓜子坑山 331175 2775671 536 11.880km hDeg= -0.415 -0.461 vDeg= -7.029
望古山 326208 2772578 597 6.029km hDeg= -0.238 -0.261 vDeg= -7.412
顶子寮山 326565 2773046 550 6.585km hDeg= -0.626 -0.652 vDeg= -9.162
五分山 327914 2774071 757 8.278km hDeg= +0.934 +0.902 vDeg= -9.733
....
....
------------------------------------------------------------------------------
3. 设定全部在 3cp.txt 当中, 第一行为注解无作用(但不可删除), 第二行为
观测者所在的参数资料, 第三行以後全为山头资料库, 若要添加山头资料,
请由第三行以後添加一列...
1. 山名: 山头名称
2. GPS 座标 : 采 二度分带 TWD67
3. 标高: 公尺单位
4. 视距: km 单位, 计算出的两点水平距离, 若超过此数值则不列表
5. 左起视角+右终视角: 以顺时钟方向计算 0 为正北方 90 为正东方 180
为正南方 270 为正西方, 若计算出的方位角在此范围内, 则报表输出
6. 方位角偏移补正: 第一次输出请设为 0, 然後在程式输出的报表中选择
你要作为参考的山头, 取其方位角乘以-1带入, 再作第二次输出~
<< 3cp.txt 内容设定范例如下>>
------------------------------------------------------------------------------
# 山名 GPS 座标 标高 视距KM 左起视角 右终视角 方位角偏移补正
薯榔尖 321134 2769322 622 30 45 225 -64.724
崩山 303289 2795423 219
九芎林山 307060 2793861 423
土地公岭 306756 2792639 526
金包里山 314636 2791794 56
竹子山北峰 306329 2790106 1074
竹子山 305902 2789820 1098
竹子山前峰 305518 2789395 1090
....
....
------------------------------------------------------------------------------
4. 在 dos 环境执行, 如:
C:\>3cp
或
C:>3cp | more
或直接输出成档
C:\> 3cp > filename.txt
写得很粗糙, 等以後有空在来写个图文版说明吧 :-)
--
慎始克终 视明无惑
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.112.167.15
1F:推 conquer:被挡住的山头也会列出来..eg南子吝山, 这样列表会很庞大吧 10/07 23:50
2F:→ conquer:不过这是很棒的设计,如果所有等高线数值资料都输入进去, 10/07 23:54
3F:→ conquer:你可以写个程式,在山顶只要输入方位角就会跑出所看得到的 10/07 23:55
4F:→ conquer:山头名称和距离....看不到的不会跑出来 XD 10/07 23:55
5F:→ hyu0407:呵…有要改用java弄个mobile版吗。 10/08 00:21
6F:推 s813141:先推...但是还没时间看懂..>.< 10/08 01:43
7F:→ amjads:等高线数值资料这个问题很难取舍,如果资料以向量的方式输入 10/08 05:32
8F:→ amjads:会拖垮程式执行的速度, 若不以这样的方式设计的话, 资料库 10/08 05:35
9F:→ amjads:又会变成庞然怪物~其实人工分析仰俯角及方位角,就可简易过 10/08 05:39
10F:→ amjads:滤掉一些被挡住的山头.... 当然以後可以加点智慧让电脑依我 10/08 06:05
11F:→ amjads:们的要求先行过滤~ java? 嗯~可以想像的~会很龟速~ XD 10/08 06:05
※ 编辑: amjads 来自: 59.112.179.150 (02/10 18:09)