电力管线业务模块是系统的电力业务功能,主要维护电气设备的电力连接关系以及电
缆在GIS 地图和工井内部的位置和走向。管线业务模块由配电线路的轨迹图、单线图、接
线图和工井立视图四部分构成。
1 .配电线路轨迹图
配电线路的轨迹图实现界面如图所示,通过导航树的配电线路右键菜单提供请求接口。系统获得请求后与业务逻辑服务通信获取此配电线路下电气设备和土建设备,然后通过GIS 服务将查询到的设备显示,并在GIS 地图上展示配电线路的轨迹图。另外,用户可以使用图层选择控件选择显示的设备图层,单独查看电气设备轨迹和土建设备轨迹。
2. 配电线路单线图
配电线路单线图的实现界面如图所示,它提供了可视化智能化管理配电线路单线图的工具。单线图模块提供了单线图的查看和编辑功能,并且通过右侧菜单栏可以实现单线图中的设备在GIS 地图上的定位。系统提供了简单的图形编辑菜单栏,电网管理人员可以对单线图中的设备、线路属性、位置和连接关系进行编辑,以提高单线图数据的准确性。
单线图管理包括单线图绘制功能、单线图存储功能。
1 )单线图绘制功能
电尊翩
崛岳毡盹量
从目录树上拖动设备到单线图,单击画线按钮,绘制单线图;还可删除某部分图形(甚
至全部),并重新绘制单线图。
单线图绘制功能关键代码如下:
Global. line . meth od. init = function ( initVar ) {
Global. constant. currentMap = 1;
OpenLayers . ProxyHost =”cgi/proxy. cgi?url =”,
var extent = new OpenLayers. Bounds( - 20, - 20, 20, 20);
Global. line . draw. pointStyleMap = Global. style. lineDiagramStyle;
Global. line . map = new OpenLayers. Map (’map2 ’);
Global. line . map. div. oncontextmenu = function () { return false;);
Global. line. method . drawUnit = function {name, type, sid) {
Global. line. unit . name = name;
Global. line. unit. typeID = type;
Global. line . unit. Static Id = sid;
switch( type) {
case ” 1010201”: Global. line. draw. style type = Global. style. form[O];break;
case ” 1010202 ”: Global. line. draw. style type = Global. style. form[l];break;
case ” 1010203 ”: Global.line.draw.style type= Global.style.form[2];break;
case ” 10102 04 ”: Global. line. draw. style type = Global. style. form[ 3) ;break;
case ” 1010205 ”: Global. line. draw. style type = Global. style. form[ 4); break;
case ” 1010208”: Global. line. draw. style type = Global. style. form[ 7); break;
case ” 1020101 ”: Global. line. draw. style type = Global. style. form[ 8); break;
case ” 1020102”: Global. line. draw. style type = Global. style. form[9J;break;
case ” 1010402”: Global. line. draw. style type = Global. style. form[ll];break;
case ” 1010403”: Global. line. draw. style type = Global. style. form[12];break;
if(type == ” 1010402” 11 type ==”1010403”){
Global. line.method. controlRelease();
Global. line. draw. lineControl. activate();
)else{
Global. line. meth od. controlRelease();
Global. line . draw. pointControl. activate();
单线图关联功能关键代码如下:
获取单线图侧栏数据
public JSONArray getSideBarJson() {
JSONArray jsa = newJSONArray ();
LongSid = Long . parseLong(fatherid);
List< TreeCatalogRecord > aimswitch = treeDao. getTreeCatalog( Sid, 10102020);
for( inti= 0; i < aimswitch. size(); ++ i) {
JSONObject jso = newJSONObject ();
jso.accumulate(” sid”, aimswitch. get( i). getStatic Id());
jso.accumulate(” type”, aimswitch. get( i) getTypeid());
jso.accumulate(”name ”, aimswitch.get(i) getName());
jsa. add( jso);
List< TreeCatalogRecord > a.ii由ranch = treeDao. getTreeCatalog( Sid, 10102050);
for( inti= 0; i < ai曲ranch. size(); ++ i) {
JSONObject jso = newJSONObject ();
jso . accumulate (飞id”, aimbranch.get(i).getStatic Id());
jso.accumulate (气ype”, aimbranch.get(i).getTypeid());
jso.accumulate (” name”, aimbranch. get( i). getName());
jsa.add(jso);
List< TreeCatalogRecord > aimhw = treeDao. getTreeCatalog( Sid, 10102040);
for( inti= 0; i < ai毗w. size(); ++ i) {
JSONObject jso = newJSONObject ();
2 )单线图存储功能
将上述过程中绘制的图形保存到数据库,并在单线图目录树中自动显示,用户选中该图
后,可实现自动绘制。
3. 设备接线图
设备接线图功能的实现界面如图所示,描绘了单电气设备内的配线方式。系统
在导航树中的电气设备右键菜单提供了接线图的查询接口,接线图模块通过OpenLayers
调用GIS 服务在前台渲染出要查询设备的接线图,同时通过业务逻辑服务查询此设备的逻
辑连接关系获取相应的设备信息。另外,接线图模块提供了接线图的编辑功能,电网管理人
员可以对设备的单线图进行维护
4. 工井立视图
工井立视图的功能实现如图所示,它实现了电缆在地下电力管道中位置的可视化。立视图模块提供工井剖面图的查询与编辑功能,同时可以查看工井测绘俯视图。并且通过查看剖面图及剖面信息,电网施工人员可以查询电缆的埋深、在工井中的走向和在管沟段中的位置等关键信息,直观可视化的操作可以降低电力事故发生的概率。另外,管理人员可以通过剖面图编辑、电缆穿孔等操作维护工井立视图,确保立视图数据的准确性。
(1 )管沟面符号添加:有矩形、拱形和圆形。
(2 )管沟面尺寸调整:在图上拉动。
(3 )管孔添加:圆形,有若干固定尺寸可选。
( 4 )管孔设置:可以单个或多选管孔批量移动或改变直径等属性,直径在若干固定尺
寸中选择。
(5 )管孔排列生成: 输入管孔尺寸(选择)、行数、列数、横向间隔距离、纵向间隔距离,
在图上单击,以单击处为左上角,生成规则管孔。
(6 )线路符号添加: 线路符号中间显示电压等级,线路符号尺寸可以在若干固定尺寸
中选择。
(7 )线路标注添加: 单击剖面,再在图上单击,自动生成剖面的线路标注表格。
(8 )通信电缆符号添加。
(9 )支架添加。
(10 )管孔支架批量移动:点选或框线多重选择,点选多重复制加CT R L 键。
(11 )管孔支架复制: 管孔与支架。
(12 )剖面复制:在图中选择一个管沟剖面,作为复制源。
(13 )剖面粘贴: 在图中某一位置单击,以该点为左上角将剖面复制源粘贴到该位置。
1 )剖面绘制
绘制某一具体工井剖面界面如图所示
,需要填人剖面编号、剖面长、剖面宽3个参数。
(1 )添加、更新单个管孔功能。
/添加、更新单个管孔功能函数/
Global. locus.method. drawPipeHole = function (feature, holeFeature) {
var Ppfeature;
for (var i = 0; i < Global . locus. layers. buildingLayer. features. length ; i忡){
if (Global. locus. layers. buildingLayer. features[ i] . attributes[’ Static _ id’]==
feature . attributes[’ pp_segment_id’]){
Ppfeature = Global. locus. layers. buildingLayer. features[ i];
break;
if(Ppfeature) {
Op四Layers. Request. GET( {
url :”getPropertyJson. action? type =”+ Ppfeature. attributes [’。bject_type ’]
+”在Static Id =”+ Ppfeature. attributes [’ Static _id’],
success : ppSegmentProperty_success,
failure: (function ( e) {
Plugins.dialog. show({
’ title ':’错误信息’,
’ text ’: e.responseText { , }
’ submit ’: function ( e) {
Plugins.dialog.remove();