Rover's Official Blog

Map/GPS/GIS/WebMap

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  47 随笔 :: 0 文章 :: 437 评论 :: 41 引用

声明:转载请著名出处,谢谢。

 

校园WebGIS开发与实践 

[摘要]网络地理信息系统(WebGIS)是当前GIS技术热点,本文以“校园通”为例,探讨WebGIS技术在校园基础信息、部门分布、人员管理和课程信息等多方面的应用,为用户提供空间数据浏览、查询等功能,研究以地图服务器和Web服务器的建立为基础,其中以校园WebGIS数据库的建立为重点,包括各种数据的采集、分类、编码和录入等,最终建成校园WebGIS——“校园通”,并根据开发过程以及WebGIS的发展方向,对校园WebGIS的应用作前景分析。
[关键词]WebGIS   校园通   Supermap IS   数据库   地图   

目录
引言
1 WebGIS概述
1.1 WebGIS的定义
1.2 WebGIS的特点
1.3 WebGIS的平台软件
1.4 WebGIS的主要构造方法
2 设计思路
2.1 系统功能分析
2.2 内容结构体系
2.3 研究方法和技术路线
2.4 技术路线流程图
3 地图数据
3.1 校园数据的采集
3.2 空间信息数据库设计
4 数据库设计
5 系统功能实现部分的几个关键技术
5.1 数据库查询的实现
5.2 目标定位功能的实现
5.3 空间数据与属性数据的关联
6 “校园通”系统操作指南
6.1 地图窗口部分的操作
6.2 系统主窗口部分的操作
7 校园WebGIS开发总结
7.1 学术意义和应用前景
7.2 特色或创新之处
参考文献
附图:部分功能的实现
附录:“校园通”系统的安装方法

2 设计思路
2.1 系统功能分析
        “校园通把校园内的图形、属性结合在一起,在可视环境下解决与校园空间信息有关的信息查询、信息发布、空间规划、信息管理等实际问题,从而便于全校师生以及家长查询、检索所需信息,更为各级领导对校园进行可视化的管理、分析与决策带来了极大的方便。
 校园通实现的主要功能如下:
(1)各种图形数据查询。为用户提供校园内的空间信息查询,主要为各建筑物、各办公室和各部门等信息查询。
(2)各种属性数据查询。直接在数据库中检索、查询所需的属性信息,如教师信息、学生信息、课程信息等。(3)各种图形数据显示与输出:地图显示、下载、打印等。
(4)图纸浏览。对各建筑物各楼层的图纸进行浏览。
(5)问题反馈。收集各用户在使用校园通过程中的意见或建议。
6)地图接口。简短的一段代码即可为各部门提供位置定位服务。在各部门的网站上可以通过我们提供的一段代码,以超连接的形式连接到我们的服务器,并可以通过该超连接定位、查询该部门以及显示部门相关信息。(7)后台数据库管理。该功能只提供给管理员用户使用。通过后台的简单操作即可实现数据的输入、更新、删除等操作。 
2.3 研究方法和技术路线
        通过对WebGIS平台软件和主要构造方法的比较,并针对自己编程能力、开发时间等实际情况,最终,笔者选用Supermap IS 2003作为WebGIS ServerMicrosoft IIS作为Web服务平台,Microsoft SQL Server 2000作为空间信息和属性信息数据库,Server API构造方法中的ASP语言,并结合JavascriptXML等语言进行系统开发。

5 系统功能实现部分的几个关键技术
5.1数据库查询的实现
        在数据库查询部分,由于ASP语言是在服务端执行,而Javascript语言是在客户端执行的,两者在执行方式上完全不同,故两者间不能实现交互。在空间信息和属性信息查询部分使用ASP语言查询,而在地图界面部分的模糊查询功能使用XML进行交互查询。在MS SQL Server 2000中引入了支持 XML 功能的新特性。MS SQL Server中提供了四种查询类型:(1)允许URL查询(2)允许模板查询(3)允许XPath(4)允许Post。笔者采用了URL查询类型。该语句格式如下:http://IISServer/data?sql=select * from info where searchkey like '%25" + mystrsearchtext + "%25' FOR XML AUTO&root=root"其中“IISServer”为IIS服务地址,“data”为对笔者自建的SQL ServerIIS虚拟目录,“sql=”后的为查询语句,本语句中是查询info表中searchkey字段类似于mystrsearchtext(该为笔者定义变量,值从上部表单处获得)的纪录。通过该语句,将查询到的结果生成为XML文档,然后通过自定义的GetNameValue (strName)函数返回xml文档中节点名为strName的节点的text值。不利用ASP语言同样可以完成数据库的查询操作。
5.2目标定位功能的实现
在系统中,定位函数仅有一个,即MapSeek(strLayer,strID,strMode,objStyle,dScale)函数,该函数中,strLayer 为目标图层,strID为目标空间对象的SMIDbjStyle为高亮显示对象的风格,dScale为定位比例尺(为0时保持原来的比例尺不变,即该参数在0值时不起作用)。该函数缺点为只能实现在指定的窗口定位,但是由于在系统主体部分的空间信息查询是只进行查询但暂不做定位,待查询结果列举出来后再进行定位,于是MapSeek无法直接判断指定窗口或者地图是否更换,也就不能直接实现定位功能,于是笔者自定义了一个Position(Map,Layer,Smid,mapscale)函数,其中Map为地图名称,Layer为图层名称,Smid为目标空间对象的SMIDmapscale为定位比例尺,该函数首先判断指定窗口和地图是否更换,如果找到指定窗口并且地图没有更换,则直接利用MapSeek函数对目标进行定位,如果没有打开新窗口或者地图已经更换,则通过“xznu.htm?MAP=" + Map + "&LAYER=" + Layer + "&SMID=" + Smid + "&mapscale=" + mapscale”该超连接来打开新窗口实现定位,也就是通过该超连接将Map,Layer,Smid,mapscale这几个参数传递到新窗口页面xznu.htm中,在新窗口打开并显示地图的时候判断是否有参数传递,有则先显示地图后用 MapSeek函数对目标进行定位,没有则直接显示地图。其实,系统中地图接口子系统部分也是通过调用Position函数来实现目标定位的。
5.3空间数据与属性数据的关联
由于空间数据和属性数据是分离的,最终我们是需要把它们关联起来的,让空间数据获得属性信息。如何实现这一功能呢?利用MS SQL Server中的视图功能便可实现。Info表中的smid字段即是为实现空间数据与属性数据关联而特别设置的字段。新建视图并在SQL窗格里输入如下语句:SELECT dbo.build.*, dbo.info.popname AS name FROM dbo.build INNER JOIN   dbo.info ON dbo.build.SmID = dbo.info.smid WHERE (dbo.info.type = 0)然后保存视图为map0view,同时,打开SmRegister表,将字段SmTableName中的build值改为map0view,这样两表完成了关联,并且空间数据获得了属性信息。使用同样的方法将Px空间信息表和Info属性信息表关联,语句如下:SELECT dbo.Px.*, dbo.info.popname AS name FROM dbo.info INNER JOIN  dbo.Px ON dbo.info.smid = dbo.Px.SmID WHERE (dbo.info.mapid = x)最后保存为mapxview。(说明:以上x取值为0121 

7.2特色或创新之处
(1)简单的Web操作,方便非专业人员的信息查询使用;
(2)使用专业的WebGIS Server,将数据库与用户界面分离,可移植性强,降低了二次开发费用低。
(3)Web技术和GIS技术同时运用到校园建设管理中,有效提高管理水平与效率;
(4)开放的地图接口程序,为各部门提供了非常形象的“地图名片”服务;
(5)“校园通——校园信息化快速通道”,作为校园信息化建设的一部分有效地推动了数字校园建设的进度。

PDF文档下载地址:http://files.cnblogs.com/Tangf/Campus_WebGIS.rar




posted on 2006-01-13 19:28 Rover.Tang 阅读(6904) 评论(11)  编辑 收藏 网摘 所属分类: GIS

评论

#1楼 [楼主] 2006-01-13 19:48 浪人|努力      
刚加入WEBGIS团队,希望能够和大家多多交流与探讨。这是我原来的毕业设计吧,文章写的不好,主要觉得希望能从技术层面上讨论下超图的WEBGIS产品。其实,我并不是很喜欢超图的东西的,象文中提到的SuperMap IS 2003,速度其实蛮慢的。本来考虑了两个软件,一个就是超图的IS,一个是GeoBeans,主要觉得GeoBeans提供的例子不多,界面又不是很好看,最后还是选择了超图,而且是因为超图提供了比较好的例子。象mapxtreme主要是因为我装了老是服务起不来,而且基本上没有提供什么例子,所以放弃了,可我心里还是老挂念着MapInfo公司的东西的,象图形天下用的就是MapInfo公司的产品,效果还不错。至于ARCIMS,这东西太复杂加上安装的配置要求比较高所以也放弃了。其实,我倒很喜欢GOOGLE MAP API的,可惜当时没有出来,而且JS不是很懂。不知道MAPBAR的东西倒不错,一个是JAVA的一个是JS的,速度都很好,不知道有谁有兴趣研究的。
  回复  引用  查看    

#2楼  2006-01-14 11:24 老家伙来挨踢      
mapbar的地图引擎的确速度非常快,他们针对互联网地图服务做了优化,不像ESRI和Mapinfo的产品,应用面太广,影响了速度。不过像arcims是专门用于发布地图的,性能也很不错,而且各种客户端均支持(JS,applet,activex),二次开发是复杂了些,不过等9.2版出来就可以在visual studio中可视化开发了。目前编程最方便的还是mapxtreme2004和Arcgis server .net ADF。
  回复  引用  查看    

#3楼  2006-01-14 15:57 老家伙来挨踢      
给个链接,可以研究一下mapbar的地图怎么调用。
http://www.mapbar.com/thememap/csbus/map.jsp
  回复  引用  查看    

#4楼 [楼主] 2006-01-14 17:58 浪人|努力      
@老家伙来挨踢
这个我打不开,但我JAVA虚拟机是装了的啊。而且我也不大清楚这个连接。而且我把MAPBAR的JAR下载并反编译成了JAVA的代码,看不懂,还希望会JAVA的人来看看那,呵呵。不过我觉得这个连接还不是MAPBAR最深层的连接地址,他们一般以http://service.mapbar.com/这样地址来开头的。看我的分解:
整个框架,这个可以作为论坛插件,其中有名称大小类型和LOGO的显示等,都可以通过这个连接来调整:http://service.mapbar.com/commonmapright/?title=图为先电子地图欢迎您&cityCode=021&width=725&zm=22&logo=true&cityOption=ture&state=map666&color=imgblue
右框架,查询发送地图等功能都在这里:http://service.mapbar.com/commonmapright/menubar.jsp?cityCode=021&color=imgblue
选择城市,当然也可以在整体框架中关闭这个功能:http://service.mapbar.com/commonmapright/changeCity.jsp?color=imgblue
至于地图框架可以自己找一下
而且在这个下面他们也提供了类似的框架,但用的是栅格图片的格式而非JAVA小程序的格式。

  回复  引用  查看    

#5楼  2006-01-17 13:49 老家伙来挨踢      
我说的那个页面是他们为长沙市准备的,实际上和他们的整个地图是一体的,只是起始点在长沙,范围也是长沙市的范围,但你可以漫游整个中国地图,现在在我的浏览器上还是可以打开的。可以试一下用JS控制地图显示。mapbar倒是挺好的,直接提供地图给大家调用,没有任何限制。
  回复  引用  查看    

#6楼 [楼主] 2006-01-22 11:11 浪人|努力      
<applet
code="com.airversal.avmaplet.AVMaplet"
codebase="http://maplet.mapbar.com"">http://maplet.mapbar.com"
archive="mapbar.jar"
name = maplet
width="700"
height="403"
zm = "24"
ctr="IBGACTVUHGRSF"
mlabel=""
mayscript>
<param name=msvr value="mapzvr.jsp?">
<param name=edit value="open.jsp">
<param name=logo value="true">
<param name=client value="222.222.87.240">
</applet>

其实,你只要看这段代码就可以了,保存为网页格式就可以看到长沙地图,以后可以用JS调用方法对这个MAPLER进行操作。
其中,ctr="IBGACTVUHGRSF"是加密了的坐标,ZM是缩放级别,MLABEL是标题,你可以加上去看看,其他是长宽。后面的就不是很清楚了,反正是调用的时候要用到的,LOGO是否显示LOGO,CLIENT这个应该是你自己的地址。
下面举个上海的例子,把代码保存为网页你就可以看到效果了,坐标在东方明珠附近
<applet
code="com.airversal.avmaplet.AVMaplet"
codebase="http://maplet.mapbar.com"">http://maplet.mapbar.com"
archive="mapbar.jar"
name = maplet
width="600"
height="400"
zm = "28"
ctr="IJSVSHWVJBCGC"
mlabel="这个是上海的地址"
mayscript>
<param name=logo value="false">
</applet>
  回复  引用  查看    

#7楼  2006-05-14 22:35 tangjz [未注册用户]
您好,我也在做毕业设计,您都给我点指导吗?

QQ 20936027
  回复  引用    

#8楼  2007-05-23 16:41 mmc [未注册用户]
我在学习中,但你的数据库文件怎么没有呀?@浪人|努力

  回复  引用    

#9楼  2008-02-22 15:03 ChanderlerQian      
你好,我最近也要做个webgis的项目,也是拿超图的SuperMap IS 2008开发的,你能给点指导吗?我的msn:chanderlerqian@hotmail.com
  回复  引用  查看    

我也在做这方面的开发。。
  回复  引用    





标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-02-08 20:54 编辑过
Google站内搜索

China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: