ArcGIS Server 開發(fā)系列(二)--Web ADF 編程
作者:Flyingis
本文嚴禁擅自轉載或用于商業(yè)目的,如有需要請事先聯(lián)系作者:dev.vip#gmail.com
Web ADF全名是Web Application Develope Framework,是ArcGIS Server專用的開發(fā)框架,9.2版本的ArcIMS也開始提供ADF的封裝。完全使用Web控件編程幾乎不能解決我們實際項目中的問題,因此我們從《ArcGIS Server 開發(fā)系列(一)--編程框架總覽》中提到的途徑二開始,即web controls + common datasource apis。
目標:
根據查詢語句實現圖層信息查詢
準備工作:
1.Windows XP sp2中/英文版
2.Visual Studio 2005中/英文版
3.ArcGIS Server 9.2(我打上了sp2補丁),創(chuàng)建一個ArcGIS Server服務,Map Server屬性中更改Pooling,使用池化連接方式,Progresses選擇“In a seperate process for each instance(high isolation)”,我的服務為“World”
4.利用vs2005創(chuàng)建一個模板server應用--Web Mapping Application,并更改MapResourceManager屬性
這樣我們可以測試程序看是否能夠正常運行,啟動調試看到如下結果:
代碼實現:
我們要完成的工作是對圖層屬性信息的查詢,首先在頁面左側添加一個新的panel,左側的Tasks、Results等都是放置在panel之中,在這個新的panel中分別添加TreeViewPlus、TextBox、Button三個控件,TextBox輸入查詢條件,Button確定查詢, TreeViewPlus顯示結果,在設計試圖中瀏覽效果如下:
雙擊“Query”Button,編寫點擊事件。




Query方法實現了對圖層屬性信息的查詢。




















































運行程序,text box中輸入“CNTRY_NAME LIKE 'A%'”,查詢結果:
這樣這個小程序就完成了,在server中實現了對圖層屬性信息的查詢,現在我們需要進行更多的考慮:
第一,考慮web控件、 functionality、datasource、resource、resourcemamager之間的關系,代碼中多次對它們的關系進行了描述,用文檔中的一幅圖可以概括整個框架,這篇文章對此進行了闡述--《ArcGIS Server .Net Web ADF體系結構》。
第二,程序中使用的mxd僅僅包含一個world圖層,因此對圖層進行遍歷的過程中只需獲得第一圖層的ID,如果指定圖層名,可以在lnames得到所需的圖層進行查詢。
第三,程序實現的查詢方式相當簡單,在text box中輸入原始的sql來完成where語句,只僅僅是一個測試,一般我們會屏蔽掉sql相關的關鍵字,提供多個text box或dropdownlist供用戶選擇進行字段查詢。
第四,如果查詢信息量不大,返回結果數量不多,完全可以考慮ajax來完成頁面請求,不論是速度還是用戶體驗都會得到提高。
第五,通過程序可以看到,查詢結果保存在一個datatable中,這極大的方便了server查詢和.net的無縫連接,直接將結果和TreeViewPlus綁定,換成其他的visual studio控件也沒問題。
只要整個框架思路清晰了,查詢功能的實現其實很簡單,這也是途徑2開發(fā)方式的一個例子,可以看出ArcGIS Server ADF給開發(fā)提供了很多便利,和ArcIMS相比開發(fā)難度相當,多看看文檔和ADF OMD圖可以讓我們對ArcGIS Server ADF開發(fā)有更多的了解,記住,這只是server開發(fā)的起步。
posted on 2007-08-14 13:55 Flyingis 閱讀(7158) 評論(10) 編輯 收藏 所屬分類: ArcGIS Server