- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SharpMap在供水管网调度系统分层处理中应用
SharpMap在供水管网调度系统分层处理中应用
摘 要:SharpMap是一个基于.NET 2.0使用C#开发的Map渲染类库,可以渲染ESRI Shape、PostGIS、MS SQL等格式的GIS数据。利用开源GIS作为开发平台,这样不仅成本低廉,还可以开发具有完全版权且自主创新的软件产品。该文介绍了SharpMap在供水管网调度系统中的应用,对SharpMap的源代码进行消化开发,进而开发自来水管网GIS。重点论述了SharpMap图层方法的应用。
关键词:SharpMap 开源GIS 供水管网调度系统
中图分类号:TP27 文献标识码:A 文章编号:1674-098X(2015)01(a)-0063-02
近年来GIS被引入到供水行业,以GIS和SCADA为核心的供水管网调度系统在自来水公司信息化建设中很受欢迎。
大部分供水管网GIS的开发平台为ArcGIS和MapGIS,这些开发平台价格高,中小型供水企业接受不了。虽然这些平台功能强而全,可中小型供水企业不一定全用得上,但是却没有一些系统(如与SCADA、EpaNet)的集成功能,这些平台不是开源的,无法进行二次开发。利用开源GIS进行二次开发可以与其他系统充分进行资源共享,开发出技术含量高的软件。
1 SharpMap简介
利用开源GIS作为开发平台,这样不仅成本低廉,还可以开发具有完全版权且自主创新的软件产品。SharpMap是一个基于.NET 2.0使用C#开发的Map渲染类库,可以渲染ESRI Shape、PostGIS、MS SQL等格式的GIS数据。
选择SharpMap作为开发平台具以下优点:
(1)占用资源较少,响应比较快。
(2)它是基于.NET 2.0环境开发的,对于.NET环境支持较好,可利用资源多。
(3)使用简单,便于推广。只要在.NET项目中引用相应的dll文件即可,没有复杂的安装步骤。
2 供水管网的分层管理
供水管网调度系统分为几层:管道层、阀门层、水表层、流量监控层、压力监控层、节点层等,采用分层管理,方便对管道类型及附件(如阀门等)进行分类管理,在显示时可以单独显示,一目了然,便于突出重点。也可以叠加显示和综合考虑。以下是供水管网调度系统的界面,各个层可以分别显示,也可以重叠显示。
3 SharpMap图层对象概述
SharpMAP中所有图层(Layer)都是从ILayer接口派生的,采用了面向接口的编程思想。虽然各种不同的图层,如矢量图层和标注图层相差很大,但它们都有共同的特点:图层的名称、最大最小可视范围、是否渲染等,而且图层都使用Render方法来渲染自己。
与一般GIS软件不同,SharpMap的图层标注是以一类特殊的图层(LabelLayer)而存在的。
SharpMap.Layers.LabelLayer lLayer = new SharpMap.Layers.Label
Layer(labels);
lLayer.DataSource = vLayer.DataSource;
lLayer.Enabled = true;
lLayer.LabelColumn = name;
mapBox1.Map.Layers.Add(lLayer);
以上代码创建一个标注图层lLayer,然后指定标注图层的数据源,也就是指定对哪一个矢量图层做标注,再指定标注字段即可。
4 供水管网图层的具体实现
下面以压力监控层为例说明SharpMap
//Create WMS layers
var layerSCADAPress = new OpenLayers.Layer.WMS(
“SCADA压力监控”,
WMSURL,
{
version: WMSVERSION,
layers: ‘SCADA压力监控’,
transparent: TRUE
},
{
isBaseLayer: false,
singleTile: true ,
projection: CRS,
units: CRSUNITS,
visibility: false
}
);
//Create a vector layer
layerVectors=new OpenLayers.Layer.Vector(
Vectors,
{
displayInLayerSwitcher: false
}
);
//Create styles of the vector layer
la
文档评论(0)