基于ArcIMS的WebGIS应用系统的构建与实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:mosalin
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:WebGIS是一种在网页上显示地理信息的先进的GIS应用系统,它解决了传统胖客户端对机器配置要求高、不便于维护、不利于地理信息广泛发布的缺点。文中简要阐述了ArcIMS地图服务器、WebGIS应用系统的工作原理及其配置,并通过基于ArcIMS的WebGIS智能交通系统的开发,介绍了WebGIS应用系统的一种开发方法,对于构建WebGIS应用系统起到了积极的作用。
  关键词:WebGIS;ArcIMS;ArcIMS Java API;系统配置;智能交通系统;实现
  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)12-21675-02
  
  The Construction and Implementation of WebGIS Application System Based on ArcIMS
  
  ZHOU Pei, LIU Yan
  (School of Software Engineering, Tongji University, Shanghai 201804, China)
  Abstract:WebGIS is an advanced GIS application system that displays geographical information on the web page. It resolves the traditional rich client’s problems of high quality hardware and software requirements, hard maintenance and making against the abroad issue of geographical information. This paper introduces ArcIMS server, the architecture and configuration of WebGIS system. Moreover, through the development of WebGIS intelligent transport system, the paper introduces a development method of WebGIS application system and plays more active role in construction of WebGIS application system.
  Key words:WebGIS; ArcIMS; ArcIMS Java API; System Configuration; Intelligent Transport System; Implementation
  
  1 引言
  
  随着社会生产力的迅猛发展和信息技术的飞速进步,社会对地理信息的需求正在不断增长,GIS应用系统发挥着越来越重要的作用。在传统的GIS应用系统中,采用的是胖客户端的发布方式,这要求客户端安装专门的地图浏览程序、机器配置要求较高、系统不便于维护、不利于地理信息数据的共享。为解决这个问题,GIS应用系统和Web服务相融合,产生了基于Web的地理信息系统WebGIS(Web Geographic Information System),这是一种瘦客户端的发布方式,在服务器端建立一个强大的全功能平台,可以在其上构建完整的GIS业务逻辑。通过WebGIS,任何人只要使用轻量级的终端就可以访问所需要的地理信息,比如用免费的Web浏览器或移动客户端来访问。通过这种方式开发出来的GIS应用系统对客户端的软硬件配置要求较低、系统易于维护、地理信息易于共享。因此,如何实现WebGIS已成为GIS研究领域的重要课题。目前已经产生出许多优秀的WebGIS应用系統,比如:Google Maps、Microsoft Live Maps、Yahoo Maps。这些WebGIS系统是怎么构建出来的,我们如何构建自己的WebGIS应用系统?本文就采用ESRI公司的ArcIMS地图服务器和J2EE体系结构,探讨一种基于ArcIMS的WebGIS应用系统的工作原理、配置方法、设计以及具体实现。
  
  2 基于ArcIMS的WebGIS应用系统概述
  
  2.1 地图服务器ArcIMS简介
  ArcIMS是一个跨平台、分布式的互联网地图服务器。ArcIMS基于开放的Internet协议,动态地发布地图、数据和元数据,为GIS网络发布提供了高度可伸缩和高效的地图服务框架,使开发人员可以方便地进行WebGIS应用系统的开发,从而满足用户通过网络共享GIS信息的需求。ArcIMS具有以下优点:
  应用系统的客户端界面基于标准的Web浏览器,对客户端的软硬件要求较低;
  支持多种客户端设备,如:PC机、手持设备、车载导航系统、电子公告屏等;
  高效地支持大量用户并发访问;
  具有很好的可扩展性:无须修改原先应用软件的代码,可以根据不断变化的服务需求增加或去除软件功能,做到随需应变;
  支持在多个平台上运行,如:Windows、Linux-RedHat、Linux-SUSE 、IBM-AIX 、HP-UX(PA RISC)、SUN-Solaris(SPARC)。
  正因为ArcIMS本身优秀的架构设计,使得开发出来的WebGIS应用系统可维护性好,可扩展性强。
  2.2 基于ArcIMS的WebGIS应用系统的工作原理
  WebGIS是一个基于Internet的GIS应用系统,它采用典型的Web应用三层体系结构,即表示层、业务逻辑层和数据层。它可以分为客户端(Web浏览器)和服务器端两部分,如图1所示。在客户端,可以通过自己开发的客户端页面向Web服务器发出请求来访问地理信息数据,也可以通过ArcIMS自带的客户端页面JspViewer来进行访问。在服务器端,最前端是Web应用服务器,可以选用WebSphere Application Server、IIS、Apache等标准的Web服务器,它和ArcIMS协作提供地理信息数据的服务。Java连接器用来连接Web应用服务器和ArcIMS地图服务器。ArcIMS地图服务器通过Java连接器与Web应用服务器进行通信,为客户端提供地图服务。服务器端各组件都是通过TCP/IP协议进行通信的,而ArcIMS各组件间又是通过ArcXML(一组ArcIMS专用的XML标签)实现TCP/IP通信的,Java连接器正是在Web应用服务器和ArcIMS地图服务器之间起着翻译ArcXML的作用,帮助实现ArcIMS地图服务器与Web应用服务器的通信。
  
  图1基于ArcIMS的Web应用系统的工作原理
  2.3 基于ArcIMS的WebGIS应用系统的配置
  要进行WebGIS应用系统的开发,首先要搭建WebGIS应用系统的运行环境。WebGIS应用系统的运行环境配置如下:首先,配置ArcIMS的发布,这是通过运行ArcIMS的自带组件 Post Installation进行配置的;然后,设置Java连接器,ArcIMS自带了Java连接器,它以.war的形式存在,Web应用程序包名称为arcimsservletconnector.war,在Web应用服务器上发布这个Web应用程序,就设置好了Java连接器;最后,ArcIMS还要与空间数据库进行连接,以对地理信息数据进行访问。   
  
  3 基于ArcIMS的WebGIS应用系统实例研究
  
  3.1 需求分析
  文中把WebGIS应用于智能交通系统来说明如何设计和开发基于ArcIMS的WebGIS应用系统。在该系统中,要求用户可以在Web浏览器中查看城市的交通道路拥挤状况,道路拥挤状况用不同级别的颜色在道路上表示;用户可以进行从属性到地物和从地物到属性的双向查询;用户可以对地图进行基本的GIS操作,例如浏览、查询、放大、缩小、漫游和测距等基本操作。这样,广大用户不仅可以方便地获取静态的地图路网信息,还可以了解当前某条道路的交通运行状况,以避开拥堵路段,选择合适的出行路径,从而缓解交通道路拥挤状况。同时,该系统有助于交通管理部门收集历史道路车流量数据,为交通管理建设提供有力的参考依据。
  3.2 Java连接器提供的Java API简介
  Java连接器自带了一组JavaBean,它们为地图操作提供了一组Java API,其功能是将JSP页面中对地图的操作请求转换为相应的ArcXML,以实现与ArcIMS地图服务器进行通讯。这组JavaBean中有一些是重要的常用组件,它们封装了对所表示对象的所有操作,比如加载动态图层、描画地图符号(点、线、五角星)、查询空间数据等,通过这些封装良好的组件,开发人员可以专心于地图业务逻辑的开发,而不用去关心具体的ArcXML,因此在开发前了解其中的几个常用组件是非常有必要的。下面列出了地图操作中几个重要的常用组件,并对其用途进行了简要的说明。
  ConnectionProxy:用来建立应用程序与ArcIMS地图服务器之间的连接。
  Map:它是实际显示的地图的抽象,该类内部封装了几乎所有的地图操作。
  FeatureLayer:它是地图图层的抽象,用该对象可以引用实际的地图图层。
  Envelope:它是范围对象的抽象,用该对象可以设定要显示的地图范围。
  SimpleMarkerSymbol:它是标记符号的抽象,通过该对象可以用预先定义的符号(五角星、十字形等)标记特征点。
  TextSymbol:它是文本标记符号的抽象,通过该对象可以用文本标记点层、线层和多边形层。
  3.3 实现细节
  这里我们用Java连接器提供的Java API实现通过属性对地图上的地物作定位,来说明如何利用Java连接器提供的API进行地图操作。
  (1)设置与ArcIMS应用服务器的连接。ArcIMS提供了一个专门的JavaBean:ConnectionProxy,用来设置与ArcIMS应用服务器的连接,该JavaBean位于com.esri.aims.mtier.io包中。设置连接的代码如下:
  import com.esri.aims.mtier.io.ConnectionProxy;
  // 使用ConnectionProxy对象建立与ArcIMS应用服务器的连接
  ConnectionProxy connection = new ConnectionProxy();
  // 可以使用HTTP或者TCP连接,此处建立了一个TCP连接
  connection.setConnectionType(TCP);
  connection.setService("ITS"); // 设置Service Name
  connection.setHost("mygis");// 设置连接机器的IP地址
  connection.setPort(5300); // 设置连接端口
  (2)初始化Map对象。Map对象是ArcIMS提供的另一个重要的JavaBean,该对象封装了对地图的所有操作,我们对地图的操作都可以通过该对象来完成。当然在使用之前要对它进行必要的初始化操作,以确定所要地图的初始样式。Map对象位于com.esri.aims.mtier.model.map包中。初始化Map对象的代码如下:
  import com.esri.aims.mtier.model.map.Map;
  Map map = new Map(); // 创建map对象
  // 这里用到前面设置好的连接对象
  map.initMap(connection, 0, false, false, false, false);
  map.setWidth(400); // 设置地图的显示宽度
  map.setHeight(380);// 设置地图的显示高度
  map.setBackground("237,234,227");// 设置地图背景
  (3)从属性到地图的查询。本例的地图服务ITS中有一个DISTRICT图层,现在要查询一个名称为“GOVERNMENT”的市政府地点,把它用红色五角星表示出来。首先要遍历Map对象中的图层,找到DISTRICT图层,代码如下:
  FeatureLayer fLayer = null;
  // 获得map对象中地图图层的数量
  int LayerCount = map.getLayers().getCount();
  // 遍历图层
  for (int k=0; k  {
   String LayerName = map.getLayers().item(k).getName();
  if (LayerName.equals("DISTRICT"))
  fLayer = (FeatureLayer)map.getLayers().item(k);
  }
  然后创建并初始化所要的符号对象SimpleMarkerSymbol,该符号对象是ArcIMS提供的,位于com.esri.aims.mtier.model.map.layer.renderer.symbol包中:
  import com.esri.aims.mtier.model.map.layer.renderer.symbol.SimpleMarkerSymbol;
  SimpleMarkerSymbol sm1 = new SimpleMarkerSymbol();
  sm1.setMarkerType("star"); // 设置为星形标记
  sm1.setColor("255,0,0"); // 设置颜色为红色
  sm1.setWidth(30);// 设置大小为30
  利用Map对象的成员函数displayFeatures()就可以在所要查询的地物位置上显示特定的标志:
  // fLayer为前面定位的图层,sm1为设置好的符号对象
  map.displayFeatures(fLayer, "NAME='GOVERNMENT'",false, sm1);
  (4)最后把地图在JSP页面中显示出来。
  <%
  String mapURL = map.getMapOutput().getURL();
  %>
  
  ArcIMS JSP Samples
  
  
  
  
  
  

  
  

  
  
  运行这段程序,效果如图2所示。
  这里选取了有代表性的操作“从属性到地物的查询”来分析WebGIS应用系统的开方方法,其它地图操作的开发方法与此类似。
  
  4 结束语
  
  图2
  从属性到地物的查询
  WebGIS提供了一种易于维护、易于发布的分布式GIS解决方案。虽然目前的WebGIS所提供的空间分析能力还不及胖客户端应用程序,但是随着信息技术的发展,随着WebGIS应用研究的深入,WebGIS系统必将走进千家万户的家用电脑,走进人们所拿的上網手持设备,走进司机的车载导航系统,像Internet一样成为百姓生活中不可或缺的信息工具。
  
  参考文献:
  [1]毛锋,沈小华,艾丽双. ArcGIS 8开发与实践[M]. 北京:科学出版社,2004.
  [2]党安荣,贾海峰,易善桢 等. ArcGIS 8 Desktop地理信息系统应用指南[M]. 北京:清华大学出版社,2003.
  [3]吴秀芹,张洪岩,李瑞改 等. ArcGIS 9地理信息系统应用与实践[M]. 北京:清华大学出版社,2007.
  [4]邓芳,李新城,朱伟兴. 一种新的基于ArcIMS 3.1的WebGIS 方案[J]. 计算机工程,2002,28(10):208-209.
  [5]ESRI INC. ArcIMS 4.1 Architecture and Functionality[M]. ESRI, CA, 2003.
  [6]ESRI INC. Customizing ArcIMS HTML Viewer[M]. ESRI, CA, 2003.
  “本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。”
其他文献
摘要:阐述了层次分析法的基本思想、方法和步骤,给出AHP的特征根计算方法,编写了C语言算法,并且算法通过了数据测试。  关键词:层次分析法;判断矩阵;一致性校验;C算法  中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)12-21654-02    The C Algorithm on Consistent Rule Of Judgment Matrix in AHP 
期刊
摘要:本文分析了BitTorrent协议规范,根据torrent文件格式和Bencoding编码规则,在C#.Net2005环境下实现了对torrent文件的解析。根据分析结果,给出了一种下载程序的实现。  关键词:下载程序;BitTorrent协议;torrent;B-encoding  中图分类号:TP312文献标识码:A文章编号:1009-3044(2007)12-21661-02    D
期刊
摘要:数据查询是数据库的常规操作之一,数据查询中最有灵活性的是动态查询。本文详细介绍了在Delphi中实现数据查询的各种方法,特别强调动态查询的实现方法,对于每一种方法均给出了实现代码。   关键词:数据库;Delphi;ADO;查询   中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21481-02      The Methods of Data Query
期刊
摘要:随着计算机技术和电子技术的日益发展,衍生出了有别与以往的单纯的计算机软硬件和电子技术的嵌入式系统。嵌入式系统已经应用到人们生活,工作,学习的方方面面。本文主要讨论的是目前主流的嵌入式微处理器ARM,并以S3C44B0X和μCOS-II搭建平台,阐述嵌入式系统开发平台的架构、系统工作原理及应用程序开发流程。  关键词:嵌入式系统;ARM;S3C44B0X;μCOS-II  中图分类号:TP31
期刊
摘要:当前,局域网内使用ARP欺骗的木马程序盗取用户帐号和密码,影响用户正常上网,甚至会造成交换机负载过大,网络缓慢,数据丢包和网络瘫痪。采用双向绑定和DAI技术可以有效解决问题。  关键词:ARP攻击;MAC;DAI  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)12-21586-02    ARP Attack and Protection on LAN    
期刊
摘要:JBPM工作流引擎和JBOSS 的服务器结合为开发企业级 (PDM)数据流引擎提供了更好的工具。jBPM采用了它自己定义的JBoss jBPM Process definition language (jPdl),将一个财务操作流程看作是一个UML状态图。jPdl详细定义了这个状态图的每个部分,如财务动作的发起、不同操作间的的转换,财务操作审批等。然后当jBpm运行时,使用简单强大的语言将在
期刊
摘要:文章介绍了基于东芯SEP3203主处理器的微型针式打印模块SAMSUNG SMP150一种新型设计方法。重点阐述了打印针头驱动电路和黑表检测电路 ,并在此硬件设计基础介绍了上用ARM7驱动的SAMSUNG SMP150打印时序和纸张定位软件方法。  关键词:微型针式打印头;东芯SEP3203;定位;驱动电路  中图分类号:TP368文献标识码:A 文章编号:1009-3044(2007)12
期刊
摘要:本文介绍了中间件Tuxedo的特点,并结合电信查询子系统具体设计和实现,采用B/S与 C/S三层体系结构相结合的方案,详细阐述了Tuxedo中间件在大型数据库应用系统中的开发原理和实例应用,体现了Tuxedo中间件的作用和优势。  关键词:中间件;Tuxedo;三层体系结构;查询子系统  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21613-02   
期刊
摘要:以机器学习为背景的知识发现技术是一门新兴的信息处理技术,而客户关系管理的经营理念是决定现代企业能否取得成功的关键因素,两者的结合则可以有效地提高企业的核心竞争力。本文较为详细地介绍了知识发现的概念、过程、方法及其在客户关系管理中的具体应用。  关键词:知识发现;数据挖掘;CRM  中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)12-21489-02    Kno
期刊
摘要:UML作为软件工程领域的标准建模语言得到了业界的广泛支持,并日渐成为系统分析中的一种标准建模语言。建模就是用图表从技术层次表达系统的各个方面功能。实时统一建模代表着雷达软件设计的一个发展方向,该文介绍了UML工具并使用了UML的用例图、活动图以及类图对雷达信号发分选系统的软件设计进行了分析建模,给出了雷达信号发分选系统的软件设计的用例模型、静态模型和动态模型。  关键词:UML;分析建模;雷
期刊