1、為什么是ArcGIS server REST
下面的兩幅圖分別描述了ArcIMS 和ArcGIS server REST的是請求機制
ArcIMS
ArcGIS server REST
從圖中的我們可以清晰地看出,如果把黃色虛線內(nèi)看成是黑箱的話,其兩種服務(wù)采用完全一樣的結(jié)構(gòu)(Webservice) 。 不同之處在于ArcIMS 應(yīng)用發(fā)送的是ArcXML 接收的是 ArcXML ,而ArcGIS server REST 應(yīng)用發(fā)送的是GET (POST)請求 接收的是 JSON。在之前 我們就說過 ArcIMS之所以廣受用戶的好評,就是因為其架構(gòu)優(yōu)秀,邏輯清晰,開發(fā)方便,而ArcGIS server REST 也秉承了這個優(yōu)點,其架構(gòu)也是這種發(fā)送請求 接受結(jié)果的模式,不但結(jié)構(gòu)清晰也利于開發(fā)者的開發(fā)調(diào)試。通過對其發(fā)送接受請求的分析能使我們更清楚地認識這點。
應(yīng)用向ArcIMS的發(fā)送請求 (getFeatures)
上面一個就是在ArcIMS里發(fā)送的查詢請求,請求是在cities圖層中查詢名稱是San diego的地圖要素。而下面的Axl就是ArcIMS接受到請求返回的查詢結(jié)果。
從中我們可以看出San Diego地圖要素的一些信息
下面這個請求是應(yīng)用向ArcGIS server REST的發(fā)送請求 (getFeatures)
不同于向ArcIMS發(fā)送的ArcXML 的POST方式,這個請求是通過GET方式發(fā)送的字符串,從字符串的參數(shù)中我們可以看出,其是向地圖服務(wù)為USA的第0圖層 (cities圖層)發(fā)送一個請求,查詢其 city_NAME=San Diego 的地圖要素
下面是ArcGIS server REST接受到請求后返回的查詢結(jié)果。
從上面可以看出,ArcGIS server REST 和ArcIMS 是如此的相似,都是請求應(yīng)答模式,而相對于ArcIMS 的 AXL而言ArcGIS server REST的JSON更適于腳本語言的解析(xml在不同瀏覽器下解析方法有很大區(qū)別),而且相同內(nèi)容JSON比AXL更小,這個在大數(shù)據(jù)結(jié)果返回中是很重要的,不僅僅如此 ArcGIS server REST對于ArcIMS開發(fā)人員 而言還具有不需要額外學(xué)習(xí)AO知識 ,入門迅速,等諸多方面優(yōu)勢。
為什么是 JavaScript ?
在ArcIMS中使用最多的就是JavaScript開發(fā)(其次是java connector~),在很多項目中都是JavaScript做GIS 應(yīng)用,DotNet或java(J2EE) 作業(yè)務(wù)邏輯,我相信大多數(shù)ArcIMS開發(fā)人員對JavaScript開發(fā)并不陌生。
JavaScript 的WebGIS 開發(fā)大致分為以下的三類:
1、地圖的展示, DIV 里 IMG的抽換
2、信息的查詢 發(fā)送AJAX請求
3、動態(tài)信息的地圖展示
對于marker pop 就是DIV
對于Graphic 就是 VML/SVG
下面這個是利用JavaScript向ArcIMS 請求地圖的全過程,其中 url為ArcIMS服務(wù)器servlet connector的地址,axl 為發(fā)送的getmap 請求。
其步驟:
1、客戶端JavaScript建立xmlhttprequest 通道,向ArcIMS的servlet connector 發(fā)送axl請求(黑色JavaScript代碼)
2、ArcIMS 接受到請求生成圖片
3、通過剛才客戶端發(fā)起建立的xmlhttprequest 通道,ArcIMS發(fā)送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,其主要目的就是向大家說明,在有強大的服務(wù)端支持(ArcIMS/ArcGIS server REST)下利用JavaScript開發(fā)WebGIS 應(yīng)用是一件多么愜意的事情。而且 不要忘了,我們還有封裝大量要素的Javascript API !
本篇文章來源于 GIS空間站 轉(zhuǎn)載請以鏈接形式注明出處 網(wǎng)址:http://www.gissky.net/Article/1701.htm