資源描述:
《arcgis server 開發(fā)系列(二)--web adf 編程》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、ArcGISServer開發(fā)系列(二)--WebADF編程2007-08-1410:01byFlyingis,12454visits,??作者:Flyingis???WebADF全名是WebApplicationDevelopeFramework,是ArcGISServer專用的開發(fā)框架,9.2版本的ArcIMS也開始提供ADF的封裝。完全使用Web控件編程幾乎不能解決我們實(shí)際項(xiàng)目中的問題,因此我們從《ArcGISServer開發(fā)系列(一)--編程框架總覽》中提到的途徑二開始,即webcontrols+commondatas
2、ourceapis。???目標(biāo):???根據(jù)查詢語句實(shí)現(xiàn)圖層信息查詢???準(zhǔn)備工作:???1.WindowsXPsp2中/英文版???2.VisualStudio2005中/英文版???3.ArcGISServer9.2(我打上了sp2補(bǔ)?。?,創(chuàng)建一個(gè)ArcGISServer服務(wù),MapServer屬性中更改Pooling,使用池化連接方式,Progresses選擇“Inaseperateprocessforeachinstance(highisolation)”,我的服務(wù)為“World”???4.利用vs2005創(chuàng)建一個(gè)模板
3、server應(yīng)用--WebMappingApplication,并更改MapResourceManager屬性???這樣我們可以測(cè)試程序看是否能夠正常運(yùn)行,啟動(dòng)調(diào)試看到如下結(jié)果:???代碼實(shí)現(xiàn):???我們要完成的工作是對(duì)圖層屬性信息的查詢,首先在頁面左側(cè)添加一個(gè)新的panel,左側(cè)的Tasks、Results等都是放置在panel之中,在這個(gè)新的panel中分別添加TreeViewPlus、TextBox、Button三個(gè)控件,TextBox輸入查詢條件,Button確定查詢,TreeViewPlus顯示結(jié)果,在設(shè)計(jì)試圖中瀏
4、覽效果如下:???雙擊“Query”Button,編寫點(diǎn)擊事件。????protected?void?cmdQuery_Click(object?sender,?EventArgs?e)????{????????Query(Map1.Extent);????}???Query方法實(shí)現(xiàn)了對(duì)圖層屬性信息的查詢。???protected?void?Query(ESRI.ArcGIS.ADF.Web.Geometry.Geometry?geometry)????{????????IEnumerable?func_enum?=?nul
5、l;????????//獲取當(dāng)前map1控件中所有的functionality????????func_enum?=?Map1.GetFunctionalities();????????System.Data.DataTable?datatable;????????//對(duì)所有的functionality進(jìn)行遍歷????????foreach?(ESRI.ArcGIS.ADF.Web.DataSources.IGISFunctionality?gisfunctionality?in?func_enum)????????{???
6、?????????ESRI.ArcGIS.ADF.Web.DataSources.IGISResource?gisresource?=?null;????????????//得到該functionality的resource????????????gisresource?=?gisfunctionality.Resource;????????????//判斷該resource是否支持IQueryFunctionality??????????????bool?supported?=?false;????????????supp
7、orted?=?gisresource.SupportsFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality));????????????if?(supported)????????????{????????????????ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality?qfunc;????????????????qfunc?=?(ESRI.ArcGIS.ADF.Web.Data
8、Sources.IQueryFunctionality)gisresource.CreateFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality),?null);????????????????st