电厂Web GIS的设计与实现技术
2006-01-18 10:50:03 来源:
A-
A+
电力18讯: 作者: 马素霞 齐林海 刘文霞 孙利辉
华北电力大学(北京)信息工程系 102206
摘要: 地理信息系统(GIS)是计算机应用领域的一个重要分支,随着Internet/Intranet技术的发展和广泛应用,Web GIS 已成为GIS发展的必然趋势。结合电厂的特点,介绍了一种Web GIS的设计方案及相关的实现技术,并给出了利用ASP技术开发 Web GIS的一个实例
关键词: Web GIS ASP 数据库
1. 引言
GIS 是地理信息系统(Geographic Information System)的简称,是处理地理数据的输入、输出、管理、查询、分析和辅助决策的计算机系统,是国内外新兴的应用领域。随着Internet/Intranet 技术的迅速发展,特别是WWW技术的出现和普及,为GIS开辟了广阔的发展前景,Web GIS已成为GIS发展的必然趋势。
发电厂具有设备量大、管线复杂等特点,对管理具有很高的要求。将地理信息系统及Internet/Intranet 技术应用于电厂,集管理数据与空间地理数据信息于一体,建立一个以地理信息系统为中心的电厂综合管理系统,实现全厂范围内的数据共享,为生产、经营管理提供现代化的管理手段和科学的决策支持,可以有效提高电厂的工作效率和经济效益。
2. 运行环境
2.1. 服务器端
操作系统:Microsoft Windows NT 4.0
关系数据库管理系统:Microsoft SQL Server 6.5以上
Web 服务器:Microsoft IIS 3.0以上。
地图发布软件:Autodesk MapGuide Server 3.0
2.2. 客户端
操作系统:Microsoft Windows 95/98
浏览器:Microsoft Internet Explorer 4.0
3. 开发环境和工具
Visual InterDev 6.0:用于制作基于ASP方式的动态页面。通过ODBC访问各种数据源,可实现人机交互等动态页面功能。并且可以在其中嵌入VBScript、javascript及ActiveX控件等。
Microsoft FrontPage 98:是一个Intranet集成处理工具,把高级Web制作工具与站点管理实用程序结合在一起。
其他一些辅助工具(Visual Basic 6.0、Visual C++等):用于开发一些ActiveX控件,使页面更丰富,功能更强大。
4. 数据的组织与存储
地理信息系统的数据包括两部分:地图数据和属性数据。这两种数据是有联系的。在设计数据库的结构及数据的分布时,要尽量使数据库结构简单、冗余度小,数据分布合理,以提高系统的运行效率。
4.1. 地图数据
地图数据包括点、线、面等要素,但要以点、线要素为主,以达到数据结构简单的目的。对地图数据要进行分层管理,一般将相同种类的设备组织在一个图层上,每一个图层以一个单独的文件进行存储,不同的地图处理系统对图层的存储格式不尽一致。如果地图发布软件选择Autodesk MapGuide Server 3.0,则需要将地图数据文件转换成MWF格式,再由MapGuide Server进行管理。
4.2. 属性数据
每一个图层都对应一张表,图层中的每一个对象都对应表中的一条记录。我们将所有的表都放在一个关系数据库中进行存储和管理,这样可以有效地利用关系数据库已经相当成熟的功能。
4.3. 地图数据与属性数据的连接
Autodesk MapGuide 由三个部分组成,分别为:Author,Server 和Viewer 。Author 可以安装在服务器端,也可以安装在客户端,用来编辑所发布的地图窗口文件(mwfs); Server 安装在服务器端,用于接收并处理客户端发出的有关地图操作的请求; Viewer 安装在客户端,作为浏览器的控件,用于在浏览图形时解释网上传输的矢量数据格式。
利用 Author也可以把地图信息和数据库信息相结合,对地图上的图形目标进行查询。但这种方式不够灵活,而且扩展能力差。为了扩展功能,更好的与数据库进行结合,在实际应用中一般将图形数据和属性数据进行分离(如上面所讲的那样),图形数据放到Autodesk MapGuide Server中,属性数据放到关系数据库管理系统中,利用图形目标的唯一的标志值将图形数据和属性数据进行结合。这里我们采用ASP技术将二者进行结合。
5. 系统功能设计
在任何时候用户都可以对地图进行放大、缩小、漫游、打开及关闭图层操作。除此之外,系统还提供地图操作、空间分析、维修管理、系统管理等功能模块。
5.1. 地图操作
此功能模块包括信息查询、图片显示、定位设备及测量距离子模块。
(1)信息查询:在地图上选中一个对象,此模块用于显示选中对象的属性数据。
(2)图片显示:在地图上选中一个对象,此模块用于显示选中对象的图片信息,如果选中 的对象没有图片,则给出没有图片信息的提示。
(3)定位设备:此模块用于根据属性数据信息来查找图形数据。系统提示用户选择图层,根据用户选择的图层,系统将该图层上的对象信息以表格的形式列出,用户选择要查找的对象后,系统进行查找工作,最后将用户选择的对象放大显示在地图窗口的中间位置。
(4)测量距离:此功能用于测量任意两点之间的距离。
5.2. 空间分析
此模块提供相交、包含等空间拓扑关系的分析能力。可以对挖切面、圆坑、方坑、不规则坑等挖到的地下管线进行空间分析。
5.3. 维修管理
此模块提供对设备维修记录的登记、查询等功能。
5.4. 系统管理
此模块提供密码修改及系统退出两项功能。上面提供的部分功能需要输入正确的密码才能使用。
6. 系统实现技术
主要使用了ASP技术访问数据库,及地图数据与属性数据的连接。
6.1. ASP技术及数据库访问
ASP(Active Server Page)是微软IIS3.0的一个服务器脚本环境,在该环境下能够产生和运行动态的、交互的、高性能的WEB服务器应用。当脚本运行在服务器端而不是运行在客户端时,WEB服务器完成涉及送回浏览器HTML页的所有工作,而不用担心浏览器是否能处理所要求的页面,该任务由WEB服务器完成。ASP能使WEB服务器处理VBScript或JScript命令,任何连接WEB服务器的浏览器不必考虑它是否支持VBScript或JScript,都可产生人机交互及动态页面。
ASP尤其适合连接数据库。Microsoft在IIS3.0中增加了Active Server的功能,这使得我们可以采用ASP技术进行数据库的集成。ASP提供了许多ActiveX服务器构件,其中通过ActiveX组件ADO(Active Data Object,是基于ODBC的数据库访问对象)即可方便地访问数据库服务器上的数据。访问数据库时,WEB服务器起着中间部件的作用。它接受用户WEB浏览器的HTTP请求,使用ODBC把对数据库的任何请求通过网络送到数据库服务器,从数据库服务器接受数据并且把产生的WEB页和数据送回到用户浏览器。
ADO使在客户端写的应用程序能访问和操作数据库服务器提供的数据。ADO易于使用,速度快,占用内存少。下面一段VBScript程序是ADO通过ODBC访问SQL SERVER数据库
<%set DBConn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
DBconn.Open"driver={SQLServer};server=NT_SERVER;uid=SA;pwd=GIS0;database=SHDB"
sql="select * from user1 "
set rs=dbconn.Execute(sql)%>
6.2. 地图数据与属性数据的连接
由于使用MapGuide作为地图的发布软件,ASP技术需要与MapGuide相结合实现地图数据与属性数据的连接。
MapGuide Server 通过代理(CGI,ISAPI等)向WEB服务器传递MWF文件,WEB SERVER向ASP提供图形目标关键值,ASP通过ODBC从SQL SERVER中提取图形目标属性信息传递给WEB SERVER,并在用户浏览器端显示。利用ASP强大的数据库功能,使MapGuide可以将地图与相应的数据库有机的结合起来,实现地图数据与属性数据的双向查询。
在电厂地理信息系统中,ASP技术的应用几乎遍布于Web GIS的各个功能模块。如在设备查询中,可以根据地图中传来的图形目标的关键值来从SQL-SERVER数据库中查询该设备的属性值,也可以显示有关该设备的图片,照片; 在管道的空间分析中可以根据空间分析操作中所涉及的所有管道的关键值进行分层,再从相应的数据表中显示管道的所有属性; 在设备维修的录入与查询等操作中也同样需要使用ASP技术。
下面给出一个利用ASP来根据设备图形目标的关键值来查看该设备的属性数据的实例。在此例中,首先在地图上选中所要查看信息的图形目标,并按提交按钮“查询信息”,利用JScript脚本语言在函数submit2_onclick() 中调用MapGuide Viewer API 函数获得层名layer和关键值key。在ASP脚本中通过ADO访问数据库数据,打开SQL-SERVER中名为layer的表,选择编号为关键值key的记录,然后以表格形式显示该记录的属性信息。
<script ID="clientEventHandlersJS" LANGUAGE="javascript"> function submit2_onclick()
{
var map = getMap(); //获得当前地图
if (map.getselection().getnumobjects()==0)
{
alert("请先用鼠标进行选择!")
return;
}
var mapSel = map.getSelection(); //获得地图上所选的对象
var objs=mapSel.getmapobjectsex(null);
var cnt=objs.size();
if (cnt>1)
{alert("请选择一个设备");
return;
}
var obj1=objs.item(0);
var layer1=obj1.getmaplayer()
var layer=layer1.getname(); //获得图形对象的层名
var key=obj1.getkey(); //得到图形对象的关键值
FORM2.text1.value=layer;
FORM2.text2.value =key;
}
</script>
<form action="" id=FORM2 method=post name=FORM2> <input id=submit2 name=submit2 type=submit value=查询信息language=javascript onclick="return submit2_onclick()">
<input id="text1" name="text1" input id="text2" name="text2" >
<%if Request.Form("submit2")="查询信息" then
set DBConn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
DBconn.Open "driver={SQL Server};server=NT_SERVER;uid=SA;pwd=GIS0;database=SHDB"
layer=Request.Form("text1")
key=Request.Form("text2")
sql="select * from " & layer & " where 编号=/'" & key & "/'"
set rs=dbconn.Execute(sql) ‘在图层名为layer的数据表中查找编号等于key的记录
if rs.eof then%>
<script language=vbscript>
msgbox "没有该设备的记录!",0,"警告"
</script>
<%ELSE
num=rs.Fields.Count%> <font face="黑体" size="2"><center><FONT
face=楷体_GB2312><STRONG><U>设备属性值</U></STRONG></FONT></center><br>
<center><table align="left" frame= box cellspacing="0" cellpadding="0" rules="all">
<%for i=0 to num-1
Response.Write "<tr>"
Response.Write"<td height=/'20/' nowrap=true>" & rs.Fields.Item(i).Name & "</td>"
Response.Write "<td height=/'20/' nowrap=true>" & rs.Fields.Item(i).Value & "</td>"
Response.Write "</tr>"
next %> </table></center>
<%end if%>
%>
7. 结论
使用ASP不仅可以完成设备查询、空间分析,定位设备,标注设备,设备维修等功能,还可以把WEB GIS的功能进一步拓展,如与时实查询、MIS相结合,集管理数据与空间地理数据信息于一体,建立一个以地理信息系统为中心的电厂综合管理系统。
参考文献:
[1] Autodesk MapGuide Server User’s Guide
[2] 王国荣 Active Server Pages & Web 数据库,人民邮电出版社,1999
[3] 康博 Web 应用程序开发新技术,人民邮电出版社,1999
华北电力大学(北京)信息工程系 102206
摘要: 地理信息系统(GIS)是计算机应用领域的一个重要分支,随着Internet/Intranet技术的发展和广泛应用,Web GIS 已成为GIS发展的必然趋势。结合电厂的特点,介绍了一种Web GIS的设计方案及相关的实现技术,并给出了利用ASP技术开发 Web GIS的一个实例
关键词: Web GIS ASP 数据库
1. 引言
GIS 是地理信息系统(Geographic Information System)的简称,是处理地理数据的输入、输出、管理、查询、分析和辅助决策的计算机系统,是国内外新兴的应用领域。随着Internet/Intranet 技术的迅速发展,特别是WWW技术的出现和普及,为GIS开辟了广阔的发展前景,Web GIS已成为GIS发展的必然趋势。
发电厂具有设备量大、管线复杂等特点,对管理具有很高的要求。将地理信息系统及Internet/Intranet 技术应用于电厂,集管理数据与空间地理数据信息于一体,建立一个以地理信息系统为中心的电厂综合管理系统,实现全厂范围内的数据共享,为生产、经营管理提供现代化的管理手段和科学的决策支持,可以有效提高电厂的工作效率和经济效益。
2. 运行环境
2.1. 服务器端
操作系统:Microsoft Windows NT 4.0
关系数据库管理系统:Microsoft SQL Server 6.5以上
Web 服务器:Microsoft IIS 3.0以上。
地图发布软件:Autodesk MapGuide Server 3.0
2.2. 客户端
操作系统:Microsoft Windows 95/98
浏览器:Microsoft Internet Explorer 4.0
3. 开发环境和工具
Visual InterDev 6.0:用于制作基于ASP方式的动态页面。通过ODBC访问各种数据源,可实现人机交互等动态页面功能。并且可以在其中嵌入VBScript、javascript及ActiveX控件等。
Microsoft FrontPage 98:是一个Intranet集成处理工具,把高级Web制作工具与站点管理实用程序结合在一起。
其他一些辅助工具(Visual Basic 6.0、Visual C++等):用于开发一些ActiveX控件,使页面更丰富,功能更强大。
4. 数据的组织与存储
地理信息系统的数据包括两部分:地图数据和属性数据。这两种数据是有联系的。在设计数据库的结构及数据的分布时,要尽量使数据库结构简单、冗余度小,数据分布合理,以提高系统的运行效率。
4.1. 地图数据
地图数据包括点、线、面等要素,但要以点、线要素为主,以达到数据结构简单的目的。对地图数据要进行分层管理,一般将相同种类的设备组织在一个图层上,每一个图层以一个单独的文件进行存储,不同的地图处理系统对图层的存储格式不尽一致。如果地图发布软件选择Autodesk MapGuide Server 3.0,则需要将地图数据文件转换成MWF格式,再由MapGuide Server进行管理。
4.2. 属性数据
每一个图层都对应一张表,图层中的每一个对象都对应表中的一条记录。我们将所有的表都放在一个关系数据库中进行存储和管理,这样可以有效地利用关系数据库已经相当成熟的功能。
4.3. 地图数据与属性数据的连接
Autodesk MapGuide 由三个部分组成,分别为:Author,Server 和Viewer 。Author 可以安装在服务器端,也可以安装在客户端,用来编辑所发布的地图窗口文件(mwfs); Server 安装在服务器端,用于接收并处理客户端发出的有关地图操作的请求; Viewer 安装在客户端,作为浏览器的控件,用于在浏览图形时解释网上传输的矢量数据格式。
利用 Author也可以把地图信息和数据库信息相结合,对地图上的图形目标进行查询。但这种方式不够灵活,而且扩展能力差。为了扩展功能,更好的与数据库进行结合,在实际应用中一般将图形数据和属性数据进行分离(如上面所讲的那样),图形数据放到Autodesk MapGuide Server中,属性数据放到关系数据库管理系统中,利用图形目标的唯一的标志值将图形数据和属性数据进行结合。这里我们采用ASP技术将二者进行结合。
5. 系统功能设计
在任何时候用户都可以对地图进行放大、缩小、漫游、打开及关闭图层操作。除此之外,系统还提供地图操作、空间分析、维修管理、系统管理等功能模块。
5.1. 地图操作
此功能模块包括信息查询、图片显示、定位设备及测量距离子模块。
(1)信息查询:在地图上选中一个对象,此模块用于显示选中对象的属性数据。
(2)图片显示:在地图上选中一个对象,此模块用于显示选中对象的图片信息,如果选中 的对象没有图片,则给出没有图片信息的提示。
(3)定位设备:此模块用于根据属性数据信息来查找图形数据。系统提示用户选择图层,根据用户选择的图层,系统将该图层上的对象信息以表格的形式列出,用户选择要查找的对象后,系统进行查找工作,最后将用户选择的对象放大显示在地图窗口的中间位置。
(4)测量距离:此功能用于测量任意两点之间的距离。
5.2. 空间分析
此模块提供相交、包含等空间拓扑关系的分析能力。可以对挖切面、圆坑、方坑、不规则坑等挖到的地下管线进行空间分析。
5.3. 维修管理
此模块提供对设备维修记录的登记、查询等功能。
5.4. 系统管理
此模块提供密码修改及系统退出两项功能。上面提供的部分功能需要输入正确的密码才能使用。
6. 系统实现技术
主要使用了ASP技术访问数据库,及地图数据与属性数据的连接。
6.1. ASP技术及数据库访问
ASP(Active Server Page)是微软IIS3.0的一个服务器脚本环境,在该环境下能够产生和运行动态的、交互的、高性能的WEB服务器应用。当脚本运行在服务器端而不是运行在客户端时,WEB服务器完成涉及送回浏览器HTML页的所有工作,而不用担心浏览器是否能处理所要求的页面,该任务由WEB服务器完成。ASP能使WEB服务器处理VBScript或JScript命令,任何连接WEB服务器的浏览器不必考虑它是否支持VBScript或JScript,都可产生人机交互及动态页面。
ASP尤其适合连接数据库。Microsoft在IIS3.0中增加了Active Server的功能,这使得我们可以采用ASP技术进行数据库的集成。ASP提供了许多ActiveX服务器构件,其中通过ActiveX组件ADO(Active Data Object,是基于ODBC的数据库访问对象)即可方便地访问数据库服务器上的数据。访问数据库时,WEB服务器起着中间部件的作用。它接受用户WEB浏览器的HTTP请求,使用ODBC把对数据库的任何请求通过网络送到数据库服务器,从数据库服务器接受数据并且把产生的WEB页和数据送回到用户浏览器。
ADO使在客户端写的应用程序能访问和操作数据库服务器提供的数据。ADO易于使用,速度快,占用内存少。下面一段VBScript程序是ADO通过ODBC访问SQL SERVER数据库
<%set DBConn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
DBconn.Open"driver={SQLServer};server=NT_SERVER;uid=SA;pwd=GIS0;database=SHDB"
sql="select * from user1 "
set rs=dbconn.Execute(sql)%>
6.2. 地图数据与属性数据的连接
由于使用MapGuide作为地图的发布软件,ASP技术需要与MapGuide相结合实现地图数据与属性数据的连接。
MapGuide Server 通过代理(CGI,ISAPI等)向WEB服务器传递MWF文件,WEB SERVER向ASP提供图形目标关键值,ASP通过ODBC从SQL SERVER中提取图形目标属性信息传递给WEB SERVER,并在用户浏览器端显示。利用ASP强大的数据库功能,使MapGuide可以将地图与相应的数据库有机的结合起来,实现地图数据与属性数据的双向查询。
在电厂地理信息系统中,ASP技术的应用几乎遍布于Web GIS的各个功能模块。如在设备查询中,可以根据地图中传来的图形目标的关键值来从SQL-SERVER数据库中查询该设备的属性值,也可以显示有关该设备的图片,照片; 在管道的空间分析中可以根据空间分析操作中所涉及的所有管道的关键值进行分层,再从相应的数据表中显示管道的所有属性; 在设备维修的录入与查询等操作中也同样需要使用ASP技术。
下面给出一个利用ASP来根据设备图形目标的关键值来查看该设备的属性数据的实例。在此例中,首先在地图上选中所要查看信息的图形目标,并按提交按钮“查询信息”,利用JScript脚本语言在函数submit2_onclick() 中调用MapGuide Viewer API 函数获得层名layer和关键值key。在ASP脚本中通过ADO访问数据库数据,打开SQL-SERVER中名为layer的表,选择编号为关键值key的记录,然后以表格形式显示该记录的属性信息。
<script ID="clientEventHandlersJS" LANGUAGE="javascript"> function submit2_onclick()
{
var map = getMap(); //获得当前地图
if (map.getselection().getnumobjects()==0)
{
alert("请先用鼠标进行选择!")
return;
}
var mapSel = map.getSelection(); //获得地图上所选的对象
var objs=mapSel.getmapobjectsex(null);
var cnt=objs.size();
if (cnt>1)
{alert("请选择一个设备");
return;
}
var obj1=objs.item(0);
var layer1=obj1.getmaplayer()
var layer=layer1.getname(); //获得图形对象的层名
var key=obj1.getkey(); //得到图形对象的关键值
FORM2.text1.value=layer;
FORM2.text2.value =key;
}
</script>
<form action="" id=FORM2 method=post name=FORM2> <input id=submit2 name=submit2 type=submit value=查询信息language=javascript onclick="return submit2_onclick()">
<input id="text1" name="text1" input id="text2" name="text2" >
<%if Request.Form("submit2")="查询信息" then
set DBConn = Server.CreateObject("ADODB.Connection")
set rs = Server.CreateObject("ADODB.Recordset")
DBconn.Open "driver={SQL Server};server=NT_SERVER;uid=SA;pwd=GIS0;database=SHDB"
layer=Request.Form("text1")
key=Request.Form("text2")
sql="select * from " & layer & " where 编号=/'" & key & "/'"
set rs=dbconn.Execute(sql) ‘在图层名为layer的数据表中查找编号等于key的记录
if rs.eof then%>
<script language=vbscript>
msgbox "没有该设备的记录!",0,"警告"
</script>
<%ELSE
num=rs.Fields.Count%> <font face="黑体" size="2"><center><FONT
face=楷体_GB2312><STRONG><U>设备属性值</U></STRONG></FONT></center><br>
<center><table align="left" frame= box cellspacing="0" cellpadding="0" rules="all">
<%for i=0 to num-1
Response.Write "<tr>"
Response.Write"<td height=/'20/' nowrap=true>" & rs.Fields.Item(i).Name & "</td>"
Response.Write "<td height=/'20/' nowrap=true>" & rs.Fields.Item(i).Value & "</td>"
Response.Write "</tr>"
next %> </table></center>
<%end if%>
%>
7. 结论
使用ASP不仅可以完成设备查询、空间分析,定位设备,标注设备,设备维修等功能,还可以把WEB GIS的功能进一步拓展,如与时实查询、MIS相结合,集管理数据与空间地理数据信息于一体,建立一个以地理信息系统为中心的电厂综合管理系统。
参考文献:
[1] Autodesk MapGuide Server User’s Guide
[2] 王国荣 Active Server Pages & Web 数据库,人民邮电出版社,1999
[3] 康博 Web 应用程序开发新技术,人民邮电出版社,1999
评论
最新评论(0)
相关新闻:
-
无相关信息