数字化成图编程实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字化成图的编程实现
[摘要]测绘行业不管是在软件还是硬件方面都发生了很大的变化。
绘图工具从以前的手工绘图到现在的电脑绘图.比较常用的绘图软件有eps清华山维, cass等。
测绘仪器也发生了很大的变化,从以前的光学仪器到现在的全站仪。
测绘软件和仪器都更加人性化,更加快捷,方便,精确了。
本文就侧重从清华山维和cass这两个软件的自动连图编程实现简单介绍如下:
[关键词]测绘全站仪编程开发
abstract:great changes have taken in the surveying and mapping industry about hardware and software.drawing tools developed from manual tools to computer graphics.cass and eps is commonly used.the surving instruments have great changed,developed from optical instrument to total station instrument.the sofware and hardware is moreconvenient and precise.this articles will introduction digital mapping of programming about the software of cass and eps.
keywords:surveying and mapping,total station instrument,programming, development
1.引言
现在的全站仪很方便,比较好点仪器的都是无棱镜的,如果是测图的话,一天下来也有不菲的成果。
外业的测量速度随着仪器的发展得到大幅度的提高,那么内业的处理速度也应该有相应的提
高。
这样才能整体提高整个工程的速度。
但是眼下好多单位的测图流程还是停留在用全站仪采点,采用画草图的方式,然后内业处理再根据草图所画的来处理。
这样的工序既和全站仪不匹配,又浪费人力,物力,财力。
如果采用内业自动成图方法,则一个组2个人足够,外业也只是简单的描述下就可以了。
由于我们单位最常用的是清华山维的编码,所以下文的自定义编码都是基于清华山维的。
2.程序开发的基础和设计
2.1 cass的编码自定义功能
由于cass的自身的编码难记,外业操作起来不方便。
所以可以根据自己的习惯来自定义编码。
在cass中很好自己定义编码,在cass安装目录下的system文件夹内有一个jcode.def文件。
其数据格式如下边所示:
563,164400
677,144301
200,141101
其中逗号前的是自定义编码,逗号后的是cass自身编码。
其中的563为内部道路,是清华山维的内部成图编码,164400是cass 的内部成图编码,可以去通过jcode.def文件将这个两种编码结合起来。
2.2 全站仪的数据结构
现在全站仪相对于以前的光学仪器,更加自动化。
一般数据都是储存在仪器里边。
等一天外业结束后,只需要把数据从仪器导出
后就可以进行内业处理了。
针对不同的软件,传输软件也会不同。
本文以最常用的leica仪器为例。
leica仪器的传输软件为leica survey office。
在这个软件中利用其中的格式编辑模块,编辑一个输出格式文件,然后利用传输软件中的数据交换管理器,把编辑好的格式文件导入到全站仪里边。
以后每次外业结束后,回来传出数据的时候就可以按此格式文件来输出你所需要格式的文件。
如图1所示,就是按需要格式输出的外业采点数据文件。
其中563为清华山维内部道路的编码,677为围墙的编码,200为居民地的代码,都是清华山维的成图编码。
编码下边的数据格式是点号,点的x y坐标,高程值。
一个编码及以下内容代表一个完整的连续的地物。
如上图所示8-14号点代表一段围墙。
15-16号点位一栋房子的三个角点。
2.3外业采集数据
参照上边图1的数据传出文件可以看出,一个完整的地物应该按顺序依次采点。
如果是同一个编码的地物有断开或者位置不同应该注意编码的断开(leica仪器直接回车下就可以)。
如果是不同编码的地物应该注意对应编码的输入。
按这样的方法外业采点,内业生成的图件只需要进行简单的连接和休整就可以了。
2.4清华山维和cass需要生成的目标文件
这几个文件中的编码如,563,677,200,都是清华山维的编码。
2.5程序的设计
由于作业方式原因,本单位最常用的绘图软件是清华山维和cass两种。
所以外业采集数据的时候用的编码全部都是清华山维的成图编码。
经过软件转化把外业采集的数据直接生成可以在清华山维中直接连图的目标文件。
如果要转成cass格式需要先编辑cass 系统文件下的jcode文件,如上边所示。
然后直接利用程序把外业采集数据文件和jcode文件联系起来,生成符合cass系统成图的目标文件。
3.程序的原代码
转换原始外业数据采集文件到清华山维格式文件:
private sub command1_click()
dim wjm as string, bcwjm as string
dim biaoshi as integer, jy as string
dim zhs as integer, i as integer
dim zhh() as string, wjt1 as string, wjt2 as string
dim sch as string ‘数据类型定义
biaoshi = 0
commondialog1.action = 1
wjm = commondialog1.filename
bcwjm = “qhsw” & commondialog1.filetitle ‘建立转换后文件名和路径
open bcwjm for output as #1
close #1
open wjm for input as #1
do while not eof(1)‘进入循环对原始文件进行处理input #1, jy
if right(jy, 3) = “1$1” then
biaoshi = biaoshi + 1
if biaoshi = 1 then
wjt1 = left(jy, 3)
elseif biaoshi = 2 then
wjt2 = left(jy, 3)
else
end if
if biaoshi = 2 then
open bcwjm for append as #2 ‘对整理后的文件进行写入wjt1 = wjt1 & ““ & zhs & ““ & “1 $1”
print #2, wjt1
wjt1 = wjt2
close #2
end if
if zhs > 0 then
open bcwjm for append as #2
for i = 1 to zhs
sch = zhh(i) & ““ & “1 1 0 0”
print #2, sch
next i
close #2
zhs = 0
biaoshi = 1
end if
else
zhs = zhs + 1
redim preserve zhh(zhs)
zhh(zhs) = jy
end if
loop
close #1
end sub
转换清华山维数据采集文件到cass三维格式文件:
private sub command2_click()
dim wjm as string, bcwjm as string
dim bm as integer, ds as integer, ch as integer
dim i as integer, sch as string
dim dh as integer, xx as double, yy as double, hh as double
‘数据类型定义
commondialog1.action = 1
wjm = commondialog1.filename
bcwjm = “cass” & commondialog1.filetitle‘建立转换后
文件名和路径
open bcwjm for output as #1
close #1
open wjm for input as #1 ‘进入循环对原始文件进行处理
do while not eof(1)
input #1, bm, ds, ch, ch
for i = 1 to ds
input #1, dh, xx, yy, hh, ch, ch, ch, ch
if i = 1 then
open bcwjm for append as #2 ‘对整理后的文件进行写入
sch = dh & “,”& bm & “,”& format(xx, “######.000”) & “,” & format(yy, “######.000”) & “,” & hh print #2, sch
close #2
else
open bcwjm for append as #2
sch = dh & “,”& “+”& “,”& format(xx, “######.000”) & “,” & format(yy, “######.000”) & “,” & hh
print #2, sch
close #2
end if
next i
loop
close #1
end sub
4. 小结
上边的代码为vb6.0下编写的,由于本单位平时主要用的清华山维绘图软件,其次是cass软件。
所以本程序主要是针对清华山维,如果有需要转到cass,可以用清华山维的标准格式转换成cass 的数据格式。
清华山维格式的数据可以直接导入到软件中。
cass格式的数据可以先通过cass绘图软件中的绘图处理—展野外测点点号—简码识别来进行导入。
转换后数据导入的效果图:
通过上边的图我们可以看的出,你所施测的区域的图已经通过软件大致连接好了。
我们所要做的只是简单的把这些图形进行连接,封闭或者方向的调整等修补性质的操作。
自动化成图最重要的一个就是外业数据的采集(这里针对leica 仪器),采集的时候我们要把握一个原则就是连续地物尽量不要换编码,不同地物或者同一地物有分段的时候可以采取换编码。
目的是为了保证内业自动化成图的完整性。
好的外业采集方法可以大幅
度减少内业处理的工作量。
通过外业有规律的采集点,内业的自动成图,可以大幅度提高外业的人员投入和内业的数据整理时间,极大的提高了工作效率。
参考文献:
李玉宝等,大比例尺数字化测图技术。
西南交通大学出版社
杨晶,vb6.0程序设计。
科学出版社
作者简介:何宝金(1983-),男,大学本科学历,测绘助理工程师,主要从事工程测量,施工管理。
注:文章内所有公式及图表请以pdf形式查看。