深入淺出 Javascript API的基本框架
Javascript API是ArcGIS Server 9.3新增的一套API框架,為創(chuàng)建WebGIS應(yīng)用提供了輕量級(jí)的解決方法,在客戶(hù)端利用ags所提供的服務(wù),就能實(shí)現(xiàn)地圖應(yīng)用和地理功能。
還記得ArcIMS Blueviewer示例框架,里面的所有操作都是基于客戶(hù)端實(shí)現(xiàn),放大縮小平移都是在javascript腳本中完成參數(shù)計(jì)算,將結(jié)果返回服務(wù)器得到我們所需的圖片,重寫(xiě)過(guò)Blueviewer的程序員能夠更好的把握webgis開(kāi)發(fā)中的基礎(chǔ)流程,并在此基礎(chǔ)上寫(xiě)出漂亮的webgis+ajax應(yīng)用,這種方法有點(diǎn)類(lèi)似于ags93的javascript api,只不過(guò)后者基于dojo庫(kù),并用面向?qū)ο蟮姆绞椒庋b了基礎(chǔ)功能。
理論上我們可以對(duì)Javascript API無(wú)限擴(kuò)展,以實(shí)現(xiàn)Ags所有服務(wù)器端功能,目前它所提供的基礎(chǔ)功能有:
1.以自己數(shù)據(jù)為基礎(chǔ)顯示交互性的地圖
2.執(zhí)行一個(gè)GIS模型并顯示結(jié)果
3.在ArcGIS在線基礎(chǔ)地圖上顯示我們自己的數(shù)據(jù)
4.對(duì)屬性或幾何圖形進(jìn)行搜索并顯示結(jié)果
5.搜索地址并顯示結(jié)果
Javascript API包含的資源組件有:
Maps--支持Ags上cache和非cache地圖的顯示,指定投影參考系
Graphics--繪圖,和通過(guò)鼠標(biāo)、鍵盤(pán)等操作實(shí)現(xiàn)屬性信息的展示或地理操作
Tasks--和ADF Tasks有點(diǎn)類(lèi)似,提供Querying、Finding addresses、Finding attributes、Identifying features、Geoprocessing功能
基于Dojo和其他庫(kù)進(jìn)行擴(kuò)展--比如利用Dojo widgets,google maps api,virtual earth api等等
Dojo不如EXT使用的廣泛,也存在一些爭(zhēng)議,但ESRI選擇dojo作為Javascript API基礎(chǔ)庫(kù)我覺(jué)得原因有如下幾點(diǎn):
1.Dojo寬松的使用許可
2.Dojo功能全面,事件設(shè)計(jì)模式、矢量圖形支持、顯示效果、widgets、Ajax、JSON等都是Ags客戶(hù)端開(kāi)發(fā)所需要的,并且Dojo利于擴(kuò)展,方便Mashup應(yīng)用
3.IBM、Sun、AOL等公司的支持
Dojo存在的效率問(wèn)題,但我運(yùn)行一些示例代碼時(shí)還沒(méi)有碰到,以后會(huì)特別關(guān)注,目前還沒(méi)有自己去擴(kuò)展widget,也暫時(shí)沒(méi)有碰到這方面的問(wèn)題,不管如何,客戶(hù)端應(yīng)用和Mashup是今后WebGIS的一個(gè)主流發(fā)展方向,ESRI開(kāi)發(fā)團(tuán)隊(duì)對(duì)待Dojo問(wèn)題應(yīng)該有過(guò)慎重考慮,不管是否GISer,在ESRI Ags采用Dojo作為Javascript API庫(kù)基礎(chǔ)核心后,都應(yīng)該對(duì)Dojo的發(fā)展更有信心。
【編輯推薦】