http://www.gissky.net- GIS空间站

我要投稿 投稿指南 RSS订阅 网站资讯通告:
搜索: 您现在的位置: GIS空间站 >> 技术专栏 >> ArcGIS >> ArcGIS Server >> 正文

从ArcIMS 到 ArcGIS Server Javascript API 开发

作者:cao461    文章来源:cao461    点击数:    更新时间:2009-9-10
摘要:不同之处在于ArcIMS 应用发送的是ArcXML 接收的是 ArcXML ,而ArcGIS server REST 应用发送的是GET (POST)请求 接收的是 JSON。在之前 我们就说过 ArcIMS之所以广受用户的好评,就是因为其架构优秀,逻辑清晰,开发方便,而ArcGIS server REST 也秉承了这个优点,其架构也是这种发送请求 接受结果的模式,不但结构清晰也利于开发者的开发调试。通过对其发送接受请求的分析能使我们更清楚地认识这点。


1、为什么是ArcGIS server REST

  下面的两幅图分别描述了ArcIMS ArcGIS server REST的是请求机制

  ArcIMS

                                    image001.png 



  ArcGIS server REST

image003.png




      从图中的我们可以清晰地看出,如果把黄色虚线内看成是黑箱的话,其两种服务采用完全一样的结构(Webservice) 不同之处在于ArcIMS 应用发送的是ArcXML 接收的是 ArcXML ,ArcGIS server REST 应用发送的是GET (POST)请求 接收的是 JSON。在之前 我们就说过 ArcIMS之所以广受用户的好评,就是因为其架构优秀,逻辑清晰,开发方便,而ArcGIS server REST 也秉承了这个优点,其架构也是这种发送请求 接受结果的模式,不但结构清晰也利于开发者的开发调试。通过对其发送接受请求的分析能使我们更清楚地认识这点。

应用向ArcIMS的发送请求   getFeatures)

image005.png




   上面一个就是在ArcIMS里发送的查询请求,请求是在cities图层中查询名称是San diego的地图要素。而下面的Axl就是ArcIMS接受到请求返回的查询结果。

image007.png



     从中我们可以看出San Diego地图要素的一些信息

     下面这个请求是应用向ArcGIS server REST的发送请求 getFeatures)

image009.png




       不同于向ArcIMS发送的ArcXML POST方式,这个请求是通过GET方式发送的字符串,从字符串的参数中我们可以看出,其是向地图服务为USA的第0图层 cities图层)发送一个请求,查询其 city_NAME=San Diego 的地图要素
       下面是ArcGIS server REST接受到请求后返回的查询结果。


image011.png




     从上面可以看出,ArcGIS server REST ArcIMS 是如此的相似,都是请求应答模式,而相对于ArcIMS AXL而言ArcGIS server RESTJSON更适于脚本语言的解析(xml在不同浏览器下解析方法有很大区别),而且相同内容JSONAXL更小,这个在大数据结果返回中是很重要的,不仅仅如此 ArcGIS server REST对于ArcIMS开发人员 而言还具有不需要额外学习AO知识 ,入门迅速,等诸多方面优势。

为什么是 JavaScript

   ArcIMS中使用最多的就是JavaScript开发(其次是java connector~),在很多项目中都是JavaScriptGIS 应用,DotNetjavaJ2EE 作业务逻辑,我相信大多数ArcIMS开发人员对JavaScript开发并不陌生。

JavaScript 的WebGIS 开发大致分为以下的三类:

1
、地图的展示, DIV IMG的抽换


2
信息的查询 发送AJAX请求


3
动态信息的地图展示

         对于marker  pop 就是DIV
         对于Graphic 就是 VML/SVG


   下面这个是利用JavaScriptArcIMS 请求地图的全过程,其中 urlArcIMS服务器servlet connector的地址,axl 为发送的getmap 请求。

image013.png





  其步骤:
       1、客户端JavaScript建立xmlhttprequest 通道,向ArcIMSservlet connector 发送axl请求(黑色JavaScript代码)
       2、ArcIMS 接受到请求生成图片
       3、通过刚才客户端发起建立的xmlhttprequest 通道,ArcIMS发送AXL给客户端,告知生成的地图图片的url
       4、客户端JavaScript解析收到的AXL,并告知页面html抽换DIV中的图片指向url(紫色代码)
       5、页面通过新的url地址取到ArcIMS刚才生成的地图图片,展示给客户。

         
   相对于ArcIMS而言 ArcGIS server REST地图请求更为简单,如下图

image015.png



  其步骤:
         1、利用JavaScript拼接请求的url串,传给html
         2、页面请求url
         3、ArcGIS server REST 接受这个URL 生成地图图片以流的方式传给页面
         4、页面展示地图图片给用户

      以上的Javascript代码没有用到任何API,其主要目的就是向大家说明,在有强大的服务端支持(ArcIMS/ArcGIS server REST)下利用JavaScript开发WebGIS 应用是一件多么惬意的事情。而且 不要忘了,我们还有封装大量要素的Javascript API !

      好,ArcIMS ArcGIS server 的对比介绍就到此为止,从下一章开始 我们就到真正的编码工作,使用ArcGIS server Javascript API开发。

Tags:ArcIMS  
责任编辑:gissky
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 中国地图