Skyline根据适量数据生成三维管线.docx

上传人:b****8 文档编号:9640459 上传时间:2023-02-05 格式:DOCX 页数:15 大小:192KB
下载 相关 举报
Skyline根据适量数据生成三维管线.docx_第1页
第1页 / 共15页
Skyline根据适量数据生成三维管线.docx_第2页
第2页 / 共15页
Skyline根据适量数据生成三维管线.docx_第3页
第3页 / 共15页
Skyline根据适量数据生成三维管线.docx_第4页
第4页 / 共15页
Skyline根据适量数据生成三维管线.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

Skyline根据适量数据生成三维管线.docx

《Skyline根据适量数据生成三维管线.docx》由会员分享,可在线阅读,更多相关《Skyline根据适量数据生成三维管线.docx(15页珍藏版)》请在冰豆网上搜索。

Skyline根据适量数据生成三维管线.docx

Skyline根据适量数据生成三维管线

Skyline在三维管线中的应用

(北京东方道迩信息技术有限责任公司事业部skyline业务部)

摘要:

随着数字城市在管理和应用中的不断发展,城市管网系统也在国内部分大中城市中也已经应用起来,广泛应用于城市规划、市政、供排水、燃气、通讯、园林绿化等行业。

城市管网为城市建设的规范化、科学化、数字化、智能化及其信息管理、信息共享建设,提供了有效的进行科学化的管理手段。

基于Skyline的数字地下管线建设,可以更直观的展示各种管线在城市管网系统中位置,如果遇到突发事件,它能对事故做出更加形象的三维可视化展示,并且能及时、准确地对进行中事态发展的做预测演示,能为决策者果断采取有效控制措施提供三维空间展示功能,使损失降到最低。

关键词:

skyline三维管线生成;城市管网;管线;地下管线;数字城市

1、概述

随着城市规模不断的扩大和生活水平的日益提高,城市地下管网系统越来越庞大。

如何应对社会的发展,更好地服务于社会,作为城市的重要组成部分,地下管网将面临管理上的更高要求和严峻考验。

管网系统在国内部分大中城市已经应用起来,中西部地区也在加紧了建设的步伐。

但是,仍然有许多城市应用效果并不良好。

这一方面是由于各单位自身的原因,另一方面是系统本身技术落后,不够灵活,不能适应发展的需求。

以实际项目经验为依据,从地下管线系统的数据结构,结合Skyline的应用,简易介绍Skylie三维GIS技术在地下管网系统中的应用,引导用户建立一个先进、灵活、实用、安全、高效、三维立体的地下管网地理信息系统。

2、地下管网数据结构

地下管网数据中包括两部分:

一部分是管线矢量数据,另一部分是管点矢量数据。

管线数据

类别

层名

表名

代码

几何类型

说明

给排水管线

水系统管沟

SL_PL_SXTGG

20100

Polyline

生产新水管

SL_PL_SCXSG

20101

Polyline

生活消防给水管

SL_PL_SHXFGSG

20102

Polyline

软水补充水管

SL_PL_RSBCSG

20103

Polyline

净环给水管

SL_PL_JHGSG

20104

Polyline

净环回水管

SL_PL_JHGHSG

20105

Polyline

浊环给水管

SL_PL_ZHGSG

20106

Polyline

浊环回水管

SL_PL_ZHHSG

20107

Polyline

风机除尘水送架空流槽

SL_PL_FJCCSSJKLC

20108

Polyline

生产生活雨水排水管

SL_PL_SCSHYSPSG

20109

Polyline

软环水管

SL_PL_RHSG

20110

Polyline

电力管线

电缆电讯管沟

DL_PL_DLDXGG

20200

Polyline

动力电缆

DL_PL_DLDL

20201

Polyline

照明电缆

DL_PL_ZMDL

20202

Polyline

电缆电讯

DL_PL_DLDX

20203

Polyline

网线

DL_PL_WX

20204

Polyline

热力管线

蒸气管

RL_PL_ZQG

20301

Polyline

压缩空气管

RL_PL_YSKQG

20302

Polyline

冷风气管

RL_PL_LFQG

20303

Polyline

燃气管线

高炉煤气

RQ_PL_GLMQ

20401

Polyline

转炉煤气

RQ_PL_ZLMQ

20402

Polyline

焦炉煤气

RQ_PL_JLMQ

20403

Polyline

气体管

氧气管

QT_PL_YQG

20501

Polyline

氮气管

QT_PL_DQG

20502

Polyline

氩气管

QT_PL_YQG

20503

Polyline

管点数据

层名

表名

代码

几何类型

说明

阀门

GD_PP_FM

30001

Point

排水器

GD_PP_PSQ

30002

Point

积水坑

GD_PP_JSK

30003

Point

排水井

GD_PP_PSJ

30004

Point

阀门井

GD_PP_FMJ

30005

Point

消防井

GD_PP_XFJ

30006

Point

雨水井

GD_PP_YSJ

30007

Point

支架

GD_PP_ZJ

30008

Point

通风亭

GD_PP_TFT

30009

Point

补偿器

GD_PP_BCQ

30010

Point

放散阀

GD_PP_FSF

30011

Point

人孔

GD_PP_RK

30012

Point

异径管

GD_PP_YJG

30013

Point

法兰

GD_PP_FL

30014

Point

一、管线数据结构中必要的属性字段

Name

Remark

管线种类

可以用来判断管线的在系统中显示的颜色

起点X坐标

某一根管线的起点X坐标

起点Y坐标

某一根管线的起点Y坐标

起点埋深

某一根管线的起点埋深

终点X坐标

某一根管线的终点X坐标

终点Y坐标

某一根管线的终点Y坐标

终点埋深

某一根管线的终点埋深

二、管点数据结构中必要的属性字段

Name

Remark

井X坐标

井的X坐标

井Y坐标

井的Y坐标

井底深

井底深度

旋转角

井的方位角,用于中转、连接管线的

3、Skyline在地下管网支持的数据

由于管线数据的长短不一的特殊要求和Skyline中对象的支持程度,目前管线数据在三维中显示的对象主要是圆柱体对象,即Cylinder对象(Building对象也可以实现);系统可以根据不同数据种类的管线制作不同颜色的三维管线数据,以便区别管线的种类,如果管线颜色有规定,我们也可以制作一个管线颜色符号库。

管点数据在三维中显示的对象主要是模型对象,即Model对象。

根据系统中不同管点数据制作不同的模型;同一种类的管点,根据结构类型的不同也可制作相应的模型。

4、三维管线的生成

三维管线的生成包括两部分:

一、在Skyline中三维管线的生成;二、在Skyline中三维管点的生成。

一、管线生成

由管线的属性数据,管线种类、起点X坐标、起点Y坐标、起点埋深、终点X坐标、终点Y坐标和终点埋深,在skyline三维软件中根据接口CreateCylinder方法,创建三维管线数据(源码算法略)。

在Skyline软件中效果图如图一和图二所示

地下管线管线数据生成展示图一

地下管线管线数据生成展示图二

二、管点生成

由管点的属性数据,井X坐标、井Y坐标、井底深和旋转角,管点在skyline三维软件中根据接口CreateModel方法,创建三维管点数据(源码算法略)。

其中:

旋转角是设置井的方向,用于衔接管线。

在Skyline软件中效果图如图三所示:

地下管线管点生成展示图三

三、示例代码

SkyLine场景中的三维管线同样可以根据管线矢量图层自动生成。

具体思路无非是获得矢量图层的空间信息和相关属性,

然后在三维场景中进行渲染。

下面提供相关样例代码,以供参考。

//生成3D管道

privatevoidbtnBulidPipe_Click(objectsender,EventArgse)

{

MapLayerlyrTemp=newMapLayer();

lyrTemp=(MapLayer)axMap1.Layers.Item(0);

TableDescTabDesc=newTableDesc();

TabDesc=lyrTemp.Records.TableDesc;

Recordsetrecs=lyrTemp.Records;

LinelineTemp;

PointsptsTemp;

ESRI.MapObjects2.Core.PointptTemp,ptBeg,ptEnd;

doubledouPipeGJ=0.0;//管径

stringstrPipeCZ=null;;//材质

//管线数据的属性表中已有字段

//规格材质长度上井管标高下井管标高标高位置岔管类型

//需要传入数据

//起点坐标(x,y,h)终点坐标(z,y,h)管径材质纹理名称其它注释信息

ptBeg=newESRI.MapObjects2.Core.Point();

ptEnd=newESRI.MapObjects2.Core.Point();

intiGroupID=clsObjTree.IsExistGruop(DateTime.Now.Hour.ToString()+DateTime.Now.Minute.ToString()+DateTime.Now.Second.ToString(),"");

for(inti=0;i

{

if(recs.Fields.Item("Shape").Value!

=System.DBNull.Value)

{

lineTemp=(Line)recs.Fields.Item("Shape").Value;

}

else

{

return;

}

if(recs.Fields.Item("上井管标高").Value!

=System.DBNull.Value)

{

ptBeg.Z=-(double)recs.Fields.Item("上井管标高").Value;

}

else

{

MessageBox.Show("上井管标高未赋值");

}

if(recs.Fields.Item("下井管标高").Value!

=System.DBNull.Value)

{

ptEnd.Z=-(double)recs.Fields.Item("下井管标高").Value;

}

else

{

MessageBox.Show("下井管标高未赋值");

}

if(recs.Fields.Item("材质").Value!

=System.DBNull.Value)

{

strPipeCZ=(string)recs.Fields.Item("材质").Value;

}

else

{

MessageBox.Show("材质字段未赋值");

}

if(lineTemp.Parts.Count>1)MessageBox.Show("此线有"+lineTemp.Parts.Count.ToString()+"个部分。

");

for(intj=0;j

{

ptsTemp=(Points)lineTemp.Parts.Item(j);

if(ptsTemp.Count>2)MessageBox.Show("此线有"+ptsTemp.Count.ToString()+"个端点。

");

ptTemp=(ESRI.MapObjects2.Core.Point)ptsTemp.Item(0);

ptBeg.X=ptTemp.X;

ptBeg.Y=ptTemp.Y;

ptTemp=(ESRI.MapObjects2.Core.Point)ptsTemp.Item

(1);

ptEnd.X=ptTemp.X;

ptEnd.Y=ptTemp.Y;

CreatePipe(ptBeg.X,ptBeg.Y,ptBeg.Z,ptEnd.X,ptEnd.Y,ptEnd.Z,strPipeCZ,douPipeGJ,i,iGroupID);

}

recs.MoveNext();

}

}

///

///生成三维管线

///

///起点X值

///起点Y值

///起点Z值

///终点X值

///终点Y值

///终点Z值

///管线材质

///管线管径

privatevoidCreatePipe(doublex1,doubley1,doublez1,doublex2,doubley2,doublez2,stringstrPipeCZ,doubledouPipeGJ,intFid,intiGroupID)

{

//关于传入参数的说明

//管线的边线的颜色和透明度填充颜色和透明度(或者采用纹理)管径为圆柱半径

//thrownewException("Themethodoroperationisnotimplemented.");

doubledouPipeLength=clsTE.CoordSys.GetDistanceEx(x1,y1,z1,x2,y2,z2);//管线长度

intiNumOfSegments=20;//圆柱构成面数

intiLineColor=33023;

doubledouFillOpacity=0.7;

intiFillColor=255;

//stringstrDescription="3D管道";

douPipeGJ=0.6;

objectoYaw,oPitch;

doubledouYaw;

TerraExplorerX.ITerrain3DRegBase5te3DEegBase5;

if(z1

{

clsTE.CoordSys.GetAimingAngles(x1,y1,z1,x2,y2,z2,outoYaw,outoPitch);

if((double)oYaw<180)

{

douYaw=(double)oYaw+180;

}

else

{

douYaw=(double)oYaw-180;

}

te3DEegBase5=(TerraExplorerX.ITerrain3DRegBase5)clsTE.ObjectManager.CreateCylinder(x1,y1,z1,douPipeGJ,douPipeLength,iNumOfSegments,iLineColor,douFillOpacity,iFillColor,HeightStyleCode.HSC_TERRAIN_ABSOLUTE,iGroupID,Fid.ToString());

te3DEegBase5.SetPosition(x1,y1,z1,douYaw,90-(double)oPitch,0.0,7);

}

else

{

clsTE.CoordSys.GetAimingAngles(x2,y2,z2,x1,y1,z1,outoYaw,outoPitch);

if((double)oYaw<180)

{

douYaw=(double)oYaw+180;

}

else

{

douYaw=(double)oYaw-180;

}

te3DEegBase5=(TerraExplorerX.ITerrain3DRegBase5)clsTE.ObjectManager.CreateCylinder(x2,y2,z2,douPipeGJ,douPipeLength,iNumOfSegments,iLineColor,douFillOpacity,iFillColor,HeightStyleCode.HSC_TERRAIN_ABSOLUTE,iGroupID,Fid.ToString());

te3DEegBase5.SetPosition(x2,y2,z2,douYaw,90-(double)oPitch,0.0,7);

}

te3DEegBase5.ToolTipText=Fid.ToString();

}

四、结束语

解决任何问题,都是需要有基础的。

很多时候不是说你要采用多么高明的、高深的技术去完成一个项目,而是看你是采用什么思维方式完成如这个项目,采用什么样的思维方式更方便的去解决问题,而这样的思维方式取决于你对整个项目系统需求的了解,因此只有深入了解整个项目的需求,全面把握整个项目的可维护性、可扩展性和可复用性产品程序,不仅对将来的整个项目很有帮助,而且也会对我们自身也很有帮助。

这里只简要说明管线数据生成的原理,项目还是需要具体问题具体分析,才能达到预期的目标。

[参考文献]

[1]范刚龙.供热管网设计计算模型优化研究[J].郑州大学学报:

理学版,2005,37(3):

61-63.

[2]彭芳乐.孙德新.袁大军.廖少明.朱合华城市道路地下空间与共同沟[期刊论文]-给水排水2003(4);

[3]常河;GoogleSketchUp与ArcGIS在城市三维地下综合管网中的应用研究[D];昆明理工大学;2008年

[4]乔淑娟;基于GIS的城市地下管网空间数据模型及其可视化研究[D];首都师范大学;2006年

[5]寇有观.“数字城市”的规划研究[J].电脑知识与技术,2006.

[6]文俊浩,赵有声,青虹宏.数字城市与城市可持续发展的相互关系的分析[N].重庆建筑大学学报,2004,

(2).

[7]Skyline公司,TerraExplorerProUserManual[M],技术白皮书,2009.

[8]沈阳金建数字城市软件有限公司(ShenyangJinjianDigitalCitySoftwareLtd.)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1