高 劲 黄山山 祝 唯
(广州地铁集团有限公司,510038,广州∥第一作者,工程师)
广州地铁将展开新一轮的新线建设,致其新增供电线路的规模数量逐步增多,电力电缆的覆盖范围也不断扩大。城市现代化的不断发展及市政建设的大力推进不可避免地导致所处线路经受大面积、多频率的作业施工,这无疑给地铁供电系统的稳定运行埋下了严重的安全隐患。另外一方面,由于年代久远所致的公司内人员变动及道路沿途地貌变迁,使得现有资料与实际信息存在多处不符,关键信息无法由员工准确描述汇总;同时现有电缆线路的信息资料均以图纸、文档、图片的方式存储,使得后续检索查阅时效率不高,施工数据未能有效存储,不足以建立数据分析依据。为此,本文进行了广泛调研。调研表明,在电力行业中,针对各种市政建设施工过程中造成电缆毁坏事故频频发生的现状,部分电网公司已委托相关高校、科技公司研发一套GE(Google Earth)系统用来记录线路路径、施工点、查询路径施工作业信息[1],并通过手持终端查询电缆和施工图库,以动态掌握作业任务现场进度[2]。在水利及通信等行业中,都有通过地图平台API的方式来实现对应设备信息查询的系统[3-5],这里不再赘述。
在城市轨道交通行业的调研中,基于地图的地铁电缆巡视软件虽尚未在行业中应用,但随着数据信息化时代的发展,这将会成为今后的趋势。因此,本文针对线路地理显示、信息完善录入、信息统计分析的层级,以电缆巡视为研究对象,结合百度地图API、数据库、C#、JavaScript等编程技术,设计了一套基于百度地图的电缆巡视分析软件并应用于当前电缆巡视日常工作,以提高电缆巡视工作效率,加强电缆的统计管理和运行管理。
目前在电缆巡检的过程中存在诸如数据信息化程度低、巡视对象位置不明确、巡视现场信息难统计、巡检效率偏低等问题,因此本系统设计目标需满足以下几点:
(1)设计电缆巡检显示查询功能,巡检员可通过PC端查询电缆走向及电缆井等重要位置信息、具体点的全景勘察、地图标注施工坐标及图片检索查询。
(2)设计电缆井、电缆路径、施工作业点的上传录入功能,通过该功能完善及后续修订编辑相关线路路径,同时,增加电缆井位置信息,以及电缆井、施工作业图片录入。
(3)设计施工信息数据统计分析功能,通过分析比较各线路施工信息的时段、次数、路段,提供优化调整巡检模式的数据支撑。
系统的设计原则遵循如下几条:
(1)安全性原则:对系统中各种用户的权限进行管理,用户访问系统需要进行身份验证。系统数据一般保存在数据库系统中,主要涉及数据库的安全性、完整性、实用性。
(2)系统的可维护性原则:系统通过模块化、结构化的设计,使系统具备较好的可理解性、可测试性和可修改性。
(3)系统的可扩展性原则:设计合理的结构功能,根据实际需求应具备良好的扩展性。
(4)高性能可靠性原则:系统能够在一定等级并发访问的条件下保持稳定性,并具备较快的响应能力和执行速度。
通过JavaScript语言调用百度地图引擎实现地图可视功能,并将线路路径、电缆井等重要位置信息、巡视标注由地图覆盖物的方式显示。覆盖物能随地图的缩放等级自适应调整大小位置。常见的覆盖物有:标注点(Marker)、折线(Polyline)、信息窗口(InfoWindow)。其中,标注点主要用于地图地理坐标定位显示,如施工点位置信息录入及电缆井等重要位置信息地图定位;折线主要用于电缆线路的路径走向显示;信息窗口主要用于所记录施工信息的文字详情预览。结合C#语言设计人机界面,将由JavaScript所显示的地图页面嵌入自身的Webbrowse控件中以提供基于Html的浏览功能,并通过人机操作显示、编辑相关覆盖物等信息。
数据库负责存储相关信息,实现软件查询、统计分析功能。通过软件功能需求分析,建立3个数据表(见图1)。表1主要用于电缆井等重要位置信息的记录,包含所属线路、线路名称、位置坐标、电缆井编号、电缆井备注、电缆井图片的列标题;表2主要用于电缆线路位置信息的记录,包含线路编号、路径位置坐标组、线路名称的列标题;表3主要用于施工位置统计,包含施工时间、施工坐标、施工巡视详情描述、施工所处线路名、风险评估等级、施工图片的列标题。
图1 数据表设计
如前所述,本文的开发模式以C#+JavaScript+MSSQL为主,采取C/S开发结构。将系统模型分为3层:数据表现层、业务逻辑层、数据管理访问层,如图2所示。
图2中的第一层为数据表现层,主要用于人机交互的UI界面,出于研发背景与周期的控制,本文仅采取C/S结构的开发方式,即PC端版本;第二层为业务逻辑层,主要用于模块间数据通信、基于百度地图引擎及第三方类库的调用;第三层为数据访问管理层,主要用于通过数据库存储、访问、统计数据信息。本文结合数据样本容量大小及维护简易程度,以MSSQL数据库存储实际数据信息。层级划分使软件功能模块化,同时具备良好兼容性,可供相应模块间升级调用。
百度地图API是由JavaScript语言编写的,其提供的类参考中主要将API中的类分为9个部分:核心类中Map类是初始化地图时调用的类;基础类中的点、像素、边界、尺寸类是常用类,开发者通过初始化百度地图后便可以调用其控件以实现地图的缩放功能等;覆盖物类能帮助开发者在百度地图上实现自定义图层的添加;工具类中提供了诸多如测距等地图功能;地图类型类能返回当前地图属性;服务类让开发者调用其提供服务以实现页面端相关功能,通过脚本语言引入地图服务到客户端来实现信息展示[6]。其类别划分见图3。
图2 系统层级划分
如图3所示,百度地图应用程序接口提供了丰富的类组以供开发人员需求调用,通过人机交互的网页技术将地图加载于应用程序。此外本文针对施工标注点数量大而导致地图加载缓慢的现状,以图层范围聚类法对施工标注点进行优化处理[7],以缓解页面加载负荷过高的现象;针对GPS坐标定位产生的地理偏差,采取动态编辑修正路径的方法进行准确定位与处理;针对全景查看时地理信息无法直观提示的问题,采取多页面全景事件响应方法来显示移动定位。
JavaScript脚本负责调用百度地图API,并通过接口所提供的丰富类库达到实现相关功能的目的。在此基础上,还需解决与C#之间页面通信及加载的功能,因涉及到前端与脚本后台的数据通信交互处理,故相应界面事件响应及数据库访问响应均需与脚本后台传递调用[8-10]。2种开发语言之间的调用方式有很多种,主要是基于Winform与JavaScript脚本之间的调用处理。具体方式及关键代码如下:
图3 百度地图的类别划分
(1)两者间的类设置为com类别可访问。
[System.Runtime.InteropServices.Com Visible Attribute(true)]。
(2)设置Url属性设置为需要进行操作的页的URL路径。即Webbrowse控件的网页路径。
System.IO.FileInfo file=new System.IO.FileInfo(“index.html”);
//WebBrowser控件显示的网页路径webBrowser1.Url=new Uri(file.FullName);
//将当前类设置为可由脚本访问webBrowser1.ObjectForScripting=this。
(3)通过WebBrowser类的Document属性中的InvokeScript方法调用当前网页的Javascript方法。
//调用JavaScript的messageBox方法,并传入参数object[]objects=new object[1];objects[0]=“C#访问JavaScript脚本”;
webBrowser1.Document.InvokeScrip(“messageBox”,objects)。
通过上述步骤就能完成Winform与JavaScript脚本之间的通信访问。
在数据库访问方面,本文主要采取ADO.NET技术实现。ADO.NET来源于COM组件库ADO(即ActiveX Data Objects),是微软公司新一代.NET数据库的访问模型,是目前数据库程序设计人员用来开发基于.NET的数据库应用程序的主要接口,通过创建数据库连接、操作数据库指令、执行指令功能的方式应用实施,相关调用见文献[11-12]。出于软件资源性能的考虑,本文采取的是离线访问数据库的方式,即将数据填充进DataSet对象中,一旦更新数据再重新连接数据库。
软件界面主要分为4个部分,分别为巡视界面、路径录入、巡检录入、巡视分析,如图4所示。
图4 界面功能介绍
图4中巡视界面的作用在于关键位置信息及施工点的查询显示,并结合全景勘察更直观地显示周边参照物用于坐标纠偏;路径巡检录入页面的作用在于记录存储重要位置信息及施工作业信息;巡视分析的作用在于统计线路累计(月度)施工次数、分析高发施工时段概率,并提供多线路横向对比。
(1)图5为巡视界面。巡视界面支持日期时段检索功能:将特定时间段所发生的施工信息,包括线路名称、日期、坐标、风险评估等级、施工信息备注、施工图片等以数据单元格的方式显示于巡视概况中;将相关施工点及文字备注及电缆走向、电缆井的位置信息一并显示于地图页面上,并且支持图片检索,如图6所示。图片检索可提供由巡检录入页面存储的施工文字及图片信息,以直观的方式还原当天施工的场景。
(2)图7为路径录入页面。路径录入页面提供电缆线路及电缆井的录入功能,可由数据库录入坐标编辑(对电缆线路及电缆井等重要位置信息的地理坐标收集。本文以手持GPS终端巡视所需的位置信息,并记录对应的GPS坐标导入的软件系统),也支持地图上动态对照编辑,针对电缆井还支持图片录入功能以供检索查询。
图5 巡视界面
图6 施工图片检索
图7 路径录入
(3)图8为巡检录入页面。巡检录入页面提供巡检坐标、文字信息记录、图片存储的功能,并将施工信息存储于数据库。
(4)图9为巡视分析页面。巡视分析页面以月度施工数据统计为基础,进行不同电缆线路的横向对比参考,并分析线路整体月度施工趋势、高发时段及整体线路平均施工趋势,且同样支持线路图片检索查询。
除上述功能之外,软件还支持任意点的全景勘察显示,如图10所示。
图8 巡检录入
图9 巡视分析
图10 全景勘察显示
全景勘察不但能提供路途沿貌的最新实拍图片使巡检人员熟识所管辖线路走向,而且也能依据周围参照物更精准定位施工地理坐标。
110 kV电力电缆对地铁供电系统的重要性不容忽视。本文针对地铁电缆巡视工作中存在的问题进行分析,结合现有市政、道路普遍施工,以及线路路径资料不齐全、重要位置信息不准确、施工详情归纳统计程度不足的现状,提出了一种基于百度地图API、数据库、C#、JavaScript编程技术的系统方案,设计开发了一套110 kV电缆巡视分析系统,将其应用于日常巡视生产中,以解决实际问题。结果表明,该软件系统不但能在地图上准确显示电缆、电缆井等重要位置信息,还能对施工信息进行收集、存储,并以图表方式直观地评估线路累计施工次数和施工时间段,横向比较各线路施工作业的准确情况,可以为合理化配置巡视人员提供科学的数据支撑,具备较好的工程应用性。
[1] 罗俊华,邱毓昌,杨黎明.10 kV及以上电力电缆运行故障统计分析[J].高电压技术,2003,29(6):14.
[2] 杜颖,卢继平,沈智健,等.基于WebGIS电力电缆信息管理系统设计与实现[J].电力系统保护与控制,2008,36(120):64.
[3] 王喜春,孙志禹.基于大数据的水利水电云GIS平台概述[J].人民长江,2013(S1):182.
[4] 楼斌根,宋慧忠,王瑾,等.城市地下管线管理信息系统在电缆管线规划中的应用[J].电网技术,2007(增 1):214.
[5] 赵意鹏,赵河明,邓星星,等.基于GPRS和百度地图API的火灾定位系统[J].自动化与仪表,2016(1):26.
[6] 杜传明.百度地图API在小型地理信息系统中的应用[J].测绘与空间地理信息,2011,34(2):152.
[7} 刘艳中,伍光胜,李建勇.基于百度地图的自动气象站监控系统实现[J].气象科技,2016,44(1):167.
[8] 董卓亚.基于百度地图 JavaScriptAPI的通信地图展示[J].电子设计工程,2013,21(18):73.
[9] 程钢,郭玉祥,贾宝,等.国内主流在线地图 API分析及优化对策研究[J].测绘工程,2013,22(60):4.
[10] 张帅毅,徐京华.基于开放地图API的网络专题制图方法研究[J].测绘,2011(3):108.
[11] 华国栋,刘文予.基于ADO.NET的数据库访问及其性能优化[J].计算机应用研究,2004,21(6):215.
[12] 叶安胜,周晓清.ADO.NET通用数据库访问组件构建与应用[J].现代电子技术,2009,32(18):102.