当前位置:文档之家› 编码在大比例数字测图中的应用

编码在大比例数字测图中的应用

编码在大比例数字测图中的应用发表时间:2014-12-23T14:07:44.093Z 来源:《价值工程》2014年第9月下旬供稿作者:刘宏光[导读] 这个小程序的应用完全依据的是输入全站仪的属性代码,那么内业成图自动化的程度,完全取决于外业编码输入的正确与否刘宏光LIU Hong-guang曰朱俊鹏ZHU Jun-peng曰刘海辰LIU Hai-chen(天津市勘察院,天津300191)(Tianjin Institute of GeotechnicalInvestigation & Surveying,Tianjin 300191,China)摘要院使用全站仪野外数字测图是一项需要相互协作的团体作业过程,本文主要介绍一种编码的方法来解决这个问题。

利用新方法采集外业数据的时候只需要两个人,不需要绘草图,不仅减少了外业的工作量,最重要的是内业基本实现全自动化,解决了高程点坐标、图层、线型及连接关系等问题,大大减轻了内业人员成图编辑的工作量。

Abstract院The use of total station field digital mapping is a group work process that needs cooperation, this paper mainly introduces akind of coding method to solve this problem. When using the new method to collect field surveying data, only two personnel are needed, andthey don't need to draw the sketch, which reduces the workload of the field surveying, the most importantly, basically realizes the fullautomation of the indoor work, solves the problems of elevation point coordinates, layer, linear, and connection relationship etc, and greatlyreduces the workload of mapping editor of field surveying personnel.关键词院数字测图;编码;全站仪;野外数据采集Key words 院digital mapping;coding;total station;field data collection中图分类号院P208 文献标识码院A 文章编号院1006-4311(2014)27-0203-040 引言全站仪数字测图已经成为野外测图中常用的作业方式。

它方便、快捷、测量精度高。

通常作业时需要几名作业员相互配合:跑棱镜,操作全站仪,绘草图或者是记属性。

外业草图是内业成图编辑的重要依据,它记录了点号的属性和连向,全站仪记录了点号的坐标。

作业时我们发现当外业采集的点比较多的时候,这种方式的弊端就很明显。

绘制草图变得比较复杂,内业编辑相当麻烦,特别是点位密集的地方草图往往很难表示清楚,只能依据点位属性和记忆来绘图,往往需要再次甚至多次到实地核实才能搞清楚。

我们在发现了这种弊端以后尝试对作业流程进行改进,本文主要就是介绍一种利用编码数字测图内业自动成图的方法。

新方法外业数据采集的时候只需要两个人,不需要绘草图,外业的工作量减少了,最重要的是内业基本实现全自动化,包括高程点坐标、图层、线型及连接关系都解决了,大大减轻了内业人员的成图编辑。

1 实现方法及主要内容目前大部分的内业绘图软件,如广州SCS、南方CASS等都是支持编码测图的,但这是不够的,自动化的程度不高,并且操作全站仪的时候输入属性是会耽误一定时间的。

我们用的方法是用属性解决全部的问题。

除了点的属性,还把图层、线型和连接关系都解决了。

全站仪中,属性可以用数字代码或英文字母代码来表示,英文字母比较直观,数字比较简单。

在徕卡全站仪中,用数字代码输入的速度非常快,基本上不耽误什么时间,并且数字都可以自己定义。

这里为了说明比较直观,就用字母代码来表示。

我们是在广州SCS 的环境下来实现的。

用两个文件来定义测量的碎步点,一个是图层文件,一个是地物的定义。

这两个文件都是开放式的,自己可以按照规定的格式根据自己的需要定制。

这里就用我们平时工作使用的规定做一个简单的说明。

程序的实现分为如下四个阶段:淤准备阶段,该阶段读取图层和地物的规定文件,根据规定的文件新建相应的图层,读取外业实测数据文件,获取每个实测点的XYZ 坐标值,为后续图形绘制做好充分的准备。

于分析阶段,该阶段主要通过缩写编码分析地物为一般点、高程点、图根点、块、线、文字等,从而确定其绘制方式。

盂绘制阶段,根据上一步中分析的地形绘制方式来具体绘制地物。

榆结果反馈阶段,根据绘制的情况反馈用户绘制成功与否,如果不成功,具体哪些点失败,需要反馈用户一个详细的列表。

1.4 绘制地物编码该部分内容将绘制地物中用到的主要函数进行展示。

1.4.1 绘制图块即在指定的位置插入相应的图块。

Public Sub DrawBlock (ByVal pt As structPoint, ByValcurGz As gz)Dim blockRefObj As ObjectDim insertionPnt(0 To 2) As DoubleinsertionPnt (0) = pt.x : insertionPnt (1) = pt.y :insertionPnt(2) = 0.0blockRefObj = cadDoc.ModelSpace.InsertBlock(insertionPnt, "C:\scas\scastk\" + curGz.blockname + ".dwg",1.0#, 1.0#, 1.0#, 0)yer = yerEnd Sub 1.4.2 绘制线段即将坐标起始行至终止行的坐标集合绘制成连续的线段,如果是房屋的话,在房屋中绘制“砖”字。

Public Function DrawPolyline(ByVal startline As Integer,ByVal endline As Integer, ByVal curGz As gz) As BooleanDim plineObj As ObjectDim points(2) As DoubleDim index As Integer = 0TryIf curGz.suoxie = "MD" ThenReDim points(5)For i As Integer=startline To startline+ 1points(index) = pointLst.Item(i).xpoints(index + 1) = pointLst.Item(i).ypoints(index + 2) = 0.0index += 3NextElseReDim points((endline-startline+1) *3-1)For i As Integer = startline To endlinepoints(index) = pointLst.Item(i).xpoints(index + 1) = pointLst.Item(i).ypoints(index + 2) = 0.0index += 3NextEnd IfplineObj = cadDoc.ModelSpace.AddPolyline(points)yer = yerplineObj.Linetype = curGz.type' 如果是房屋,注记ZIf curGz.suoxie = "F" ThenDim minExt As Object = NothingDim maxExt As Object = NothingplineObj.GetBoundingBox(minExt, maxExt)Dim pointsZ(2) As DoublepointsZ(0) = (minExt(0) + maxExt(0)) / 2pointsZ(1) = (minExt(1) + maxExt(1)) / 2pointsZ(2) = 0.0Dim textObj As ObjecttextObj = cadDoc. ModelSpace. AddText ("砖", pointsZ, 2)yer = yertextObj.styleName = "HZ"textObj.Update()End IfCatch ex As ExceptionMsgBox("绘线失败,请检查是否加入绘图环境!")Return FalseEnd TryReturn TrueEnd Function 1.4.3 绘制文字即根据坐标、图层、字体等信息绘制相应的文字。

Public Sub DrawText(ByVal str As String, ByVal points() As Double, ByVal layer As String, ByVal stylename AsString)Dim textObj As ObjecttextObj=cadDoc.ModelSpace.AddText(str, points, 2)yer = layertextObj.styleName = stylenametextObj.scalefactor = 0.8textObj.Update()End Sub 1.4.4 绘制高程点即在指定的坐标处插入高程块,并在该高程旁边注记出其高程值。

Public Sub DrawGCD (ByVal pt As structPoint, ByValcurGz As gz)Dim blockRefObj As ObjectDim insertionPnt(0 To 2) As DoubleinsertionPnt (0) = pt.x : insertionPnt (1) = pt.y :insertionPnt(2) = 0.0blockRefObj = cadDoc.ModelSpace.InsertBlock(insertionPnt, Application.StartupPath+"\ 程点.dwg", 1.0#,1.0#, 1.0#, 0)yer = yerDim textString As StringtextString = "(" + String.Format ("{0:F2}", pt.x) +"," + String.Format("{0:F2}", pt.y) + ")"insertionPnt(0) = pt.x + 7insertionPnt(1) = pt.yinsertionPnt(2) = 0.0DrawText(textString, insertionPnt,yer,"HZ")End Sub 1.4.5 绘制控制点即插入控制点对应的图块,并在图块旁边按照规定的格式标注点号和高程。

相关主题