第七章 ArcGIS Server開(kāi)發(fā)基礎(chǔ)_第1頁(yè)
第七章 ArcGIS Server開(kāi)發(fā)基礎(chǔ)_第2頁(yè)
第七章 ArcGIS Server開(kāi)發(fā)基礎(chǔ)_第3頁(yè)
第七章 ArcGIS Server開(kāi)發(fā)基礎(chǔ)_第4頁(yè)
第七章 ArcGIS Server開(kāi)發(fā)基礎(chǔ)_第5頁(yè)
已閱讀5頁(yè),還剩186頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第七章ArcGISServer開(kāi)發(fā)基礎(chǔ)一、ASP.NET簡(jiǎn)介Web開(kāi)發(fā)技術(shù)

第一代Web應(yīng)用程序比較難于開(kāi)發(fā)和管理,在性能和可擴(kuò)展性方面表現(xiàn)得差強(qiáng)??傮w來(lái)講,早起的Web開(kāi)發(fā)技術(shù)分為以下兩種:

CommandGatewayInterface,俗稱(chēng)CGI,由服務(wù)器調(diào)用獨(dú)立的應(yīng)用程序。其缺點(diǎn)是占用大量的服務(wù)器資源。腳本程序:由瀏覽器解析,最終以HTML呈現(xiàn)在用戶面前。缺點(diǎn)是:瀏覽器不但要解析腳本,還要執(zhí)行嵌入式代碼。與已經(jīng)編譯的程序相比,運(yùn)行效率不高。

ASP.NET提供一個(gè)更加現(xiàn)代的Web開(kāi)發(fā)環(huán)境,但以前構(gòu)建Web應(yīng)用程序的傳統(tǒng)觀念在ASP.NET還能適用。每個(gè)Web應(yīng)用程序都由網(wǎng)頁(yè)組成,仍然可以使用JavaScript和HTML。但ASP.NET與傳統(tǒng)的ASP、JSP和PHP等腳本語(yǔ)言是有很多不同的。主要區(qū)別是:

ASP.NET是面向?qū)ο蟮拈_(kāi)發(fā)方法,是基于事件和控件的架構(gòu),可以進(jìn)行代碼封裝和復(fù)用。

ASP.NET支持多種開(kāi)發(fā)語(yǔ)言,如C#、Basic、J#等;

ASP.NET的性能高,不必每次都編譯其頁(yè)面和組件,而是根據(jù)需要才進(jìn)行編譯。

ASP.NET特點(diǎn)(1)ASP.NET需要與.NETFramework集成應(yīng)用。

.NETFramework是由各個(gè)功能模塊集合在一起的,它將各種各樣的類(lèi)按照順序劃分到對(duì)應(yīng)的命名空間。這些類(lèi)的使用與.NET的其他開(kāi)發(fā)方式(獨(dú)立的Windows應(yīng)用程序)是相同的。(2)ASP.NET是編譯執(zhí)行不是解釋執(zhí)行。傳統(tǒng)ASP程序性能不高的一個(gè)原因是瀏覽器都是通過(guò)解釋腳本代碼來(lái)執(zhí)行的,當(dāng)用戶瀏覽網(wǎng)頁(yè)時(shí),位于Web服務(wù)器上的腳本語(yǔ)言需要逐行解釋腳本代碼并翻譯為機(jī)器代碼,這個(gè)過(guò)程比較耗時(shí)間,影響了應(yīng)用程序的執(zhí)行效率。(3)ASP.NET支持多種開(kāi)發(fā)語(yǔ)言不論采用C#還是VB.NET,或者其他的開(kāi)發(fā)語(yǔ)言,最終應(yīng)用程序都會(huì)被編譯成中間語(yǔ)言,最終會(huì)編譯轉(zhuǎn)化為相同的本機(jī)的機(jī)器代碼。(4)ASP.NET應(yīng)用程序運(yùn)行在公共運(yùn)行語(yǔ)言運(yùn)行庫(kù)(CLR)內(nèi)。自動(dòng)管理內(nèi)存和垃圾回收;類(lèi)型安全;結(jié)構(gòu)化的錯(cuò)誤處理;多線程。(5)ASP.NET是面向?qū)ο蟮摹F渥詈玫睦泳褪欠?wù)器控件,這些控件都是封裝好的對(duì)象,開(kāi)發(fā)人員可以通過(guò)編程來(lái)操作這些控件。

控件在頁(yè)面生成后,自動(dòng)生成HTML腳本代碼,開(kāi)發(fā)人員可以不去理會(huì)這些底層的HTML代碼,只需要控制這些控件對(duì)象就可以了。(6)ASP.NET與設(shè)備和瀏覽器無(wú)關(guān)。開(kāi)發(fā)人員不必去關(guān)心客戶瀏覽器,因?yàn)锳SP.NET控件會(huì)自動(dòng)根據(jù)客戶瀏覽器的情況來(lái)生成相應(yīng)的HTML代碼來(lái)適應(yīng)客戶瀏覽器。(7)ASP.NET發(fā)布和配置容易。.NETFramework提供了相同的核心類(lèi)庫(kù),ASP.NET應(yīng)用程序發(fā)布的時(shí)候,只需要將相應(yīng)的文件復(fù)制到虛擬目錄下,當(dāng)配置用戶安全時(shí),只需要編輯web.config文件即可,非常方便。Default.aspx頁(yè)面是主頁(yè)面,包含了地圖及其相關(guān)聯(lián)的控件與內(nèi)容。ErrorPage.aspx是錯(cuò)誤頁(yè)面,當(dāng)應(yīng)用程序遇到未處理的錯(cuò)誤程序時(shí)顯示該頁(yè)面。ApplicationClosed.aspx頁(yè)面是當(dāng)用戶單擊關(guān)閉鏈接(只有使用非池化ArcGIS服務(wù)器數(shù)據(jù)源時(shí)才會(huì)顯示)時(shí)顯示的頁(yè)面。這樣可允許程序釋放在GIS服務(wù)器上使用的資源;Measure.aspx是一自定義用戶控件,該控件在Default.aspx中使用,用于在地圖上測(cè)量距離與面積;Web.config是一標(biāo)準(zhǔn)的ASP.NET配置文件,里面存儲(chǔ)了.NET配置信息,以及當(dāng)使用ArcGISServerLocal數(shù)據(jù)源時(shí)的身份信息;Web.sitemap是ASP.NET2.0站點(diǎn)地圖配置文件。Default.aspx中的SiteMapDataSource控件使用該文件在Menu控件中顯示其中的鏈接;ReadMe.txt中包含了在VisualStudio中配置Web應(yīng)用程序的簡(jiǎn)單描述;App_Code是一標(biāo)準(zhǔn)的ASP.NET文件夾,用于存放代碼,其中包含了MapIdentify.cs文件,該文件用于點(diǎn)查詢(xún)工具。App_Data和App-Themes也是標(biāo)準(zhǔn)的ASP.NET文件夾。App-Data用于存放應(yīng)用程序的數(shù)據(jù),通常是SQLServerExpress數(shù)據(jù)庫(kù)。App_Themes用于存放不同主題的文件,包括樣式表單、皮膚文件以及圖片。Help文件夾中包含了幫助文件。Images文件夾包含了程序使用的圖片。JavaScript文件夾包含了程序使用的Javascript庫(kù)文件二、ArcGISServer開(kāi)發(fā)模式ArcGISServer有兩種開(kāi)發(fā)模式:定制基于模板開(kāi)發(fā)和自定義開(kāi)發(fā)。(1)基于模板開(kāi)發(fā)在新建網(wǎng)站對(duì)話框中選擇WebMappingApplication,則進(jìn)行基于模板開(kāi)發(fā)。

當(dāng)使用模板創(chuàng)建Web應(yīng)用后,第一個(gè)要設(shè)置的就是MapResourceManager控件的ResourceItems屬性。

從MapResourceManager控件的名稱(chēng)就可以看出該控件是用于管理地圖資源的,頁(yè)面中地圖控件的顯示內(nèi)容由該控件管理。

首先切換到Default.aspx頁(yè)面的設(shè)計(jì)視圖,選擇MapResourceManager控件,然后再屬性頁(yè)面中點(diǎn)擊ResourceItems右面的省略號(hào),打開(kāi)地圖資源項(xiàng)集合編輯器。在地圖資源項(xiàng)集合編輯器中,默認(rèn)時(shí)其內(nèi)容為空。選擇Add按鈕增加一MapResourceItem對(duì)象。該對(duì)象中包含了幾個(gè)屬性,這些屬性用于控制該地圖資源的數(shù)據(jù)源如何被應(yīng)用程序中的地圖、圖層控制等其他控件應(yīng)用。其中Name屬性用于在應(yīng)用程序中唯一標(biāo)識(shí)該資源。該名稱(chēng)作為地圖服務(wù)顯示在圖層控制控件中。默認(rèn)名稱(chēng)一般是MapResourceItem加序號(hào),一般建議修改為地圖服務(wù)名稱(chēng)。單擊Appearance屬性組下的DisplaySettings右側(cè)的省略號(hào),可打開(kāi)“地圖資源顯示設(shè)置編輯器”,該編輯器用于定義地圖資源生成圖片的內(nèi)容。

透明顏色與背景共同決定了地圖圖片的透明繪制。融合屬性定義該地圖圖片相對(duì)于其他資源地圖圖片的可見(jiàn)性。

當(dāng)?shù)貓D中同時(shí)顯示幾個(gè)地圖資源中的地圖時(shí),每個(gè)地圖資源所生成的圖片需要融合為一張圖片。在資源列表中最下面的地圖資源最先繪制,然后是上面的地圖資源繪制。透明值(Transparecy)用于定義該地圖資源所生成的圖片的透明程度。0%表示圖片不透明,100%表示完全透明,也就是不可見(jiàn);介于這兩者之間的值表示可顯示位于該地圖下面的其他地圖資源的內(nèi)容。當(dāng)圖片部分透明時(shí),融合所有地圖資源的圖片就會(huì)花費(fèi)更長(zhǎng)時(shí)間。圖片格式(ImageFormat)確定了數(shù)據(jù)源生成的圖片的格式??梢?jiàn)選項(xiàng)(Visible)確定是否生成地圖圖片。在圖層控制中顯示選項(xiàng)(Display)允許隱藏資源。該資源在地圖或鷹眼控件中仍可顯示,也還被SearchAttributesTask等其他控件利用。在地圖資源項(xiàng)集合編輯器中,Definition屬性提供了一系列對(duì)話框來(lái)鏈接數(shù)據(jù)源提供者(例如GIS服務(wù)器)與創(chuàng)建地圖資源。單擊Definition右側(cè)的省略號(hào)按鈕,打開(kāi)資源定義編輯器,在該編輯器中,首先要確定數(shù)據(jù)源的類(lèi)型,不同類(lèi)型需要不同的設(shè)置。

最常用的是ArcGISServerLocal類(lèi)型。點(diǎn)擊DataSource右側(cè)的…按鈕,則出現(xiàn)數(shù)據(jù)源編輯器對(duì)話框,在這個(gè)對(duì)話框中,Connection

Host是連接當(dāng)前的服務(wù)器的名字,如連其他的,則點(diǎn)擊AdditionalGISServer。點(diǎn)擊Resource右側(cè)的…按鈕,則出現(xiàn)數(shù)據(jù)源編輯器對(duì)話框,在這個(gè)對(duì)話框中,列出了所有的地圖服務(wù)。(2)自定義開(kāi)發(fā)在新建網(wǎng)站對(duì)話框中選擇ASP.NETWebSite,則進(jìn)行自定義開(kāi)發(fā)。使用Web控件創(chuàng)建三、關(guān)于WebGIS應(yīng)用程序框架Web應(yīng)用程序框架(WebADF)是ESRI為了簡(jiǎn)化在Web上提供如地圖瀏覽這樣的GIS服務(wù)而實(shí)現(xiàn)的一個(gè)開(kāi)發(fā)框架。(一)Web應(yīng)用程序框架體系結(jié)構(gòu)WebADF與其他的相關(guān)組件的關(guān)系如圖所示。WebApplicationDeveloperFramework(ADF)FortheMicrosoft.NETFrameworkMicrosoft.NETFrameworkArcGISServerArcGISServerWebServiceArcObjectsArcIMS從圖中可看到,WebADF是建立在Microsoft.NET框架之上的一些新的類(lèi),這些新的類(lèi)擴(kuò)展了.NET框架類(lèi)庫(kù),提供了一系列自定義Web控件以及支持本地與遠(yuǎn)程訪問(wèn)的數(shù)據(jù)源。

以前版本的ADF稱(chēng)為ArcGISServerADF,那是因?yàn)樗恢С謫我坏臄?shù)據(jù)源,即基于ArcObjects的ArcGISServer。

而現(xiàn)在的WebADF在兩個(gè)方面進(jìn)行了擴(kuò)展。一個(gè)是當(dāng)前的ADF支持多個(gè)數(shù)據(jù)源,包括ArcGISServer與ArcIMS等。另一個(gè)是該數(shù)據(jù)源架構(gòu)允許在同一應(yīng)用程序中同時(shí)集成于訪問(wèn)來(lái)自不同來(lái)源的數(shù)據(jù)。1、Web控件、資源管理器、資源與功能之間的關(guān)系

Web控件是如何與數(shù)據(jù)源連接的呢?WebControlsWebControlsWebControlsResourceManagersResourcesDataSourcesFunctionalitiesDataSourceSpecificAPIS

控件和數(shù)據(jù)源之間的關(guān)系是通過(guò)一系列的資源管理器(ResourceManager)控件來(lái)維護(hù)的。資源管理器決定哪些數(shù)據(jù)源是可以使用的資源(Resource),以及這些資源怎么被控制所使用。一旦一個(gè)數(shù)據(jù)源被資源管理器管理之后,就被展現(xiàn)為資源??丶ㄟ^(guò)資源到達(dá)數(shù)據(jù)源。資源可以吧數(shù)據(jù)源以多種形式展現(xiàn)出來(lái),比如可以提供一幅地圖展現(xiàn)在地圖控件中,它也可以把數(shù)據(jù)源以圖層列表的方式展現(xiàn)在內(nèi)容目錄控件中,也就是說(shuō)資源擁有不同的能力,這些不同的能力我們稱(chēng)為不同的“功能”(Functionality)。功能定義了資源怎么被使用。

從控件角度來(lái)講,不同的控件可以通過(guò)不同的方式來(lái)使用相同的數(shù)據(jù)源,比如一個(gè)資源可以為地圖控件提供一幅地圖,也可以為內(nèi)容目錄控件提供一套圖層的列表,這就是資源的不同功能;

從數(shù)據(jù)源角度來(lái)講,不同的資源會(huì)通用的展現(xiàn)一些能力,也就是提供不同的功能,比如展現(xiàn)地圖,查詢(xún)地圖等。2、公有API與特有API的關(guān)系資源可以展現(xiàn)為不同的能力,但是具體能夠展現(xiàn)為哪些能力還是要看數(shù)據(jù)源本身能夠提供什么樣的功能。有一些功能是所有數(shù)據(jù)源都能辦到的,也就是說(shuō)資源可以展現(xiàn)出一些所有的數(shù)據(jù)源都可以提供的能力,比如提供地圖,比如查詢(xún)地圖,無(wú)論是ArcGISServer作為數(shù)據(jù)源,還是ArcIMS作為數(shù)據(jù)源,這些都是基本的能力。因此WebADF就把實(shí)現(xiàn)這些基本的普通的功能都需要的類(lèi)歸為公有API(CommonAPI)。而有些功能是有些數(shù)據(jù)源特有的,比如提供編輯功能,那是ArcGISServer特有的,ArcIMS無(wú)法提供。這些就被稱(chēng)為特有API(SpecificAPI)。CommonFunctionalityArcIMSAPIArcWebAPIOGC\WMSAPICustomAPIArcGISServerArcObjectAPIArcGISServerSOAPAPI使用不同的API訪問(wèn)不同數(shù)據(jù)源3、共有API的基本結(jié)構(gòu)WebADF的多源架構(gòu)的基礎(chǔ)是共有API,它是一包含類(lèi)與接口的抽象框架。不同的數(shù)據(jù)源可通過(guò)實(shí)現(xiàn)公有API來(lái)作為插入到WebADF中。主要包括三個(gè)接口:IGISDataSource:定義了數(shù)據(jù)源的連接。IGISResource:定義了數(shù)據(jù)源提供的信息類(lèi)型等;IGISFunctionality:定義了資源怎么被使用。這三個(gè)接口是不同的數(shù)據(jù)源可以展現(xiàn)一些基本功能的接口,也就是說(shuō)不同的數(shù)據(jù)源要實(shí)現(xiàn)基本的功能必須實(shí)現(xiàn)這三個(gè)基本的類(lèi),才能在控件上展現(xiàn)出那些基本的能力。各種數(shù)據(jù)源都用相應(yīng)的類(lèi)實(shí)現(xiàn)了這三個(gè)接口。一個(gè)數(shù)據(jù)源(GISDatasource)會(huì)包含一系列的資源(GISResource)。以ArcGISServerLocal而言,它包含了MapResource、GeocodeResource、GeoprocessingResource等幾種資源。一個(gè)資源又會(huì)包含一系列的功能(GISFunctionality)。功能主要有兩類(lèi):MapFunctionality與QueryFunctionality。

前者主要展現(xiàn)資源的地圖能力,比如輸出地圖圖片,改變地圖范圍,設(shè)置地圖中圖層的可見(jiàn)性等;

后者主要展現(xiàn)資源的數(shù)據(jù)的空間和屬性查詢(xún)能力。4、WebADF中如何使用公有API?

不同的數(shù)據(jù)源都有相應(yīng)的類(lèi)來(lái)實(shí)現(xiàn)上面的基本接口,ArcGISServerLocal數(shù)據(jù)源的相應(yīng)實(shí)現(xiàn)的類(lèi):IGISDataSource:GISDataSourceLocalIGISResource:MapResourceLocal、GeocodeResourceLocalIGISFunctionality:MapFunctionality、QueryFunctionality

這就是WebADF的優(yōu)勢(shì)所在,它可以使得各種不同的數(shù)據(jù)源都展現(xiàn)為資源,使得它們可以以相同的方式得到使用。對(duì)于控件而言,每個(gè)資源就像一個(gè)圖層,不管數(shù)據(jù)源是什么。

就舉一個(gè)地圖放大的功能,一個(gè)地圖控件中有兩個(gè)數(shù)據(jù)源,一個(gè)是ArcGISServerLocal,一個(gè)是ArcIMS,地圖的范圍重新設(shè)定了之后,控件都通過(guò)每個(gè)資源提供的MapFunctionality給每個(gè)資源重新設(shè)定范圍,每個(gè)資源輸出這個(gè)新的地圖。而地圖控件負(fù)責(zé)把這些輸出圖片顯示在同一個(gè)界面上。DataSourcesMapFunctionalityMapMapResourceManagerMapFunctionalityMapResourceMapResourceDrawExtentDrawExtent四、ArcGISServer控件介紹為了方便用戶進(jìn)行自己特定的GIS應(yīng)用開(kāi)發(fā),ArcGISServer把通用的GIS功能進(jìn)行了封裝,提供了大量的控件。(一)資源管理控件

資源管理控件主要管理本應(yīng)用的一些服務(wù):地圖服務(wù)、地理處理服務(wù)和地理編碼服務(wù)。主要包括MapResourceManager、GeoprocessingResourceManager和GeocodeResourceManager等控件。1、MapResourceManager控件MapResourceManager地圖資源管理控件通常是在ArcGISServerWebADF應(yīng)用時(shí)第一個(gè)使用的控件,也是最重要的控件之一。

在軟件設(shè)計(jì)的時(shí)候開(kāi)發(fā)人員可以在網(wǎng)頁(yè)上添加、刪除MapResourceManager控件,也可以設(shè)置MapResourceManager的屬性。MapResourceManager控件可以同時(shí)管理多資源,并且可以設(shè)置圖層的順序以及圖像輸出的透明度。

很多控件可以使用同一個(gè)地圖資源管理控件去訪問(wèn)不同的資源。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.MapResourceManagerJavaScriptlibrariesdisplay_common.js,display_dotnetadf.jsName:惟一標(biāo)識(shí)地圖資源的名字,該名字會(huì)出現(xiàn)在控件Toc中。開(kāi)發(fā)人員可以根據(jù)自己的喜好來(lái)命名其名稱(chēng)。但在同一個(gè)MapResourceManager中其必須是惟一的。地圖顯示設(shè)置對(duì)話框

TransparencySettings:設(shè)置透明度。Transparency值0為不透明;100則為完全透明。RequestMIMEData:數(shù)據(jù)源中的地圖圖片訪問(wèn)方式。如果數(shù)據(jù)源支持通過(guò)MIME格式發(fā)送地圖圖片,那么就可以存儲(chǔ)在WebADF應(yīng)用程序的內(nèi)存中;反之,數(shù)據(jù)源只能在共享的輸出目錄下生成圖片供WebADF應(yīng)用程序訪問(wèn)。ImageFormat:生成圖片的格式,需要在圖片質(zhì)量與網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量間進(jìn)行平衡。Visible:決定圖片是否生成。如果Visible是True的話,應(yīng)用程序運(yùn)行時(shí)生成該地圖圖片,在Toc控件中該地圖資源是checked,反之則不生成。DisplayintheTable

ofContents:地圖資源是否在Toc控件中出現(xiàn)。DynamicTiling:動(dòng)態(tài)生成瓦片。LayerDefinition:層的定義,可以對(duì)層的屬性進(jìn)行設(shè)置,如高亮顯示的符號(hào),字段的別名等。Definition:定義連接的方式??臻g數(shù)據(jù)源的連接方式有ArcGISServerInternet、ArcGISServerLocal、ArcIMS、ArcWebServices、GraphicsLayer、OGC(WMS)Services等。

ArcGISServerInternet:表示W(wǎng)eb應(yīng)用服務(wù)器與空間數(shù)據(jù)服務(wù)可以使局域網(wǎng)也可以位于廣域網(wǎng),該連接方式空間數(shù)據(jù)服務(wù)以WebService的方式提供。定義數(shù)據(jù)源輸入一個(gè)URL地址即可。ArcGISServerLocal:表示空間數(shù)據(jù)服務(wù)與Web應(yīng)用服務(wù)器處于同一局域網(wǎng)內(nèi),這種連接方式使用簡(jiǎn)單。在“DataSource”文本框內(nèi)輸入GISServer的名字,并在“Resource”列表框選擇好空間數(shù)據(jù)的數(shù)據(jù)源。使用這種連接方式時(shí),一般需要添加“ArcGISIdentify”。GraphicsLayer也是常用的一種連接方式,通常用于對(duì)特殊的圖層或元素進(jìn)行渲染,如選中的高亮顯示。它一般存儲(chǔ)在WebADF應(yīng)用程序的內(nèi)存中,在應(yīng)用程序設(shè)計(jì)的時(shí)候是不可見(jiàn)的,需要開(kāi)發(fā)人員編寫(xiě)代碼來(lái)控制其表現(xiàn)形式。2、GeoprocessingResourceManager控件GeoprocessingResourceManager是管理控件數(shù)據(jù)處理服務(wù)的資源管理器??臻g數(shù)據(jù)處理服務(wù)一般是由ArcToolbox中的ModelBuilder工具建立好空間數(shù)據(jù)的處理模型,并把空間數(shù)據(jù)處理模型發(fā)布成空間數(shù)據(jù)處理服務(wù),GeoprocessingResourceManager控件就可以設(shè)置WebADF應(yīng)用程序訪問(wèn)的空間數(shù)據(jù)處理服務(wù)了。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.GeoprocessingResourceManagerJavaScriptlibrariesdisplay_common.js,display_dotnetadf.jsName:空間資源處理的名字,開(kāi)發(fā)人員根據(jù)實(shí)際情況來(lái)命名;Definition:定義空間數(shù)據(jù)資源的連接。與MapResourceManager不同的是,空間處理服務(wù)的連接方式只有ArcGISServerInternet和ArcGISServerLocal兩種方式,其配置與MapResourceManager的配置方式相似。3、GeocodeResourceManager控件GeocodeResourceManager是地理編碼資源管理控件,開(kāi)發(fā)人員在開(kāi)發(fā)WebADF應(yīng)用程序的時(shí)候可以在網(wǎng)頁(yè)上添加、刪除、修改地理編碼控件的屬性。FindAddressTask就是利用GeocodeResourceManager提供的地理編碼資源服務(wù)的控件。另外,開(kāi)發(fā)人員在開(kāi)發(fā)應(yīng)用程序的時(shí)候可以利用通用API:IGeocodeResource和IGeocodeFunctionality接口來(lái)訪問(wèn)地理編碼服務(wù)。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.MapJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_map.js,isplay_vector.jsMinCandidateScore:是介于0-100的整數(shù),地理編碼服務(wù)查找返回結(jié)果的個(gè)數(shù)。默認(rèn)值為10;MinMatchScore:是介于0-100的整數(shù),根據(jù)地址匹配最小的相似程度。一般認(rèn)為相似程度在80-99的匹配時(shí)一個(gè)好的地址匹配。ShowAllCandiates:當(dāng)其值為T(mén)rue時(shí),顯示所有的返回結(jié)果;反之顯示匹配程度大于MinMatchScore的結(jié)果,默認(rèn)是False。Name:地理編碼服務(wù)的名字,開(kāi)發(fā)人員根據(jù)實(shí)際情況來(lái)命名。Definition:定義連接地理編碼服務(wù)的方式。其連接方式有:ArcGISServerInternet、ArcGISServerLocal、ArcIMS、ArcWebServices等方式,其配置與MapResourceManager中的相似。(二)地圖顯示及其相關(guān)控件1、Map控件Map是用來(lái)顯示一個(gè)或多個(gè)不同類(lèi)型數(shù)據(jù)資源的地圖圖形控件。Map控件必須與MapResourceManager控件關(guān)聯(lián)并用來(lái)顯示MapResourceManager中定義的地圖資源。Map控件可以把多個(gè)不同類(lèi)型的地圖服務(wù)融合為一個(gè)地圖,并且有異步刷新功能,如在放大、漫游地圖時(shí)不用刷新整個(gè)頁(yè)面就可以實(shí)現(xiàn)地圖圖片的更新。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.MapJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_map.js,isplay_vector.js2、MapTips控件MapTips可以顯示與之相關(guān)聯(lián)的Map控件圖層中鼠標(biāo)光標(biāo)停留位置元素的屬性。MapTips控件通過(guò)Map屬性與單個(gè)的Map控件關(guān)聯(lián),通過(guò)Layer屬性設(shè)定顯示哪個(gè)圖層的元素的屬性,并且可以設(shè)定屬性的顯示樣式。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.MapTipsJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_mapTips.js,Layer和Map兩個(gè)屬性。Layer配置MapTips要顯示的圖層。3、Magnifier控件Magnifier控件就是放大鏡,它允許用戶放大某一小塊的位置。用戶拖動(dòng)Magnifier窗口,Magnifier就放大該窗口所對(duì)應(yīng)的Map控件上的地圖,同時(shí)還可以設(shè)置放大的倍數(shù)。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.Magnifier

設(shè)置Map、MapResourceManager、MagnifierResouce(待放大圖層)的屬性4、OverviewMap控件OverviewMap縮略圖也稱(chēng)鷹眼,把當(dāng)前的地圖范圍畫(huà)在一個(gè)小的矩形范圍內(nèi),當(dāng)主地圖的范圍發(fā)生改變時(shí),縮略圖不需要整個(gè)頁(yè)面的刷新而能夠自動(dòng)更新。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.OverviewMapJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_overview.js,設(shè)置Map、MapResourceManager、OverviewMapResource5、Toolbar控件Toolbar控件可以是工具和命令行的集合,這些工具和命令被分成不同種類(lèi),執(zhí)行相似的操作。在添加工具的時(shí)候,可以添加WebADF已經(jīng)封裝好的一些操作,如放大、縮小、漫游等,這個(gè)工具不需要添加任何代碼;開(kāi)發(fā)人員也可以添加自定義的工具或命令。一般來(lái)說(shuō),需要進(jìn)行圖形交互的采用工具,反之則采用命令。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.ToolbarJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_toolbar.js,Toolbar有很多屬性可以控制Toolbar的顯示風(fēng)格。在Toolbar的過(guò)程可以根據(jù)需要來(lái)進(jìn)行相應(yīng)的設(shè)置。例如,ToolbarStyle有3種風(fēng)格可供選擇:ImageandText,TextOnly,ImageOnly,用戶可以根據(jù)應(yīng)用程序的需要來(lái)設(shè)置。6、Toc控件Toc控件全稱(chēng)TableofContents,Toc控件列出Map控件中所有的地圖。Toc控件與Map控件相關(guān)聯(lián),打開(kāi)或關(guān)閉Toc控件的圖層可以控制Map控件圖層可見(jiàn)或不可見(jiàn)。Toc控件從TreeViewPlus控件繼承而來(lái),可以用代碼來(lái)控制TreeViewPlus中的節(jié)點(diǎn)。Toc控制是異步刷新的,更新Toc控件不需要刷新整個(gè)頁(yè)面。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.TocJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_toc.js,display_treeviewplus.js7、ScaleBar控件ScaleBar控件為Map提供一個(gè)簡(jiǎn)單的比例尺。ScaleBar控件的一些屬性如顏色、字體、高度和比例尺的單位都可以通過(guò)屬性來(lái)設(shè)置。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.ScaleBarJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js8、Navigation控件Navigation控件與單個(gè)的Map控件相關(guān)聯(lián),它提供通用的地圖移動(dòng)、縮放功能。Navigation控件可以被渲染成圖片,也可以是TrueType字符。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.ScaleBarJavaScriptlibrariesdisplay_common.js,display_dotnetadf.jsMap、DisplayCharacter屬性9、ZoomLevel控件ZoomLevel控件能夠讓用戶快速定位到某一比例尺,它與Map控件相關(guān)聯(lián)。開(kāi)發(fā)人員可以將其放在頁(yè)面的任意地方。ZoomLevel控件只針對(duì)建立了Cache的地圖服務(wù),如果是實(shí)時(shí)產(chǎn)生圖片的服務(wù),則ZoomLevel控件沒(méi)有任何作用。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.ZoomLevelJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js、display_navigation.js10、MapCopyrightText控件MapCopyrightText控件用來(lái)顯示Map控件的版權(quán)。在運(yùn)行的時(shí)候,MapCopyrightText控件以文本的方式出現(xiàn),單擊后顯示版權(quán)信息的對(duì)話框。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dllClassESRI.ArcGIS.ADF.Web.UI.WebControls.MapCopyrightText設(shè)置CopyrightText、Map、Text等屬性(三)TaskManager與Task控件

在ArcGISServer中,所有的Task均由TaskManager來(lái)管理。本節(jié)將介紹ArcGISServer提供的各種Task和TaskManager控件及Task結(jié)果的顯示。1、TaskManager控件

TaskManager控件在WebADF應(yīng)用程序中管理各種Tasks。TaskManager控件產(chǎn)生樹(shù)形XML格式的數(shù)據(jù),這種數(shù)據(jù)能夠被ASP.NET的Menu、TreeView等控件導(dǎo)航。在運(yùn)行的時(shí)候,Menu、TreeView控件可以用來(lái)控制Task的顯示。(1)將控件加入到頁(yè)面打開(kāi)VS,并創(chuàng)建一個(gè)Web站點(diǎn),在設(shè)計(jì)模式下打開(kāi)一個(gè)頁(yè)面,選擇工具箱并展開(kāi)ArcGIS控件標(biāo)簽,選中TaskManager控件,然后將它拖動(dòng)到Web頁(yè)面中;(2)添加導(dǎo)航下的Menu控件到頁(yè)面;(3)設(shè)置TaskManager控件的BuddyControl屬性為Menu1;(4)添加一個(gè)Task例如添加SearchAttributesTask到TaskManager中。在一般情況下要把Task控件設(shè)置為False,2、EditorTask控件EditorTask控件為ArcGISServer地圖服務(wù)提供一套基于Web的編輯工具,可以修改、添加、刪除幾何元素或修改其屬性。

使用EditorTask控件需要滿足以下條件:

地圖服務(wù)必須是ArcGISServerLocal類(lèi)型;

地圖服務(wù)可以是pooled或者non-pooled;

地圖服務(wù)須是基于MXD文檔,不支持MSD服務(wù);

在non-pooled的服務(wù)中,有沒(méi)有注冊(cè)版本均可編輯;pooled的服務(wù)只能編輯沒(méi)有注冊(cè)版本的數(shù)據(jù);EditorTask中不支持Shapefile和personalgeodatabase的數(shù)據(jù)編輯;

待編輯的數(shù)據(jù)圖層最好有唯一的名字;AssemblyESRI.ArcGIS.ADF.ArcGISServer.Editor.dll;ClassESRI.ArcGIS.ADF.ArcGISServer.EditorTask3、SearchAttributesTask控件SearchAttributesTask控件提供用戶輸入字段的屬性值來(lái)查找?guī)缀卧兀檎业膱D層只能是MapSourceManager中的圖層,查找結(jié)果由ADO.NETDataSet返回到TaskResults中。AssemblyESRI.ArcGIS.ADF.Tasks.dll;ClassESRI.ArcGIS.ADF.Tasks.SearchAttributesTaskJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_task.js.display_floatingpanel.js4、QueryAttributesTask控件QueryAttributesTask控件能夠讓用戶確切定義一個(gè)字段的值,該控件提升了SearchAttributesTask控件的功能,SearchAttributesTask找到的時(shí)候使用關(guān)系操作符是like,而QueryAttributesTask字段可以是“=”、“>”、“l(fā)ike”等操作符,查詢(xún)的結(jié)果與SearchAttributesTask相似。AssemblyESRI.ArcGIS.ADF.Tasks.dll;ClassESRI.ArcGIS.ADF.Tasks.QueryAttributesTaskJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_task.js.display_floatingpanel.js

在設(shè)置查詢(xún)字段的時(shí)候,可以自定義查詢(xún)字段。單擊“Add”菜單,系統(tǒng)彈出查詢(xún)字段條件編輯對(duì)話框,開(kāi)發(fā)人員可以根據(jù)實(shí)際情況來(lái)設(shè)置查詢(xún)條件。5、GeoprocessingTask控件

該控件利用GeoprocessingResourceManager控件數(shù)據(jù)處理服務(wù)來(lái)執(zhí)行空間處理服務(wù)。GeoprocessingTask控件根據(jù)用戶的輸入?yún)?shù)來(lái)執(zhí)行空間處理,并把處理結(jié)果顯示在TaskResults中。AssemblyESRI.ArcGIS.ADF.Tasks.dll;ClassESRI.ArcGIS.ADF.Tasks.GeoprocessingTaskJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_task.js.display_floatingpanel.js6、FindAddressTask控件

該控件利用GeocodeResourceManager中地理編碼來(lái)執(zhí)行地理編碼操作,地理編碼是一個(gè)地理描述轉(zhuǎn)變?yōu)榈貓D的x、y坐標(biāo)。FindAddressTask控件把用戶輸入的地理描述匹配到地址庫(kù)中,結(jié)果以ADO.NET的DataSet顯示在TaskResults中。AssemblyESRI.ArcGIS.ADF.Tasks.dll;ClassESRI.ArcGIS.ADF.Tasks.FindAddressTaskJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_task.js.display_floatingpanel.js7、FindPlaceTask控件

該控件利用提供地名搜索ArcWebServices。FindPlaceTask控件包括一個(gè)文本框用來(lái)輸入地名,結(jié)果以ADO.NET的DataSet顯示在TaskResults中。使用FindPlaceTask時(shí)必須使用ArcWebServices的賬號(hào)。AssemblyESRI.ArcGIS.ADF.Tasks.dll;ClassESRI.ArcGIS.ADF.Tasks.FindPlaceTaskJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_task.js.display_floatingpanel.js8、PrintTask控件

該控件顧名思義是打印地圖的控件。PrintTask控件把當(dāng)前Map控件顯示的圖片嵌入到一個(gè)打印網(wǎng)頁(yè)中去,可以設(shè)置打印文檔的字頭、圖片大小、圖例等。AssemblyESRI.ArcGIS.ADF.Tasks.dll;ClassESRI.ArcGIS.ADF.Tasks.PrintTaskJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_task.js.display_floatingpanel.js9、TaskResults控件

該控件用來(lái)顯示其他Task操作結(jié)果,它以ADO.NET的DataSet形成存儲(chǔ),以TreeView形式顯示。TaskResults控件提供異步刷新的放大、平移以及高亮度顯示選中的對(duì)象,也可以在結(jié)果集刪除選擇的對(duì)象。AssemblyESRI.ArcGIS.ADF.Web.UI.WebControls.dll;ClassESRI.ArcGIS.ADF.Web.UI.WebControls.TaskResultJavaScriptlibrariesdisplay_common.js,display_dotnetadf.js,display_TaskResults.js.display_treeviewplus.js,display_contextmenu.js(四)其他控件下面的控件與地圖顯示沒(méi)有直接的關(guān)系,但在ArcGISServer應(yīng)用程序中經(jīng)常會(huì)用到。1、FloatingPanel控件

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論