马云飞
(长春市测绘院,吉林 长春 130021)
日照测量是一种常见的测绘工程,是一种为规划及土地主管部门提供科学、准确的基础信息而进行的技术服务工作[1,2]。日照测量主要的测绘内容包括测量建筑物室内地坪、室外地面高程、建筑物高度、建筑层高、建筑物向阳面立面等,日照测量报告为日照测量工程所需提交的重要成果之一[3,4]。目前来说,日照测量的外业数据采集模式主要是采用GPS-RTK技术结合全站仪野外数字化测图方法,内业数据整理可使用EPS2008地理信息工作站对外业采集点位进行平面图、立面图进行绘制,并标注正负零、房屋高度等信息。现阶段日照测量报告编制作业模式多为手工填写,参照日照测量平面图及立面图与Word文档交互进行编制,该方法效率低且极易出错。本文基于EPS2008地理信息工作站模板定制及脚本开发技术,借助Microsoft Office的OLE组件研究并开发一套自动化生成日照测量报告插件,与传统的手动输入报告相比,该方法可极大提升生成日照测量报告的效率,并能避免人为填写所造成的错误,极大提高了作业的自动化水平,除此之外,可利用正则表达式对相应字段进行检查,以确保报告的规范性、完整性及统一性。
EPS2008地理信息工作站是一种集成了外业信息采集、内业数据处理、制图一体化的综合性作业平台,该平台由清华山维公司研发。EPS2008地理信息工作站平台的优点为信息化程度高、兼容度高、可扩展性强、系统开放等。该平台为用户提供了二次开发接口,结合其模板定制技术,可实现多种特定功能的定制目的。下文将说明EPS2008地理信息工作站的模板定制技术及脚本开发技术[5,6]。
模板是EPS2008地理信息工作站的基础,模板不但是数据标准化的有力保证,而且同时体现了生产与技术相分离的先进理念[7,8]。EPS2008模板定义了数据的比例尺、坐标系统、图幅分幅方案、数据输入输出转换对照、属性数据结构等内容,描述了各种地物及注记,包括注记分类号、图层、颜色、地物编码、线型等信息。EPS2008地理信息工作站的模板表现形式上是一个数据库文件,可用Access等数据库类型软件打开。模板定制是以某类工程遵循的技术标准为基准,通过模板语言在软件内置的模板中对该基准进行数字化、标准化、形式化的表达,从而实现工程数据的规范化,为后期的数据处理、数据检查做好前期的铺垫工作。模板定制完成后,均存放在程序运行目录中的Templates子目录下,之后即可以使用该模板进行日照测量工作的基本要素定制以及相关图件的绘制和编辑工作。
以目前所使用的建设工程模板为基础,为方便报告输出,对建设模板下的房屋线、房屋实线、图廓、栋号、正负零、房屋结构层数注记、房屋高度注记分别定制相应编码,并定制日照测量报告Word模板,为自动生成日照测量报告做好基础工作。
EPS2008地理信息工作站支持两类二次开发技术,一是基于基础库的二次开发,二是基于脚本类的二次开发,前者主要使用C++编程语言进行开发,后者支持VBScript和JavaScript作为开发语言,本文采用VBScript语言开发自动化生成日照测量报告插件。EPS2008二次开发提供了SSProcess对象,SSProcess对象是与EPS地理信息工作站交互的主要入口对象,SSProcess对象可调用EPS2008地理信息工作站平台下许多功能强大的方法,使用系统提供的类方法时,需要加上此类名[9,10]。
为解决自动生成报告问题,本文使用VBScript脚本开发语言开发自动生成报告插件,原理流程图如图1所示。本插件由图面检查脚本、栋号匹配脚本、自动输出报告脚本3个脚本组成。图面检查脚本的功能为根据图形之间的拓扑关系,检查图面中出现的错误。栋号匹配脚本的功能是将图面中的正负零、房屋高度注记与栋号相互匹配,为下一步自动生成报告打好基础。在运行图面检查脚本、栋号匹配脚本均无错误提示的情况下,即可使用自动生成报告脚本生成日照测量报告。
图1 自动化输出日照测量报告插件原理流程图
以EPS2008地理信息工作站平面图绘制为例。图面中各类地物均有其对应编码。本文以“建设工程模板”为基础,将日照测量中房屋线、房屋实线、图廓、栋号、正负零、房屋结构层数注记、房屋高度注记均定制对应唯一编码。房屋实线为整栋房屋的最外围边线,房屋实线应包含一个或多个房屋面、一个栋号、一个正负零、一个或多个注记说明,并且不能缺失任何一项信息,一个房屋面还应包含一个房屋结构层数注记。图面检查脚本功能是根据上述图形地物之间的拓扑关系对图面进行检查,如缺失正负零检查、缺失栋号检查、缺失房屋线检查、缺失房屋结构层数注记、缺失房屋高度注记、存在多余正负零检查、存在多余栋号检查、栋号重复检查、注记说明描述不合理检查。若有上述检查错误发生,脚本会将错误详细信息提示给用户,如图2所示。图面检查脚本是自动生成报告非常重要的一步,是规范化图面、排除常见错误的有效手段。
图2 日照测绘平面图及报错提醒
在图面检查步骤完成之后,还需将栋号信息写入至正负零、房屋高度注记之中,即将两者应与栋号进行匹配关联。栋号匹配脚本提供两种匹配关联方式,分别是自动匹配模式及手动匹配模式。自动匹配模式的原理是利用房屋实线应包含栋号、正负零、房屋高度注记之间的拓扑关系,将房屋实线内的正负零、房屋高度注记与房屋实线内的栋号进行匹配关联,操作简单,速度快,可对全图进行匹配操作。但有时会出现房屋实线面积较小,房屋高度注记需注记在房屋实线范围外,用指示线标注的情况。遇到此类情况需使用手动匹配模式,在选择手动匹配模式下,同时框选图面中的正负零、房屋高度注记、栋号,即可将选中的栋号写入正负零、房屋高度注记之中,完成栋号匹配任务。
在栋号匹配完成之后,即可使用生成报告脚本一键生成日照测量报告。根据日照测量平面图中图形地物之间的拓扑关系提取所需信息,对房屋实线编码进行检索,提取实线中的房屋结构信息、栋号信息,根据提取得到的栋号信息继续检索与之相匹配的正负零、房屋高度信息,将提取出的相关信息按日照测量报告格式进行计算整理,输出至定制的日照测量模板中,最后读取图廓中的工程名称、测绘单位、工程位置、测绘时间等信息,将所读取的信息填写至日照测量模板首页,从而完成生成日照测量报告的任务,所生成报告如图3所示。
图3 日照测量报告
以某市某小区的日照测量项目为例进行说明。工程的任务是测绘范围线内小区建筑物的平面图及指定的立面图、建筑物的楼高正负零以及测量建筑物之间的间距。目前常用的作业模式为使用GPS-RTK技术在范围线内布设合适数量的测量控制点,使用全站仪数字化成图方式对所需信息进行测绘。外业数据采集任务完成后,使用EPS2008地理信息工作站进行内业绘制成图。成图完毕后,首先使用图面检查脚本对图面中的压盖错误、包含关系错误、注记不规范错误、缺失关键信息错误进行检查,发现错误需核实并查明错误原因并逐条进行修改。之后使用自动匹配模式使栋号与相应的正负零、房屋高度注记进行匹配,在自动匹配模式不能完成的情况下,使用手动匹配模式对栋号与相应的正负零、房屋高度注记进行匹配。在完成栋号匹配步骤之后,即可使用日照测量报告生成脚本一键生成所需报告,生成的报告仍需与图面测绘信息进行检查核实,以防止遗漏丢失某些重要信息。基于EPS2008地理信息工作站自动化生成日照测量报告插件界面简洁,操作简单,无特殊注意事经实例验证,使用该插件输出报告准确无误,验证了本插件的可行性及可靠性。自动化生成日照测量报告插件如图4所示。
图4 自动化生成日照测量报告插件
本文探索了基于EPS2008地理信息工作站自动化生成日照测量报告的方法,并使用VBScript脚本语言开发了生成报告插件。该插件具有图面检查、栋号匹配、自动输出报告三项功能,并且操作简单,稳定可靠,无特殊注意事项。使用该插件进行报告输出可极大减轻内业作业人员的工作量,提升作业的自动化水平,减少了人工干预,同时又能保证数据的准确性和可靠性,可供业内人士使用参考。