ArcGis Server開發Web GIS新手體驗(一)
(以下針對于windows操作系統.net開發環境)
ArcGIS Server是ESRI公司最新推出的服務器端品,主要可以實現兩大功能:
1、強大的Web GIS系統的開發;
2、分布式GIS系統的開發;
ArcGIS Server其內核與ArcGIS Desktop和ArcGIS Engine一樣,都是ArcObjects庫。其所謂的Web GIS,其實無非就是用Web技術來封裝ArcObjects而已;而分布式的開發則是通過DCOM來實現的。
小弟前幾個月搞了一下ArcIMS,發覺開發起來確實痛苦啊,整天就是折騰javascript+arcxml,郁悶死了,聽聞有ArcGIS Server這種好東西,稍稍了解一下,便向老板建議轉向ArcGIS Server,老板居然同意了。于是便開發學習了。網上四下里找了一下,發現可用的資源非常少,只好自己琢磨。從零開始真不容易啊,這不,剛上手就碰到了兩個問題,好在都已經解決,現在寫下來,希望對和我一樣的新手有所幫助。
ArcGIS Server的安裝非常簡單,先安裝ArcGIS Server,然后安裝DotNet ADF,最后用ArcCatelog添加一個Server,然后再添加一個ServerObject,這樣就可以進行開發了。這里的ServerObject與ArcIMS中的Service很像,其實應該是一個概念上的東西吧。添加一個ServerObject需要一個mxd或pmf文件,用來保存和管理需要發布的數據。
好了,現在可以開始開發了。
打開Visual Studio 2003,打開新建項目對話框,發現ESRI公司已經為我們準備好了一些ArcGIS Server Projects的模板,包括Map Viewer Web Application,Page Layout Web Applicaiton等等,我們就建一個Map Viewer Web Application吧,選中它,輸入項目名稱,然后點擊“確定”按鈕,我們發現一個已經包含了基本數據瀏覽和查詢功能的Web GIS程序已經建好了。
好,打開Default.aspx文件,發現網頁包含一個Map組件,一個Toolbar組件,一個TOC組件,一個OverviewMap組件等等。看來與C/S開發模式下很像嘛,爽啊。其中Map組件和OverviewMap組件有兩個必填屬性:Host和ServerObject,就分別對應著我們在ArcCatelog中添加的的Server和ServerObject,輸入它。然后設置TOC組件和Toolbar組件的Buddy屬性,OK,大功告成!
運行!咦,發生錯誤,定睛一看,原來是訪問拒絕,這是怎么回事呢?記得以前看到一篇文章,說在Asp.net中使用COM組件,經常由于權限原因,產生訪問拒絕,而ArcGIS Server本身就是對ArcObjects這些COM組件的再封裝,看來就是這么回事了。找出這篇文章來,原來要在Web.config中加入一行就可以了:
<identity impersonate="true" userName="Administrator" password="123456"/>
再運行,哇塞,酷斃了,一個漂亮的WebGIS展現在眼前。可以瀏覽,查詢,圖層管理,鷹眼導航,還有指北針...
(后來發現頁面上還一個組件叫impersonation沒用上,看了一下它的屬性,只有一個identity,點擊它,你會發現...呵呵,原來這個組件就是用來干這個事的,暈,又浪費了我兩個小時的寶貴時間...)
一行代碼都不用寫,爽。可是又很失落,心里沒有底,這個Web GIS究竟是怎樣實現的呢?
待續
浙公網安備 33010602011771號