1、为什么是ArcGIS server REST
下面的两幅图分别描述了ArcIMS 和ArcGIS server REST的是请求机制
ArcIMS
ArcGIS server REST
从图中的我们可以清晰地看出,如果把黄色虚线内看成是黑箱的话,其两种服务采用完全一样的结构(Webservice) 。 不同之处在于ArcIMS 应用发送的是ArcXML 接收的是 ArcXML ,而ArcGIS server REST 应用发送的是GET (POST)请求 接收的是 JSON。在之前 我们就说过 ArcIMS之所以广受用户的好评,就是因为其架构优秀,逻辑清晰,开发方便,而ArcGIS server REST 也秉承了这个优点,其架构也是这种发送请求 接受结果的模式,不但结构清晰也利于开发者的开发调试。通过对其发送接受请求的分析能使我们更清楚地认识这点。
应用向ArcIMS的发送请求 (getFeatures)
上面一个就是在ArcIMS里发送的查询请求,请求是在cities图层中查询名称是San diego的地图要素。而下面的Axl就是ArcIMS接受到请求返回的查询结果。
从中我们可以看出San Diego地图要素的一些信息
下面这个请求是应用向ArcGIS server REST的发送请求 (getFeatures)
不同于向ArcIMS发送的ArcXML 的POST方式,这个请求是通过GET方式发送的字符串,从字符串的参数中我们可以看出,其是向地图服务为USA的第0图层 (cities图层)发送一个请求,查询其 city_NAME=San Diego 的地图要素
下面是ArcGIS server REST接受到请求后返回的查询结果。
从上面可以看出,ArcGIS server REST 和ArcIMS 是如此的相似,都是请求应答模式,而相对于ArcIMS 的 AXL而言ArcGIS server REST的JSON更适于脚本语言的解析(xml在不同浏览器下解析方法有很大区别),而且相同内容JSON比AXL更小,这个在大数据结果返回中是很重要的,不仅仅如此 ArcGIS server REST对于ArcIMS开发人员 而言还具有不需要额外学习AO知识 ,入门迅速,等诸多方面优势。
为什么是 JavaScript ?
在ArcIMS中使用最多的就是JavaScript开发(其次是java connector~),在很多项目中都是JavaScript做GIS 应用,DotNet或java(J2EE) 作业务逻辑,我相信大多数ArcIMS开发人员对JavaScript开发并不陌生。
JavaScript 的WebGIS 开发大致分为以下的三类:
1、地图的展示, DIV 里 IMG的抽换
2、信息的查询 发送AJAX请求
3、动态信息的地图展示
对于marker pop 就是DIV
对于Graphic 就是 VML/SVG
下面这个是利用JavaScript向ArcIMS 请求地图的全过程,其中 url为ArcIMS服务器servlet connector的地址,axl 为发送的getmap 请求。
其步骤:
1、客户端JavaScript建立xmlhttprequest 通道,向ArcIMS的servlet connector 发送axl请求(黑色JavaScript代码)
2、ArcIMS 接受到请求生成图片
3、通过刚才客户端发起建立的xmlhttprequest 通道,ArcIMS发送AXL给客户端,告知生成的地图图片的url
4、客户端JavaScript解析收到的AXL,并告知页面html抽换DIV中的图片指向url(紫色代码)
5、页面通过新的url地址取到ArcIMS刚才生成的地图图片,展示给客户。
相对于ArcIMS而言 ArcGIS server REST地图请求更为简单,如下图
其步骤:
1、利用JavaScript拼接请求的url串,传给html
2、页面请求url
3、ArcGIS server REST 接受这个URL 生成地图图片以流的方式传给页面
4、页面展示地图图片给用户
二
以上的Javascript代码没有用到任何API,其主要目的就是向大家说明,在有强大的服务端支持(ArcIMS/ArcGIS server REST)下利用JavaScript开发WebGIS 应用是一件多么惬意的事情。而且 不要忘了,我们还有封装大量要素的Javascript API !
本篇文章来源于 GIS空间站 转载请以链接形式注明出处 网址:http://www.gissky.net/Article/1701.htm