地形图数据转化城管部件数据程序开发
2016-03-30刘军王小维
刘军,王小维
(常州市测绘院,江苏 常州 213000)
地形图数据转化城管部件数据程序开发
刘军*,王小维
(常州市测绘院,江苏 常州213000)
摘要:城市管理信息化是当今社会发展和城市管理的大趋势,“数字城管”为城市管理信息化的一个平台,本文探讨了如何把大比例尺地形图数据转化为“数字城管”的格式数据,并开发了相应的程序实现了该功能。使用本文设计的程序把地形图数据转化为数字城管部件数据,实践表明它可以提高工作效率,而且满足使用需求,为测绘单位对该类数据批量转化提供了有益的参考。
关键词:数字城管;部件;地形图;数据转化;程序
1引言
城市管理信息化是当今社会发展和城市管理的大趋势,城市管理信息化水平的高低已成为衡量一个城市或地区竞争力和现代化程度的重要标志。打造常州市“数字城管”基础平台,使信息化成为推进城市管理工作的重要手段,以提高城市管理水平,为社会公众创造和谐、整洁、安全、优美的城市环境,提高社会公众的生活质量。
常州市“数字城管”项目建设的基础数据为常州市测绘院已有的1∶500、1∶1 000大比例尺地形图数据,考虑到地形图上的检修井、路灯、绿地等地物符号与城管部件的符号相同或位置相同,如果把大比例尺地形图上的检修井符号、路灯、地灯等地物符号转化为数字城管部件相应的符号,不但可以提高工作效率,而且可以节约测绘成本。
2数据格式分析
虽然大比例尺地形图数据与数据城管的数据格式均为AutoCAD的dwg格式,数据均由点线面以及文字注记构成,但是两者还存在不同地方。一是部分地形图检修井符号与数字城管部件的符号样式有别,如地形图雨水检修井盖与数字城管的雨水井符号样式不同;二是符号的附加属性数据(Xdata)有别,如属性数据的内容不同,地形图的附加属性数据一般不会关注地物的权属单位,但是数字城管部件的附加属性数据对权属单位有特别的要求;三是两者的属性数据的个数也不同,地形图的属性数据个数一般的有3个~6个,数字城管部件的属性数据个数一般均大于10个,如图1、图2所示。
3数据要求与程序实现
3.1程序设计思路
为了便于对转化数据的管理,需要新建一个地形图符号与城管部件数据转化对应表。程序读取地形图中的块名后搜索该表中与之相对应的城管部件信息,再重新绘制城管部件的符号,并给该符号添加附加属性数据,最后删除该地形图符号,这样就完成了地形图符号转化为数字城管部件数据。地形图符号转化为数字城管部件对应表如图3所示。
3.2数据准备
根据以上对两种数据的分析可知,设计程序转化数据前需要准备 1∶500或 1∶1 000大比例尺的地形图数据,地形图的数据格式要求为AutoCAD 2000 Drawing(*.dwg)的格式,该数据中需要有路灯、雨水井盖、电力井盖、通信井盖等点状地物符号,且这些点状地物符号数据的类型必须为AutoCAD的块参照(BlockReference),但对地物符号的附加属性数据(Xdata)不作要求,如图1所示,以上数据准备完毕即可进行数据转化程序的设计工作了。
3.3转化流程
地形图数据转化为城管部件数据流程如图4所示。
3.4程序实现
AutoCAD二次开发语言有VBA(Visual Basic Application)、Lisp以及ObjectARX等,VBA及其环境易于学习和使用,它是一个面向对象的编程环境,提供了丰富的开发功能。VBA工程可以是独立的,也可以嵌入到图形中,为开发人员提供了非常灵活的方式来发布程序,以下为主要源代码。
’定义选择集
If Not IsNull(ThisDrawing.SelectionSets.Item("this")) Then
Set sset=ThisDrawing.SelectionSets.Item("this")
sset.Delete
End If
Set sset=ThisDrawing.SelectionSets.Add("this")
sset.SelectOnScreen
If sset.count=0 Then
MsgBox "没有选择到对象"
Exit Sub
End If
‘检索地形图块转化为城管部件表
Sql_connect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:MAP2010VbaMap2010.mdb;Persist Security Info=False"
For Each obj In sset
Select Case obj.ObjectName
Set objblk=obj
blocksName=objblk.name
insetPoint=objblk.insertionPoint
inscood(0)=insetPoint(0):inscood(1)=insetPoint(1)
inscood(2)=insetPoint(2)
Rst.Open "select * from 地形图块转化为城管部件 where 地形图块名='" & objblk.name & "'",Sql_connect,adOpenForwardOnly,adLockReadOnly
While Not Rst.EOF
k=k+1
dxtBlock=Rst.Fields("地形图块名")
XdataArrUp=Rst.Fields("部件属性数据个数")
CGBJLay=Rst.Fields("城管图层")
cgblkname=Rst.Fields("城管部件块名")
Rst.MoveNext
Wend
Rst.Close
If k>=1 And cgblkname <> "" Then
Dim newblkname As String
newblkname=DXTblocks_path+cgblkname+".DWG"
‘绘制城管部件符号,附加XDATA属性数据
Set CGBLK=ThisDrawing.ModelSpace.InsertBlock(inscood,newblkname,dScale,dScale,dScale,0#)
CGBLK.Layer=CGBJLay
CGBLK.SetXData CGXdatatype,CGXdataval
objblk.Delete
4应用实例
选择某区块地形图数据,使用该程序把地形图的地物符号转化为数字城管部件符号,其效果如图5(1∶500地形图数据)、图6(转化后的数字城管数据)所示。
5结语
基于AutoCAD二次开发技术编写程序,把地形图中的地物符号批量转化为数字城管部件数据,不仅减少了作业人员手工数据修改的错漏,减少了作业人员的劳动强度,而且提高了工作效率,节约了测绘成本,实践证明是可行的。
参考文献
[1]冯宏伟,罗宏. 基于VB的自动绘制立面图程序的设计 [J]. 城市勘测,2012(2):94~97.
[2]张区旺,刘晋虎. 基于VBA的高程注记点匹配检查实现[J]. 煤炭工程,2013(8):135~136.
[3]张帆,郑立楷,王华杰. AutoCAD VBA开发精彩实例教程[M]. 北京:清华大学出版社,2004.
Topographic Map Data Transformation of Urban Management Components Application Development
Liu Jun,Wang Xiaowei
(Chang Zhou of Surveying and Mapping Institute,ChangZhou 213003,China)
Key words:digital urban management;components;topographic map;data conversion;program
Abstract:Urban management informatization is the trend of today′s social development and urban management,“digital urban management” a platform for urban management informatization,this paper discusses how to put the large scale topographic map data into the format of the “digital urban management”,has made the beneficial attempt,and develop the corresponding application implements this feature. Used in this paper,the application of design the topographic map data into digital urban management unit,experiments show that it can greatly improve the work efficiency,and meet the demand,for surveying and mapping unit to batch convert the data provides the beneficial reference.
文章编号:1672-8262(2016)03-121-03
中图分类号:P209
文献标识码:B
*收稿日期:2016—03—21
作者简介:刘军(1978—),男,高级工程师,注册测绘师,主要从事测绘质量管理与测绘软件研发工作。