南方CASS数据向清华山维EpsW2005的转换方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
建立一个数据工程时,需要以一个准备好的“技术规则”作为依据,以使数据全面规范化,这个技术规则称为“模板”。模板是一个Access的mdb(Microsoft DataBase)数据库,其扩展名设定为mdt,以示区别于mdb数据库。主要内容包括地理数据结构表定义、数据分层分色方案、编码体系及符号化描述定义、系统环境用户化设置以及用户扩展属性表定义。基于模板新建工程,即得到一个等同于模板的拷贝,数据模板不但是数据标准化的有力保证,而且同时体现了生产与技术相分离先进理念以及与其他GIS平台实现数据交换的信息映射机制。
3.2编码映射表
编制编码映射表主要目的是定义两个软件平台的编码对应关系,利于编辑,保证wk.baidu.com个平台能进行正确的编码信息转换。
南方CASS中任何线状地物或面状地物,只要骨架线的数据(位置等)发生改变,与骨架线相关的所有符号也会发生相应的改变,因些只需要在编码映射表中定义需要转换的骨架线的编码。
3.3 读取南方CASS的DXF文件
关键词:数据结构、模板、编码映射、VB、SQL
1 引言
清华山维公司早期的软件产品主要是外业测图系统,即电子平板系统,产品名称为EpsW,如EpsW98。随着测绘技术和地理信息技术的不断发展与深入,围绕着数据的生产、管理和应用,逐步形成了以图形数据库技术为核心,面向GIS的地理数据采集与处理、入库与建库以及数据更新,全方位“EPS”软件产品体系。EpsW2005只是EPS体系中的一员。
End Select
Codes = ReadCodes
Loop
……
End Select
End If
Close #1
3.4 用SQL语句将文本写入数据工程
……
Open "c:\tempdxf.txt " For Input As #1
Do Until EOF(1)
Line Input #1, LIN‘读入文本文件的一行
2.2地理数据结构表
地理数据结构表是存储各类地物、注记的表集合。工程建立后,加入的每个点、线、面类的地物、注记,做为一条记录存放在工程数据库的数据结构表中,它们包括:GeoPointTB(点表)->CPointTB_p、GeoLineTB(线表)->CPointTB_l、GeoAreaTB(面表)->CPointTB_a、MarkNoteTB(注记表)->CPointTB_n。如房屋,其对象的基本特征(图层、颜色、线宽等)存储在GeoLineTB表中,坐标点列存储在CPointTB_l表中,二表间由对象的ID号关联。ID号在数据结构表中具有唯一性。对象的基本属性特征通过编码从FeatureCodeTB表中获得,符号解析的具体描述同样由编码在SymbolScriptTB表中得到相关定义。
参考文献:
[1]赵学慧,赵玮.Visual Basic 程序开发完整实例教程.北京.海洋出版社,2003.
[2]王成春,萧雅云.Access 2003 VBA程序设计.北京.中国铁道出版社,2005.
[3]李伟红 主编.SQL Server 2005 实用教程.北京.水利水电出版社,2008.
[4]清华山维EpsW2005使用说明书
南方CASS数据向清华山维EpsW2005的转换方法
刘云波许茵
(浙江省测绘大队,杭州310030)
摘要:简述了清华山维EpsW2005、南方CASS软件的数据结构特点及数据模板的内容、作用,分析了清华山维EpsW2005的空间数据组织与图形数据库结构的关系,提出编制编码映射表进行数据转换的方法。用VB读取DXF文件,SQL语言将文本写入EpsW2005数据工程,给出了关键代码。根据实际转换的工作经验,针对具体的细节问题提出了解决方法。
南方CASS的地物编码具有唯一性,但于CAD的扩展属性可以是任何值。进行不规范作图时,会出现在不同的对象类型使用相同的编码,如将点状地物的编码附给线状地物等,可以借助南方CASS的检查工具进行处理。
南方CASS与EpsW2005相同地物的对象类型不同。如河流流向在CASS中为点状地物但在EpsW2005中为线状,需要在读取DXF时,根据点状地物的旋转角计算出在EpsW2005中的另一个方向点。地物的绘制方式不同,如棚房、坎子等,CASS中符号是在绘制方向的右边,EpsW2005内刚好相反。
南方CASS采用骨架线和实体扩展属性来组织实体的技术,既保证了图形编辑的灵活性,又保证了与GIS数据转换的完整性。骨架线是数字线划图导入GIS的一种概念性数据结构和支撑技术,也是CASS的一种底层数据结构。这种数据结构使得CASS的地图编辑可以直接针对骨架线进行。
2EpsW2005模板介绍
2.1模板内容及作用
Set MbRs = MbDb.Recordsets(SQL)
……
4体会
通过对南方CASS数据向EpsW2005数据工程转换的实际操作中,笔者积累了一些经验,在数据转换中起着非常重要的作用,直接关系到数据转换的成败。主要有以下几点:
骨架线是不可或缺的,直接关系到转换后数据的完整性。在南方CASS里作图时,应把骨架线层打开,保证符号与骨架线相对应,避免出现有符号无骨架线,有骨架线无符号的情况。
在南方CASS中,文字是分层存放的,无法根据图层、字体内容及字体大小进行严格区分。建立相应的文字样式,不仅可以规范文字的字体类型及大小,而且有利于进行字体映射。
5结语
在进行南方CASS数据向EpsW2005转换的过程中,笔者较为系统的介绍了两个数据平台的数据结构特点,摸索出一套较为实用的数据转换方法。提出了在数据转换中应注意的一些具体细节问题的解决技巧,从而使用户更好的利用编码映射表进行转换,保证转换后的数据完整,也为其他不同数据平台向EpsW2005转换提供了经验。
表一:空间数据组织与图形数据库结构的关系
从数据的组织结构可以看到,数据的空间特征和属性信息一体化存储记录清晰,脱离开了EPS平台环境,通过数据库访问,数据的信息一样可以得到。
3 数据转换
3.1 基本思路
用VB读取南方CASS的DXF文件,根据编码映射表的定义,用VB读取南方CASS 的DXF文件,存成文本文件。用SQL语言将文本文件写入到EpsW2005数据工程的各数据表中。
Case "1000" '对象地物编码
tempstr = ReLine(dzbSTR, Codes(1) & ",")’在编码映射表中返回对应的EpsW2005的地物编码。如果未返回,说明这个对象不需要转换。
Case "0"‘对象要素结束,将信息写入
……
Print #1, TB‘地物信息写入文本
Print #1, PointTB‘坐标写入文本
db.ExecuteSQL
……
SQL= "INSERT INTO " &坐标数据表& " (ID,SeqID,X,Y,Z,PointType) VALUES( " & LIN & ")"
db.ExecuteSQL
……
Loop
3.5根据模板对数据进行规范
……
SQL = "update GeoLineTB,newcode setGeoLineTB.LayerName=newcode.LayerName, GeoLineTB.LineType=newcode.LineType, GeoLineTB.LineWidth=newcode.LineWidth, GeoLineTB.LineColor=newcode.LineColor,GeoLineTB.Byname=newcode.Byname where GeoLineTB.code=newcode.code"
If Codes(0) = 0 Then‘第一个对象要素开始
Select Case Codes(1)‘对象类别
Case "LWPOLYLINE"
Codes = ReadCodes
Do‘读取对象要素内容
Select Case Codes(0)
Case "10" '根据对象要素的代码进行处理。x坐标
……
SQL= "INSERT INTO " &数据表& " (ID,Scale,Code,Mark,LayerName,LineType,LineWidth,LineColor,FillColor,MinX,MinY,MaxX,MaxY,Reference,UserID,Relation,Byname,GroupID,SymbolRef) VALUES( " & LIN & ")"
根据编码映射表读取DXF文件中的LWPOLYLINE、POLYLINE、LINE、CIRCLE、INSERT、TEXT等对象的地物,存成与EpsW2005工程数据库相同结构的文本文件。
……
Open "c:/TempDxf.txt" For Output As #1‘打开临时文件
……
Codes = ReadCodes‘读取两行
3.2编码映射表
编制编码映射表主要目的是定义两个软件平台的编码对应关系,利于编辑,保证wk.baidu.com个平台能进行正确的编码信息转换。
南方CASS中任何线状地物或面状地物,只要骨架线的数据(位置等)发生改变,与骨架线相关的所有符号也会发生相应的改变,因些只需要在编码映射表中定义需要转换的骨架线的编码。
3.3 读取南方CASS的DXF文件
关键词:数据结构、模板、编码映射、VB、SQL
1 引言
清华山维公司早期的软件产品主要是外业测图系统,即电子平板系统,产品名称为EpsW,如EpsW98。随着测绘技术和地理信息技术的不断发展与深入,围绕着数据的生产、管理和应用,逐步形成了以图形数据库技术为核心,面向GIS的地理数据采集与处理、入库与建库以及数据更新,全方位“EPS”软件产品体系。EpsW2005只是EPS体系中的一员。
End Select
Codes = ReadCodes
Loop
……
End Select
End If
Close #1
3.4 用SQL语句将文本写入数据工程
……
Open "c:\tempdxf.txt " For Input As #1
Do Until EOF(1)
Line Input #1, LIN‘读入文本文件的一行
2.2地理数据结构表
地理数据结构表是存储各类地物、注记的表集合。工程建立后,加入的每个点、线、面类的地物、注记,做为一条记录存放在工程数据库的数据结构表中,它们包括:GeoPointTB(点表)->CPointTB_p、GeoLineTB(线表)->CPointTB_l、GeoAreaTB(面表)->CPointTB_a、MarkNoteTB(注记表)->CPointTB_n。如房屋,其对象的基本特征(图层、颜色、线宽等)存储在GeoLineTB表中,坐标点列存储在CPointTB_l表中,二表间由对象的ID号关联。ID号在数据结构表中具有唯一性。对象的基本属性特征通过编码从FeatureCodeTB表中获得,符号解析的具体描述同样由编码在SymbolScriptTB表中得到相关定义。
参考文献:
[1]赵学慧,赵玮.Visual Basic 程序开发完整实例教程.北京.海洋出版社,2003.
[2]王成春,萧雅云.Access 2003 VBA程序设计.北京.中国铁道出版社,2005.
[3]李伟红 主编.SQL Server 2005 实用教程.北京.水利水电出版社,2008.
[4]清华山维EpsW2005使用说明书
南方CASS数据向清华山维EpsW2005的转换方法
刘云波许茵
(浙江省测绘大队,杭州310030)
摘要:简述了清华山维EpsW2005、南方CASS软件的数据结构特点及数据模板的内容、作用,分析了清华山维EpsW2005的空间数据组织与图形数据库结构的关系,提出编制编码映射表进行数据转换的方法。用VB读取DXF文件,SQL语言将文本写入EpsW2005数据工程,给出了关键代码。根据实际转换的工作经验,针对具体的细节问题提出了解决方法。
南方CASS的地物编码具有唯一性,但于CAD的扩展属性可以是任何值。进行不规范作图时,会出现在不同的对象类型使用相同的编码,如将点状地物的编码附给线状地物等,可以借助南方CASS的检查工具进行处理。
南方CASS与EpsW2005相同地物的对象类型不同。如河流流向在CASS中为点状地物但在EpsW2005中为线状,需要在读取DXF时,根据点状地物的旋转角计算出在EpsW2005中的另一个方向点。地物的绘制方式不同,如棚房、坎子等,CASS中符号是在绘制方向的右边,EpsW2005内刚好相反。
南方CASS采用骨架线和实体扩展属性来组织实体的技术,既保证了图形编辑的灵活性,又保证了与GIS数据转换的完整性。骨架线是数字线划图导入GIS的一种概念性数据结构和支撑技术,也是CASS的一种底层数据结构。这种数据结构使得CASS的地图编辑可以直接针对骨架线进行。
2EpsW2005模板介绍
2.1模板内容及作用
Set MbRs = MbDb.Recordsets(SQL)
……
4体会
通过对南方CASS数据向EpsW2005数据工程转换的实际操作中,笔者积累了一些经验,在数据转换中起着非常重要的作用,直接关系到数据转换的成败。主要有以下几点:
骨架线是不可或缺的,直接关系到转换后数据的完整性。在南方CASS里作图时,应把骨架线层打开,保证符号与骨架线相对应,避免出现有符号无骨架线,有骨架线无符号的情况。
在南方CASS中,文字是分层存放的,无法根据图层、字体内容及字体大小进行严格区分。建立相应的文字样式,不仅可以规范文字的字体类型及大小,而且有利于进行字体映射。
5结语
在进行南方CASS数据向EpsW2005转换的过程中,笔者较为系统的介绍了两个数据平台的数据结构特点,摸索出一套较为实用的数据转换方法。提出了在数据转换中应注意的一些具体细节问题的解决技巧,从而使用户更好的利用编码映射表进行转换,保证转换后的数据完整,也为其他不同数据平台向EpsW2005转换提供了经验。
表一:空间数据组织与图形数据库结构的关系
从数据的组织结构可以看到,数据的空间特征和属性信息一体化存储记录清晰,脱离开了EPS平台环境,通过数据库访问,数据的信息一样可以得到。
3 数据转换
3.1 基本思路
用VB读取南方CASS的DXF文件,根据编码映射表的定义,用VB读取南方CASS 的DXF文件,存成文本文件。用SQL语言将文本文件写入到EpsW2005数据工程的各数据表中。
Case "1000" '对象地物编码
tempstr = ReLine(dzbSTR, Codes(1) & ",")’在编码映射表中返回对应的EpsW2005的地物编码。如果未返回,说明这个对象不需要转换。
Case "0"‘对象要素结束,将信息写入
……
Print #1, TB‘地物信息写入文本
Print #1, PointTB‘坐标写入文本
db.ExecuteSQL
……
SQL= "INSERT INTO " &坐标数据表& " (ID,SeqID,X,Y,Z,PointType) VALUES( " & LIN & ")"
db.ExecuteSQL
……
Loop
3.5根据模板对数据进行规范
……
SQL = "update GeoLineTB,newcode setGeoLineTB.LayerName=newcode.LayerName, GeoLineTB.LineType=newcode.LineType, GeoLineTB.LineWidth=newcode.LineWidth, GeoLineTB.LineColor=newcode.LineColor,GeoLineTB.Byname=newcode.Byname where GeoLineTB.code=newcode.code"
If Codes(0) = 0 Then‘第一个对象要素开始
Select Case Codes(1)‘对象类别
Case "LWPOLYLINE"
Codes = ReadCodes
Do‘读取对象要素内容
Select Case Codes(0)
Case "10" '根据对象要素的代码进行处理。x坐标
……
SQL= "INSERT INTO " &数据表& " (ID,Scale,Code,Mark,LayerName,LineType,LineWidth,LineColor,FillColor,MinX,MinY,MaxX,MaxY,Reference,UserID,Relation,Byname,GroupID,SymbolRef) VALUES( " & LIN & ")"
根据编码映射表读取DXF文件中的LWPOLYLINE、POLYLINE、LINE、CIRCLE、INSERT、TEXT等对象的地物,存成与EpsW2005工程数据库相同结构的文本文件。
……
Open "c:/TempDxf.txt" For Output As #1‘打开临时文件
……
Codes = ReadCodes‘读取两行