ArcGIS Server .Net Web ADF体系结构
生活随笔
收集整理的這篇文章主要介紹了
ArcGIS Server .Net Web ADF体系结构
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
ArcGIS Server .Net Web ADF體系結(jié)構(gòu)
ArcGIS Server .net來創(chuàng)建應(yīng)用有三個(gè)層次,
1 使用manager來創(chuàng)建一個(gè)web應(yīng)用
2 使用 .net模板來創(chuàng)建應(yīng)用
3 使用adf來創(chuàng)建應(yīng)用
對(duì)于一個(gè)項(xiàng)目開發(fā)來說,需要采用第三中方式來進(jìn)行開發(fā)的,第一,第二中方式一般用于剛剛基礎(chǔ)arcgis server的同志學(xué)習(xí)使用或者是非常簡(jiǎn)單的應(yīng)用來使用的,使用adf來進(jìn)行開發(fā),弄清楚adf的體系結(jié)構(gòu)就顯的非常重要,否則就會(huì)象掉進(jìn)arcobjects的巨多的組件堆里的感覺是一樣的。在這個(gè)講座中會(huì)講到.Net ADF為我們提供了什么,我們?cè)撛?/font>ArcGIS Server.Net開發(fā)過程中怎么樣有序的去使用它們。
以前我們的adf稱為 Server adf,那是因?yàn)橹挥袉我坏臄?shù)據(jù)源,即ArcGIS Server。而現(xiàn)在的是Web Adf,是針對(duì)多數(shù)據(jù)源的,可以是ArcGIS Server, ArcGIS IMs等。
Adf為我們提供的是控件和api。控件是提供用戶界面,而common api和specific api的類來具體完成GIS的功能。
首先我們來看看控件,9.2 ADF的控件明顯比以前版本復(fù)雜一些,除了我們常見的map,pagelayout,toc等控件之外,還出現(xiàn)了一系列的resoucemanager控件。這些控件的出現(xiàn)都是為支持多數(shù)據(jù)源的這個(gè)目標(biāo)服務(wù)的,在解釋控件的同時(shí)還會(huì)涉及到adf中的其他一些概念,這些概念都是貫穿adf的始終的。
1 Resouces,ResouceManager,webcontrols, functionality的關(guān)系。
首先我們來解釋一下Resouces,ResouceManager,webcontrols, functionality的關(guān)系。
控件和數(shù)據(jù)源之間的關(guān)系是通過一系列的ResouceManager控件來維護(hù)的。ResouceManager決定哪些數(shù)據(jù)源是可以使用的Resouces,以及這些Resouces怎么樣被控件所使用。一旦一個(gè)數(shù)據(jù)源被ResouceManager管理之后,就被展現(xiàn)為Resouces。控件通過Resouces到達(dá)數(shù)據(jù)源。Resouces可以把數(shù)據(jù)源以多種形式展現(xiàn)出來,比如可以提供一幅地圖展現(xiàn)在map控件種,它也可以把數(shù)據(jù)源以圖層列表的方式展現(xiàn)在toc控件中,也就是說Resource擁有不能的能力,這些不同的能力我們成為不同的functionaligy。
從控件角度來講,不同的控件可以通過不同的方式來使用相同的數(shù)據(jù)源,比如一個(gè)Resouce可以為map控件提供一幅地圖,也可以為toc控件提供一套圖層的列表,這就Resouces的不同的functionality。
從數(shù)據(jù)源角度來講,不同的Resouces會(huì)通用的展現(xiàn)一些能力,也就是提供不同的functionality,比如展現(xiàn)地圖,查詢地圖等。
上面這些文字可能剛開始看起來比較費(fèi)勁,但是對(duì)于使用.net開發(fā)的人來說一定要弄清楚這些關(guān)系。
2 Common APIs和specific APIs的關(guān)系
上面講了Resouces可以展現(xiàn)為不同的能力,但是具體能夠展現(xiàn)為哪些能力還是要看數(shù)據(jù)源本身能夠提供什么樣的功能。但是有一些能力是所有數(shù)據(jù)源都能辦到的,也就是說Resouces可以展現(xiàn)出一些所有的數(shù)據(jù)源都可以提供的能力,比如提供地圖,比如查詢地圖,無論是arcgis server作為數(shù)據(jù)源,還是arcims作為數(shù)據(jù)源,這些都是基本的能力。因此adf就把實(shí)現(xiàn)這些基本的普通的功能所需要的類歸為Common APIs。而有些功能是有些數(shù)據(jù)源特有的,比如提供編輯功能,那是arcgis server特有的,arcims是無法提供的。這些就被稱為specific APIs。
Specific APIs包括arcims api, arcweb api, ogc\wms api, arcgis server soap api, arcgis server arcobjects api,注意其中的arcobjects api也被列為了specific api了,它是arcgis server數(shù)據(jù)源的specific APIs。
3 Common APIs的基本結(jié)構(gòu),adf中如何來使用這些common APIs?
我們?cè)陂_發(fā)過程中首先接觸到的就是ADF中提供的這些Common APIs,而且它的結(jié)構(gòu)比較明朗,不像Specific APIs那樣多樣。首先我們來看幾個(gè)基本接口,
IGISDataSouce――定義了數(shù)據(jù)源的連接
IGISResouce――定義了datasouce提供的信息類型等
IGISFunctionality――定義了resouce怎么被使用
這三個(gè)接口是不同的數(shù)據(jù)源可以展現(xiàn)一些基本功能的基本接口,也就是說不同的數(shù)據(jù)源要實(shí)現(xiàn)基本的功能必須實(shí)現(xiàn)這三個(gè)基本的類,才能在控件上展現(xiàn)出那些基本的能力。各種數(shù)據(jù)源都用相應(yīng)的類實(shí)現(xiàn)了這三個(gè)接口。
那首先來看一下這三個(gè)接口之間的關(guān)系,
一個(gè)GISDataSouce會(huì)包含一系列的GISResouces。GISDatasouce是一個(gè)比較大的概念,主要就包含了ArcGIS Server Local, ArcGIS Server internet ,ArcIms, WMS, ArcWeb這幾種。那就拿ArcGIS Server Local來說吧,它包含了MapResouce, GeocodeResouce, GeoprocessingResouce幾種。
一個(gè)GISResouce會(huì)包含一系列的GISFunctionality。Functionality定義了resouces怎么被使用。Functionality主要有兩種mapfunctionality,queryfunctionality。Mapfunctionality主要展現(xiàn)resouce的地圖能力,比如輸出地圖圖片,改變地圖范圍,設(shè)置地圖中圖層的可見性等。而queryfunctionality主要展現(xiàn)resouce的數(shù)據(jù)的空間和屬性查詢能力。
剛才說了不同的數(shù)據(jù)源都有相應(yīng)的類來實(shí)現(xiàn)上面的基本接口,那我們來看看arcgis server local這種數(shù)據(jù)源的相應(yīng)的實(shí)現(xiàn)類:
IGISDataSouce ――GISDataSouceLocal
IGISResouce ――MapResouceLocal, GeocodeResouceLocal
IGISFunctionality ――MapFunctionality QueryFunctionality
這就是web adf的優(yōu)勢(shì)所在,它可以使得各種不同的數(shù)據(jù)源都展現(xiàn)為resouce, 使得它們可以以相同的方式得到使用。對(duì)于控件而言,每個(gè)resouce就象一個(gè)圖層,而不管數(shù)據(jù)源是什么。
就舉一個(gè)地圖放大的功能,一個(gè)mapcontrol中有兩個(gè)datasouce,一個(gè)是arcgis server local,一個(gè)是arcims, 地圖的范圍重新設(shè)定了之后,控件都通過每個(gè)resouces提供的mapfunctionality給每個(gè)resouces重新設(shè)定范圍,每個(gè)resouces輸出這個(gè)新的地圖。而mapcontrol呢就負(fù)責(zé)把這些輸出圖片顯示在同一個(gè)界面上。對(duì)于控件而言,每個(gè)resouce就象一個(gè)圖層。從resouce可以到達(dá)datasouce本身。
ArcGIS Server .net來創(chuàng)建應(yīng)用有三個(gè)層次,
1 使用manager來創(chuàng)建一個(gè)web應(yīng)用
2 使用 .net模板來創(chuàng)建應(yīng)用
3 使用adf來創(chuàng)建應(yīng)用
對(duì)于一個(gè)項(xiàng)目開發(fā)來說,需要采用第三中方式來進(jìn)行開發(fā)的,第一,第二中方式一般用于剛剛基礎(chǔ)arcgis server的同志學(xué)習(xí)使用或者是非常簡(jiǎn)單的應(yīng)用來使用的,使用adf來進(jìn)行開發(fā),弄清楚adf的體系結(jié)構(gòu)就顯的非常重要,否則就會(huì)象掉進(jìn)arcobjects的巨多的組件堆里的感覺是一樣的。在這個(gè)講座中會(huì)講到.Net ADF為我們提供了什么,我們?cè)撛?/font>ArcGIS Server.Net開發(fā)過程中怎么樣有序的去使用它們。
以前我們的adf稱為 Server adf,那是因?yàn)橹挥袉我坏臄?shù)據(jù)源,即ArcGIS Server。而現(xiàn)在的是Web Adf,是針對(duì)多數(shù)據(jù)源的,可以是ArcGIS Server, ArcGIS IMs等。
Adf為我們提供的是控件和api。控件是提供用戶界面,而common api和specific api的類來具體完成GIS的功能。
首先我們來看看控件,9.2 ADF的控件明顯比以前版本復(fù)雜一些,除了我們常見的map,pagelayout,toc等控件之外,還出現(xiàn)了一系列的resoucemanager控件。這些控件的出現(xiàn)都是為支持多數(shù)據(jù)源的這個(gè)目標(biāo)服務(wù)的,在解釋控件的同時(shí)還會(huì)涉及到adf中的其他一些概念,這些概念都是貫穿adf的始終的。
1 Resouces,ResouceManager,webcontrols, functionality的關(guān)系。
首先我們來解釋一下Resouces,ResouceManager,webcontrols, functionality的關(guān)系。
控件和數(shù)據(jù)源之間的關(guān)系是通過一系列的ResouceManager控件來維護(hù)的。ResouceManager決定哪些數(shù)據(jù)源是可以使用的Resouces,以及這些Resouces怎么樣被控件所使用。一旦一個(gè)數(shù)據(jù)源被ResouceManager管理之后,就被展現(xiàn)為Resouces。控件通過Resouces到達(dá)數(shù)據(jù)源。Resouces可以把數(shù)據(jù)源以多種形式展現(xiàn)出來,比如可以提供一幅地圖展現(xiàn)在map控件種,它也可以把數(shù)據(jù)源以圖層列表的方式展現(xiàn)在toc控件中,也就是說Resource擁有不能的能力,這些不同的能力我們成為不同的functionaligy。
從控件角度來講,不同的控件可以通過不同的方式來使用相同的數(shù)據(jù)源,比如一個(gè)Resouce可以為map控件提供一幅地圖,也可以為toc控件提供一套圖層的列表,這就Resouces的不同的functionality。
從數(shù)據(jù)源角度來講,不同的Resouces會(huì)通用的展現(xiàn)一些能力,也就是提供不同的functionality,比如展現(xiàn)地圖,查詢地圖等。
上面這些文字可能剛開始看起來比較費(fèi)勁,但是對(duì)于使用.net開發(fā)的人來說一定要弄清楚這些關(guān)系。
2 Common APIs和specific APIs的關(guān)系
上面講了Resouces可以展現(xiàn)為不同的能力,但是具體能夠展現(xiàn)為哪些能力還是要看數(shù)據(jù)源本身能夠提供什么樣的功能。但是有一些能力是所有數(shù)據(jù)源都能辦到的,也就是說Resouces可以展現(xiàn)出一些所有的數(shù)據(jù)源都可以提供的能力,比如提供地圖,比如查詢地圖,無論是arcgis server作為數(shù)據(jù)源,還是arcims作為數(shù)據(jù)源,這些都是基本的能力。因此adf就把實(shí)現(xiàn)這些基本的普通的功能所需要的類歸為Common APIs。而有些功能是有些數(shù)據(jù)源特有的,比如提供編輯功能,那是arcgis server特有的,arcims是無法提供的。這些就被稱為specific APIs。
Specific APIs包括arcims api, arcweb api, ogc\wms api, arcgis server soap api, arcgis server arcobjects api,注意其中的arcobjects api也被列為了specific api了,它是arcgis server數(shù)據(jù)源的specific APIs。
3 Common APIs的基本結(jié)構(gòu),adf中如何來使用這些common APIs?
我們?cè)陂_發(fā)過程中首先接觸到的就是ADF中提供的這些Common APIs,而且它的結(jié)構(gòu)比較明朗,不像Specific APIs那樣多樣。首先我們來看幾個(gè)基本接口,
IGISDataSouce――定義了數(shù)據(jù)源的連接
IGISResouce――定義了datasouce提供的信息類型等
IGISFunctionality――定義了resouce怎么被使用
這三個(gè)接口是不同的數(shù)據(jù)源可以展現(xiàn)一些基本功能的基本接口,也就是說不同的數(shù)據(jù)源要實(shí)現(xiàn)基本的功能必須實(shí)現(xiàn)這三個(gè)基本的類,才能在控件上展現(xiàn)出那些基本的能力。各種數(shù)據(jù)源都用相應(yīng)的類實(shí)現(xiàn)了這三個(gè)接口。
那首先來看一下這三個(gè)接口之間的關(guān)系,
一個(gè)GISDataSouce會(huì)包含一系列的GISResouces。GISDatasouce是一個(gè)比較大的概念,主要就包含了ArcGIS Server Local, ArcGIS Server internet ,ArcIms, WMS, ArcWeb這幾種。那就拿ArcGIS Server Local來說吧,它包含了MapResouce, GeocodeResouce, GeoprocessingResouce幾種。
一個(gè)GISResouce會(huì)包含一系列的GISFunctionality。Functionality定義了resouces怎么被使用。Functionality主要有兩種mapfunctionality,queryfunctionality。Mapfunctionality主要展現(xiàn)resouce的地圖能力,比如輸出地圖圖片,改變地圖范圍,設(shè)置地圖中圖層的可見性等。而queryfunctionality主要展現(xiàn)resouce的數(shù)據(jù)的空間和屬性查詢能力。
剛才說了不同的數(shù)據(jù)源都有相應(yīng)的類來實(shí)現(xiàn)上面的基本接口,那我們來看看arcgis server local這種數(shù)據(jù)源的相應(yīng)的實(shí)現(xiàn)類:
IGISDataSouce ――GISDataSouceLocal
IGISResouce ――MapResouceLocal, GeocodeResouceLocal
IGISFunctionality ――MapFunctionality QueryFunctionality
這就是web adf的優(yōu)勢(shì)所在,它可以使得各種不同的數(shù)據(jù)源都展現(xiàn)為resouce, 使得它們可以以相同的方式得到使用。對(duì)于控件而言,每個(gè)resouce就象一個(gè)圖層,而不管數(shù)據(jù)源是什么。
就舉一個(gè)地圖放大的功能,一個(gè)mapcontrol中有兩個(gè)datasouce,一個(gè)是arcgis server local,一個(gè)是arcims, 地圖的范圍重新設(shè)定了之后,控件都通過每個(gè)resouces提供的mapfunctionality給每個(gè)resouces重新設(shè)定范圍,每個(gè)resouces輸出這個(gè)新的地圖。而mapcontrol呢就負(fù)責(zé)把這些輸出圖片顯示在同一個(gè)界面上。對(duì)于控件而言,每個(gè)resouce就象一個(gè)圖層。從resouce可以到達(dá)datasouce本身。
轉(zhuǎn)載于:https://www.cnblogs.com/zhmore/articles/1084439.html
總結(jié)
以上是生活随笔為你收集整理的ArcGIS Server .Net Web ADF体系结构的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 把Zend Studio 5.5改为简体
- 下一篇: [原创]微软拼音输入法2007(含64位