基于EPS中VBScript二次开发在地籍处理中的应用
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2. 2 EPS 中的一些基本规在一个脚本程序中 必须定义 OnClick 函数。
2) 脚本包括以下系统消息函数: BeforeSaveImportData( ) 在执行导入外部数据存库前 激 活; BeforeSaveExportData ( ) 在 执 行 写 出 外 部 数 据 前 激活。 3) SSProcess 是系统缺省定义的对象,是与 EPS 平台 交互的主要入口对象,SSProcess 对象的功能包括工程管 理、选择集操作、图形编辑操作、数据整理、数据转换和系 统设置等; 如: SSProcess. ClearSelection 语句,执行清空选择集操 作; SSProcess. SetSelectCondition " SSObj _ FontString " ," LIKE" ," 砖" 语 句,为 设 置 选 择 集 条 件 为 注 记 内 容 含 有 “砖”字的注记。 4) 脚本代码中支持运行外部脚本。 例如 RunScript 是“脚本语言”,“脚本分组”,“脚本名 称”,其中,“脚本语言”包括“VBScript”,“JScript”; “脚本 分组”指的是脚本分组名称; “脚本名称”脚本代码名称。 其 中 RunScript 语 法 必 须 在 OnClick 函 数 体 外 的 前 部 定义。 5) 脚本代码中支持引用外部脚本。
地籍数据中脚本语言的应用在进行地籍数据处理的过程中面对数量众多的属性信息由于软件的局限性例如在绘制宗地界址线的过程中每一个界址线的转点会产生界址点需要输入相应的界址点点号同时相邻的宗地在同一地点产生两个相邻的界址点如图1所示在给定其中的一个界址点以后其余的和改点在一起的界址点必须要删除
第 34 卷 第 6 期 2011 年 12 月
Microsoft Visual Basic Scripting Edition 是程序开发语 言 Visual Basic 家族的最新成员,它将灵活的脚本应用于 更广泛的领域,包括 Microsoft Internet Explorer 中的 Web 客户机 脚 本 和 Microsoft Internet Information Service 中 的 Web 服务器脚本。而 VBScript 是 Visual Basic Script 的简 称,有时也被缩写为 VBS。VBScript 是微软开发的一种脚 本语言,可以看作是 VB 语言的简化版,与 VBA 的关系也 非常密切,它 具 有 原 语 言 容 易 学 习 的 特 性。 目 前 这 种 语 言广泛应用于网页和 ASP 程序制作,同时还可以直接作 为一个可执行程序,用于调试简单的 VB 语句非常方便。 相对于目前较为流行的 VC 和 VC + + ,Visual Basic Script 有着自己独特的优势,其主要的优点有: 由于 VBScript 由 操作系统,而 不 是 由 网 页 浏 览 器 解 释,它 的 文 档 比 较 小; 易学; 在所有 2000 /98SE 以后的 Windows 版本都可直接使 用; 可以使用其他程序和可使用的对象( 尤其 Microsoft Office) 。
收稿日期:2011 - 02 - 11 作者简介:王 棋( 1985 - ) ,男,河北廊坊人,助理工程师,学士,主要从事工程测量方面的工作。
192
测绘与空间地理信息
2011 年
在目前的条件下,在简单的学习 Visual Basic 这一图 形化编程语言后,可以非常清楚地知道 Visual Basic 编程 语言的编程脉络。在熟悉了 Visual Basic 的编程语言后, 结合实际情况,在测量工作中可以非常方便地编写程序, 方便测量的工作。尤其是在地籍这让人头晕的数据处理 和数据检查中,充分地利用 VBS 编程,编写一些小的脚本 文件,实现地籍数据的半自动化处理。
3 地籍数据中脚本语言的应用
在进行地籍 数 据 处 理 的 过 程 中,面 对 数 量 众 多 的 属
性信息,由于软件的局限性,例如 在 绘 制 宗 地 界 址 线 的 过程中,每一个界址线的转点会 产 生 界 址 点,需 要 输 入 相 应 的 界 址 点 点 号 ,同 时 相 邻 的 宗 地 在 同 一 地 点 产 生 两 个相邻的界址点( 如图 1 所示) ,在给定其中的一个界址 点 以 后 ,其 余 的 和 改 点 在 一 起 的 界 址 点 必 须 要 删 除 。 如 果 一 个 一 个 的 选 择 查 看 ,那 样 费 时 费 力 还 不 一 定 能 够 查 完 。 同 时 在 一 个 街 坊 中 面 临 着 点 号 重 复 的 现 象 ,虽 然 在 清 华 山 维 的 属 性 窗 口 中 能 够 查 到 ,同 样 的 比 较 烦 琐 。 面 对众多的用清华山维不能处理的问题,我们想使用 VBScript 脚本语言进 行 清 华 山 维 的 二 次 开 发,以 便 更 快 捷 的 处 理 地 籍 数 据 中 的 问 题 。 例 如 可 以 编 写 代 码 实 现 ,删 除没有点名的重复界址点中的一个和删除一个有点名 与几个没有点名重合的没有点名的界址点。其中代码 如下。
0引言
1 VBScript 的简介
EPS 2008 地理信息工作站是北京清华山维新技术开 发有限公司研 发 的 面 向 测 绘、基 础 地 理 信 息 系 统 生 产 的 软件系统。该软件在地理信息系统应用的角度构建数据 模型,综合 CAD 技术与 GIS 技术,以数据库为核心,将图 形和属性关联为一体,从根本上推动测绘成果信息建设。 并且该软件支持各种测量成果,在外业采集时,测绘成果 可随时编辑入库,也可以随时下载更新,更加方便地实现 测量外业、内业、入库一体化。最主要的是其支持多种基 础编程语言的 二 次 开 发,方 便 了 用 户 提 高 自 身 的 市 场 竞 争力。现在随 着 城 镇 地 籍 调 查 的 不 断 进 行,在 数 据 处 理 过程中还会遇 到 各 种 有 关 问 题,在 使 用 清 华 山 维 软 件 中 进行的过程中 会 遇 到 各 种 的 小 问 题,但 是 软 件 还 不 能 处 理,如果人工处理的话,则是一个工作量巨大并重复性比 较大的工作。在这里我们探讨一下在 VBScript 基础上进 行二次开发,实现地籍数据处理的工作过程,从而达到降 低劳动强度,提高工作效率。
图 1 宗地界址点图 Fig. 1 Map of boundary points in a parcel
Function ScanString ( ByVal str,ByVal sep,ByRef strs ( ) ,ByRef count)
Dim sepidx1,sepidx2,strtemp count = 0 sepidx1 = 1 sepidx2 = InStr( sepidx1 ,str,sep,1) While ( sepidx2 > 0) strs( count) = Mid( str,sepidx1,sepidx2 - sepidx1) sepidx1 = sepidx2 + 1 sepidx2 = InStr( sepidx1,str,sep,1) count = count + 1 Wend strs ( count ) = Mid ( str,sepidx1,Len ( str ) + 1 - sepidx1) count = count + 1 End Function Sub OnClick( ) SSProcess. ClearSelection SSProcess. ClearSelectCondition SSProcess. SetSelectCondition " SSObj _ Type" ," = " ," POINT" SSProcess. SetSelectCondition " SSObj _ Code" ," = " ," 1510" SSProcess. SelectFilter
测绘与空间地理信息
GEOMATICS & SPATIAL INFORMATION TECHNOLOGY
Vol. 34,No. 6 Dec. ,2011
基于 EPS 中 VBScript 二次开发在地籍处理中的应用
王 棋,王 帅,赵海洋
( 河北省地矿局 测绘院,河北 廊坊 065000)
摘 要:通过对清华山维中 VBScript 脚本语言的构成、规则、函数和运行的介绍,探究其开发特点,结合地籍处理
WANG Qi,WANG Shuai,ZHAO Hai - yang ( Surveying and Mapping Institute,Hebei Provincial Bureau of Geology and Mineral,Langfang 065000,China)
Abstract: By introducing the composition,rules,functions and operation of VBScript scripting language in Tsinghua Shanwei,this paper explores its development characteristics. Combining the practical needs of cadastral process to write scripts,by implementing the function extensions such as deleting the empty boundary points,deleting the repeated boundary points without point names,the objectives of reducing the labor intensity and increasing the productivity are achieved. Key words: Qinghua Shanwei; cadastral process; VBScript
2 EPS 脚本语言
2. 1 EPS 脚本语言的组织
EPS 脚本语言在 EPS 脚本编辑器中运行,具体运行 是解释性执行。EPS 脚本编辑器采用目录树方式组织脚 本,支持新建脚本分组、删除脚本分组、新建脚本、删除脚 本、保存脚本 和 执 行 脚 本 等 功 能。 脚 本 文 件 与 作 业 面 板 设置一同存放,用户选择不同面板,EPS 自动加载对应脚 本语言。脚本代码以 VBS 或 JSS 为扩展名,统一存储在 EPS 程序执行目录下的 Script 目录中。
SSProcess 是系统缺省定义的对象,无需在脚本中专 门定义,可 直 接 使 用,是 与 EPS 平 台 交 互 的 主 要 对 象。 SSProcess 对象的功能包括工程管理、选择集操作、图形编 辑操作、数据整 理、数 据 转 换、坐 标 体 系 转 换 和 系 统 设 置 等功能。SSProcess 无需在脚本中专门定义,可直接使用, 采用“SSProcess. 函 数 名”的 方 式 调 用 SSProcess 对 象 的 方法。
第6 期
王 棋等: 基于 EPS 中 VBScript 二次开发在地籍处理中的应用
193
geocount = SSProcess. GetSelGeoCount msgbox geocount Dim arID( 100000) ,idCount for i = 0 to geocount - 1 SSProcess. GetSelGeoPoint i,0,x,y,z,ptype,name ids = SSProcess. SearchNearObjIDs ( x,y,0. 001,0," 1510" ,0 ) ScanString ids," ," ,arID,idCount if idCount > 1 and name = " " then SSProcess. DelSelGeo i end if next SSProcess. SaveBufferObjToDatabase msgbox " 成功! " End Sub 也可以通过 编 码 实 现 查 找 重 复 的 界 址 点 的 命 令,其 中主要的编码如下: Dim arID( 100000) ,idCount dim str( 1000) ,iscf dim strcf iscf = 2 n =1 for i = 0 to geocount - 1 SSProcess. GetSelGeoPoint i,0,x,y,z,ptype,name if name < > " " then If n = 1 then str( n) = name n =n +1 elseif n > 1 then For j = 1 to n - 1 if str( j) = name then iscf = 1 SSProcess. SetSelGeoValue i," SSObj _ Color " ," RGB ( 255,255,0) "
实际需要编写脚本程序,通过实现删除空界址点号、删除多个重复界址点中没有点名的界址点等功能扩展,从而
达到降低劳动强度,提高工作效率的目的。
关键词:清华山维; 地籍处理; VBScript
中图分类号:TP312. 2
文献标识码:B
文章编号:1672 - 5867(2011)06 - 0191 - 03
Application of VBScript Secondary Development in Cadastral Process Based on EPS
2) 脚本包括以下系统消息函数: BeforeSaveImportData( ) 在执行导入外部数据存库前 激 活; BeforeSaveExportData ( ) 在 执 行 写 出 外 部 数 据 前 激活。 3) SSProcess 是系统缺省定义的对象,是与 EPS 平台 交互的主要入口对象,SSProcess 对象的功能包括工程管 理、选择集操作、图形编辑操作、数据整理、数据转换和系 统设置等; 如: SSProcess. ClearSelection 语句,执行清空选择集操 作; SSProcess. SetSelectCondition " SSObj _ FontString " ," LIKE" ," 砖" 语 句,为 设 置 选 择 集 条 件 为 注 记 内 容 含 有 “砖”字的注记。 4) 脚本代码中支持运行外部脚本。 例如 RunScript 是“脚本语言”,“脚本分组”,“脚本名 称”,其中,“脚本语言”包括“VBScript”,“JScript”; “脚本 分组”指的是脚本分组名称; “脚本名称”脚本代码名称。 其 中 RunScript 语 法 必 须 在 OnClick 函 数 体 外 的 前 部 定义。 5) 脚本代码中支持引用外部脚本。
地籍数据中脚本语言的应用在进行地籍数据处理的过程中面对数量众多的属性信息由于软件的局限性例如在绘制宗地界址线的过程中每一个界址线的转点会产生界址点需要输入相应的界址点点号同时相邻的宗地在同一地点产生两个相邻的界址点如图1所示在给定其中的一个界址点以后其余的和改点在一起的界址点必须要删除
第 34 卷 第 6 期 2011 年 12 月
Microsoft Visual Basic Scripting Edition 是程序开发语 言 Visual Basic 家族的最新成员,它将灵活的脚本应用于 更广泛的领域,包括 Microsoft Internet Explorer 中的 Web 客户机 脚 本 和 Microsoft Internet Information Service 中 的 Web 服务器脚本。而 VBScript 是 Visual Basic Script 的简 称,有时也被缩写为 VBS。VBScript 是微软开发的一种脚 本语言,可以看作是 VB 语言的简化版,与 VBA 的关系也 非常密切,它 具 有 原 语 言 容 易 学 习 的 特 性。 目 前 这 种 语 言广泛应用于网页和 ASP 程序制作,同时还可以直接作 为一个可执行程序,用于调试简单的 VB 语句非常方便。 相对于目前较为流行的 VC 和 VC + + ,Visual Basic Script 有着自己独特的优势,其主要的优点有: 由于 VBScript 由 操作系统,而 不 是 由 网 页 浏 览 器 解 释,它 的 文 档 比 较 小; 易学; 在所有 2000 /98SE 以后的 Windows 版本都可直接使 用; 可以使用其他程序和可使用的对象( 尤其 Microsoft Office) 。
收稿日期:2011 - 02 - 11 作者简介:王 棋( 1985 - ) ,男,河北廊坊人,助理工程师,学士,主要从事工程测量方面的工作。
192
测绘与空间地理信息
2011 年
在目前的条件下,在简单的学习 Visual Basic 这一图 形化编程语言后,可以非常清楚地知道 Visual Basic 编程 语言的编程脉络。在熟悉了 Visual Basic 的编程语言后, 结合实际情况,在测量工作中可以非常方便地编写程序, 方便测量的工作。尤其是在地籍这让人头晕的数据处理 和数据检查中,充分地利用 VBS 编程,编写一些小的脚本 文件,实现地籍数据的半自动化处理。
3 地籍数据中脚本语言的应用
在进行地籍 数 据 处 理 的 过 程 中,面 对 数 量 众 多 的 属
性信息,由于软件的局限性,例如 在 绘 制 宗 地 界 址 线 的 过程中,每一个界址线的转点会 产 生 界 址 点,需 要 输 入 相 应 的 界 址 点 点 号 ,同 时 相 邻 的 宗 地 在 同 一 地 点 产 生 两 个相邻的界址点( 如图 1 所示) ,在给定其中的一个界址 点 以 后 ,其 余 的 和 改 点 在 一 起 的 界 址 点 必 须 要 删 除 。 如 果 一 个 一 个 的 选 择 查 看 ,那 样 费 时 费 力 还 不 一 定 能 够 查 完 。 同 时 在 一 个 街 坊 中 面 临 着 点 号 重 复 的 现 象 ,虽 然 在 清 华 山 维 的 属 性 窗 口 中 能 够 查 到 ,同 样 的 比 较 烦 琐 。 面 对众多的用清华山维不能处理的问题,我们想使用 VBScript 脚本语言进 行 清 华 山 维 的 二 次 开 发,以 便 更 快 捷 的 处 理 地 籍 数 据 中 的 问 题 。 例 如 可 以 编 写 代 码 实 现 ,删 除没有点名的重复界址点中的一个和删除一个有点名 与几个没有点名重合的没有点名的界址点。其中代码 如下。
0引言
1 VBScript 的简介
EPS 2008 地理信息工作站是北京清华山维新技术开 发有限公司研 发 的 面 向 测 绘、基 础 地 理 信 息 系 统 生 产 的 软件系统。该软件在地理信息系统应用的角度构建数据 模型,综合 CAD 技术与 GIS 技术,以数据库为核心,将图 形和属性关联为一体,从根本上推动测绘成果信息建设。 并且该软件支持各种测量成果,在外业采集时,测绘成果 可随时编辑入库,也可以随时下载更新,更加方便地实现 测量外业、内业、入库一体化。最主要的是其支持多种基 础编程语言的 二 次 开 发,方 便 了 用 户 提 高 自 身 的 市 场 竞 争力。现在随 着 城 镇 地 籍 调 查 的 不 断 进 行,在 数 据 处 理 过程中还会遇 到 各 种 有 关 问 题,在 使 用 清 华 山 维 软 件 中 进行的过程中 会 遇 到 各 种 的 小 问 题,但 是 软 件 还 不 能 处 理,如果人工处理的话,则是一个工作量巨大并重复性比 较大的工作。在这里我们探讨一下在 VBScript 基础上进 行二次开发,实现地籍数据处理的工作过程,从而达到降 低劳动强度,提高工作效率。
图 1 宗地界址点图 Fig. 1 Map of boundary points in a parcel
Function ScanString ( ByVal str,ByVal sep,ByRef strs ( ) ,ByRef count)
Dim sepidx1,sepidx2,strtemp count = 0 sepidx1 = 1 sepidx2 = InStr( sepidx1 ,str,sep,1) While ( sepidx2 > 0) strs( count) = Mid( str,sepidx1,sepidx2 - sepidx1) sepidx1 = sepidx2 + 1 sepidx2 = InStr( sepidx1,str,sep,1) count = count + 1 Wend strs ( count ) = Mid ( str,sepidx1,Len ( str ) + 1 - sepidx1) count = count + 1 End Function Sub OnClick( ) SSProcess. ClearSelection SSProcess. ClearSelectCondition SSProcess. SetSelectCondition " SSObj _ Type" ," = " ," POINT" SSProcess. SetSelectCondition " SSObj _ Code" ," = " ," 1510" SSProcess. SelectFilter
测绘与空间地理信息
GEOMATICS & SPATIAL INFORMATION TECHNOLOGY
Vol. 34,No. 6 Dec. ,2011
基于 EPS 中 VBScript 二次开发在地籍处理中的应用
王 棋,王 帅,赵海洋
( 河北省地矿局 测绘院,河北 廊坊 065000)
摘 要:通过对清华山维中 VBScript 脚本语言的构成、规则、函数和运行的介绍,探究其开发特点,结合地籍处理
WANG Qi,WANG Shuai,ZHAO Hai - yang ( Surveying and Mapping Institute,Hebei Provincial Bureau of Geology and Mineral,Langfang 065000,China)
Abstract: By introducing the composition,rules,functions and operation of VBScript scripting language in Tsinghua Shanwei,this paper explores its development characteristics. Combining the practical needs of cadastral process to write scripts,by implementing the function extensions such as deleting the empty boundary points,deleting the repeated boundary points without point names,the objectives of reducing the labor intensity and increasing the productivity are achieved. Key words: Qinghua Shanwei; cadastral process; VBScript
2 EPS 脚本语言
2. 1 EPS 脚本语言的组织
EPS 脚本语言在 EPS 脚本编辑器中运行,具体运行 是解释性执行。EPS 脚本编辑器采用目录树方式组织脚 本,支持新建脚本分组、删除脚本分组、新建脚本、删除脚 本、保存脚本 和 执 行 脚 本 等 功 能。 脚 本 文 件 与 作 业 面 板 设置一同存放,用户选择不同面板,EPS 自动加载对应脚 本语言。脚本代码以 VBS 或 JSS 为扩展名,统一存储在 EPS 程序执行目录下的 Script 目录中。
SSProcess 是系统缺省定义的对象,无需在脚本中专 门定义,可 直 接 使 用,是 与 EPS 平 台 交 互 的 主 要 对 象。 SSProcess 对象的功能包括工程管理、选择集操作、图形编 辑操作、数据整 理、数 据 转 换、坐 标 体 系 转 换 和 系 统 设 置 等功能。SSProcess 无需在脚本中专门定义,可直接使用, 采用“SSProcess. 函 数 名”的 方 式 调 用 SSProcess 对 象 的 方法。
第6 期
王 棋等: 基于 EPS 中 VBScript 二次开发在地籍处理中的应用
193
geocount = SSProcess. GetSelGeoCount msgbox geocount Dim arID( 100000) ,idCount for i = 0 to geocount - 1 SSProcess. GetSelGeoPoint i,0,x,y,z,ptype,name ids = SSProcess. SearchNearObjIDs ( x,y,0. 001,0," 1510" ,0 ) ScanString ids," ," ,arID,idCount if idCount > 1 and name = " " then SSProcess. DelSelGeo i end if next SSProcess. SaveBufferObjToDatabase msgbox " 成功! " End Sub 也可以通过 编 码 实 现 查 找 重 复 的 界 址 点 的 命 令,其 中主要的编码如下: Dim arID( 100000) ,idCount dim str( 1000) ,iscf dim strcf iscf = 2 n =1 for i = 0 to geocount - 1 SSProcess. GetSelGeoPoint i,0,x,y,z,ptype,name if name < > " " then If n = 1 then str( n) = name n =n +1 elseif n > 1 then For j = 1 to n - 1 if str( j) = name then iscf = 1 SSProcess. SetSelGeoValue i," SSObj _ Color " ," RGB ( 255,255,0) "
实际需要编写脚本程序,通过实现删除空界址点号、删除多个重复界址点中没有点名的界址点等功能扩展,从而
达到降低劳动强度,提高工作效率的目的。
关键词:清华山维; 地籍处理; VBScript
中图分类号:TP312. 2
文献标识码:B
文章编号:1672 - 5867(2011)06 - 0191 - 03
Application of VBScript Secondary Development in Cadastral Process Based on EPS