孙钦帮+孙丽艳+张冲+姜倩+陈兆林
摘 要:宗海图是海域使用权证书和宗海档案的主要附图,是申明海域使用权属的重要依据,其绘制的标准性和规范性直接会影响到海域的科学化管理。该文基于VB和AutoCAD宗海界址图绘制系统的研究与实例开发,为宗海图绘制提供了一种思路和方法,有利于提高宗海图绘图工作的自动化,大大提高工作效率和质量,为海域使用管理和用海审批提供了技术保障。
关键词:宗海图 VB AutoCAD 开发
中图分类号:TP39 文献标识码:A 文章编号:1672-3791(2016)09(a)-0001-03
Abstract: Parcel sea map is the Main figures of Certificates of the right to the use of sea areas and cases files, and is an important basis for stating the sea using right. The standard and specification of parcel sea mapping directly affects the scientific management of sea areas. Based on research and development cases using VB and AutoCAD system for Parcel sea boundary mapping, this article offers an idea and method for improving automation of parcel sea mapping. This method improves work efficiency and quality greatly and can provide technical support for management and approval of the use of sea area.
Key Words: Parcel sea map; VB; AutoCAD; Development
宗海图是海域使用权证书和宗海档案的主要附图,是申明海域使用权属的重要依据,是海洋管理部门确定和管理海域使用权属的技术依据,同时又为海域使用者提供法律保障[1]。
目前,宗海图常用的绘制平台主要有AutoCAD、ArcGIS、MapInfo和Surfer等[2-4]。AutoCAD是目前世界上广泛用于各种图形应用有关领域的功能强大的计算机辅助设计软件,由于其使用方便、功能强大,被广泛应用到测绘制图领域。宗海图作为测绘制图的一部分,具有测绘制图的共性,但也有其特殊性。因此AutoCAD作为通用性软件,在宗海图绘制某些方面功能略显不足,比如在宗海图界址点批量提取、标注与坐标转换、数据的格式转换与管理等,需要针对特殊的需求对AutoCAD进行二次开发。该文基于VB和AutoCAD中的ActiveX Automation技术进行宗海界址图绘制系统的研究与实例开发,为宗海图绘图工作的自动化、精确化和高效化提供技术保障。
1 宗海图
1.1 宗海图介绍
宗海图是海籍测量的最终成果之一,其精确记载宗海图位置、界址点、界址线及相邻宗海的关系,主要包括宗海位置图和宗海界址图。其中,宗海位置图用于反映被权属界限所封闭的同类型用海单元的地理位置,宗海界址图用于清晰地反映被权属界限所封闭的同类型用海单元的形状和界址点分布[5]。
1.2 宗海界址图
宗海界址图主要包括7个方面的内容:(1)毗邻的陆域和海域要素,用海方案或已有用海设施、构筑物。(2)该宗海及各内部单元的图斑、界址线、界址点及其编号。(3)相邻宗海图斑、界址线、界址点及项目名称。(4)图廓及经纬度标注。(5)界址点编号及坐标列表。(6)宗海内部单元、界址线与面积列表。(7)图名、坐标系、比例尺、投影与参数、指北针、绘制日期,测量单位等[6]。
2 VB和AutoCAD系统研究与实例开发
Visual Basic(简称VB)是Microsoft公司推出的面向对象的可视化编程工具,并较好地支持ActiveX技术开发。VB作为二次开发工具,具有语法简单,功能强大,调试方便等特点。此外,AutoCAD R14版本起,软件引入了ActiveX Automation服务功能,使AutoCAD与其他Windows程序的数据共享变得非常容易[7]。
2.1 VB在AutoCAD中绘制宗海图
要在AutoCAD中使用ActiveX Automation技术,需要在VB 中选择AutoCAD作为其对象,方法是在VB中选菜单“工程/引用”中选中AutoCAD2007 Object Library。在VB中可以用New 关键字、GetObject、CreateObject函数直接访问AutoCAD应用程序对象。
2.1.1 获取和创建AutoCAD对象
下面语句用GetObject或CreateObject函数直接引用应用程序对象:
Dim AcadApp As AcadApplication 定义AutoCAD应用
Dim ThisDrawing As AcadDocument 定义AutoCAD文档
Set AcadApp = GetObject(, "AutoCAD.Application") 获取AutoCad应用程序
If Err > 0 Then
Set AcadApp = CreateObject("AutoCAD.Application") 创建AutoCad对象
End If
Set ThisDrawing = AcadApp.ActiveDocument 获取AutoCAD的当前文档
AcadApp.Visible = True 设置AutoCAD.Application可见
2.1.2 点对象坐标的提取
点对象坐标利用GetPoint函数进行提取与显示。
ForceForegroundWindow AcadApp.hWnd 将焦点切换到AutoCAD
a = ThisDrawing.Utility.GetPoint(, "Get Point Cordinate") 将获取坐标存储在数组中
ForceForegroundWindow form6.hWnd 焦点切换回当前的窗体
Txt1.Text = Format(Val(a(1)), "#####0.000") 将获取坐标x显示到文本框中
Txt2.Text = Format(Val(a(0)), "#####0.000") 将获取坐标y显示到文本框中
2.1.3 点坐标转换
通过建立坐标转换函数对提取的点对象坐标进行坐标转换,把x、y坐标转换为经纬度坐标(B和L),具体函数设置如下:
Sub XYtoBL(xyType, ByVal L0 As Double, ByVal y As Double, ByVal x As Double, cdB As Double, cdL As Double, gdFalsEast As Double, gdFalseNorthing As Double)
End Sub
2.1.4 坐标数据存储
利用ActiveX Automation技术,把提取的点对象坐标存储为Excel格式文件。
Set xlApp = CreateObject("Excel.Application") 创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open(fname) 打开已经存在的EXCEL工件簿文件
xlApp.Visible = True 设置EXCEL对象可见
Set xlSheet = xlBook.Worksheets(1) 设置活动工作表
xlSheet.Activate 激活工作表
xlBook.RunAutoMacros (xlAutoOpen) 运行EXCEL中的启动宏
xlSheet.Columns.AutoFit 自适应宽度
xlSheet.Cells.HorizontalAlignment = xlCenter 数据居中
xlSheet.Cells.VerticalAlignment = xlCenter 数据居中
2.2 程序与实例
在实际宗海图绘制过程中需要进行坐标提取与坐标转换、图框绘制及制图要素添加等,绘图过程相对繁琐、效率较低,且准确度不高和成果检核复杂;因此,该文所研究与开发的系统,实现了宗海界址图快速自动化成图,绘制流程见图1。
该文研究与开发的宗海界址图绘制系统实现了对AutoCAD对象的基本操作,程序已在VB6.0和AutoCAD 2007环境下调试通过,宗海图绘图程序如图2所示。程序具体操作首先在AutoCAD 2007打开工作底图,运行开发程序,点击单点拾取按钮,在AutoCAD拾取宗海界址图界址点坐标,程序自动进行坐标转换并输出文本信息(图3),并可在图3中对提取和转换的坐标数据进行格式转换等管理工作。
通过开发的宗海界址图绘图程序与实例数据的转换可以看出通过VB可以快速、高效地启动AutoCAD程序绘制图形,有利于提高宗海图绘图工作的自动化,大大提高工作效率和质量。
3 结语
该文基于VB和AutoCAD中的ActiveX Automation技术进行宗海界址图绘制系统的研究与实例开发,为宗海图绘制提供了一种思路和方法。该技术实现的宗海图快速成图系统可以自动绘制宗海图各制图要素和坐标数据转换与管理,统一、科学和规范化了宗海图绘制涉及的坐标系、测绘精度和面积量算方法等工作,提高了宗海图绘图工作的自动化、工作效率和质量,为海域使用管理和用海审批提供了技术保障。该程序在宗海图实际绘制工作中得到很好的应用,具有很强的实用性。
参考文献
[1] 贾凯,马军,陈兆林,等.宗海图编绘的几个关键问题探讨[J].海洋开发与管理,2015(4):16-18.
[2] 李胜,吴桑云,高俊,等.基于多软件的ArcGIS宗海图制图技术研究[J].海岸工程,2012,31(2):76-82.
[3] 田双凤,黄承义,陈培雄,等.AutoCAD技术在海域使用论证宗海图绘制中的应用[J].科技创新导报,2010(30):76-77.
[4] 王建忠,王玉龙,李秀丽.利用AutoCAD绘制海域使用宗海图件方法浅析[J].测绘与空间地理信息,2014,37(5):165-169.
[5] 孙玉超,曾纪胜.基于ObjectARX的宗海界址图快速自动化绘制技术[J].科技创新导报,2014(35):106-108.
[6] 国家海洋局.HY/T124-2009海籍调查规范[S].2009.
[7] 王建东,李国昌.用VB对AutoCAD进行二次开发技术的研究[J].河北科技大学学报,2006,27(2):169-172.