文章目錄
- 關於Web service的URLs
- 某些能力必須通過Web來訪問
- 建立準備發布成服務的map document的一些技巧
- 直接從geodatabase發布geodata service
- 隨map service發布一個geodata service
- 能力
- 移除ArcGIS Online的圖層
- 關於最佳化資料表現
- raster dataset資料來源的圖層屬性
- ArcGIS Image Server資料來源的圖層屬性
ArcGIS Server中的各種服務使用服務
通過服務可以在用戶端之間更容易的共用資源。通過服務可以保證所有的用戶端訪問到同樣的資源,而不用在他們的機器上單獨進行安裝。伺服器儲存著資源,管理服務,進行GIS相關工作,將結果通過圖片或者文字的形式返回給用戶端。
要使用服務,並不需要安裝單獨的GIS軟體,用普通的Web瀏覽器或者自訂的應用程式即可。但ArcGIS的應用程式,比如ArcMap和ArcGlobe同樣可以作為GIS服務的用戶端。
使用ArcGIS Server上的服務時,可以和使用本地資源一樣對它進行訪問。比如訪問伺服器上的map service時,就好像地圖文檔和資料存放區在本地一樣。
將GIS resource作為一個服務發布出去是讓人們訪問到它的關鍵。通常情況下,都是通過ArcGIS Desktop來製作資源,然後將其發布成服務供用戶端使用。
下表中列出了可發布的服務和每個服務需要什麼樣的資源
| 服務類型 |
需要的GIS資源 |
| Map service |
Map document (.mxd, .pmf) |
| Geocode service |
Address locator (.loc, .mxs, SDE batch locator) |
| Geodata service |
資料庫連接檔案(.sde) 或 personal geodatabase 或 file geodatabase 或引用了註冊為版本的geodatabase中資料的 map document |
| Geometry service |
不需要GIS資源 |
| Geoprocessing service |
帶有工具塗層的Map document或 toolbox (.tbx) |
| Globe service |
Globe document (.3dd, .pmf) |
| Image service |
Raster dataset 或引用了raster dataset的圖層檔案或編譯過的image service definition (.ISCDef) |
各種服務具有的能力
作為一個ArcGIS Server管理員,你需要關注發布的服務和其引用的資源。但用戶端更關心的是他們能使用的服務都具有什麼樣的能力。作為管理員,可以控制所發布的GIS和其擁有的能力。
服務的能力是和資源的類型相關的,比如地圖文檔中圖層的類型。Map documents具備的能力最多。比如WMS和KML。其他比如Geodata Access和Geoprocessing, 需要特殊類型的圖層。下表中列出了各種服務能力所需要的資源。
| 能力 |
該能力能夠做什麼 |
哪些服務具備該能力 |
| Geocoding |
可以用來訪問address locator。geocode service總是擁有這種能力。 |
Geocode services |
| Geodata |
可以用來訪問geodatabase,從而進行資料查詢,提取,和複製。geodata service總是擁有這種能力。 |
Geodata services |
| Geodata Access |
允許用戶端使用者在ArcMap中複製和提取資料。發布建立一個關聯geodata service的地圖文檔時可以擁有這種能力。 |
Map services |
| Geometry |
為應用程式提供一個用於幾何運算(比如投影和加密化)的內部引擎。 |
Geometry services |
| Geoprocessing |
用從toolbox或工具圖層來訪問geoprocessing models。工具圖層是指從ArcToolBox中拖拽到TOC中的model。發布建立一個關聯geoprocessing service的地圖文檔時可以擁有這種能力。發布一個geoprocessing service時自動擁有這種能力。 |
Geoprocessing services, map services |
| Globe |
可以用來訪問globe document。發布globe service時自動擁有這種能力。 |
Globe services |
| Imaging |
用來訪問raster dataset或ArcGIS Image Server service。發布image service時會自動擁有這種能力。 |
Image services |
| KML |
使用一個map document來建立Keyhole Markup Language (KML) features。 |
Map services |
| Mapping |
用來訪問map document的內容。發布map service時自動擁有這種能力。 |
Map services |
| Mobile Data Access |
可以從map document中提取資料到行動裝置上。 |
Map services |
| Network Analysis |
使用Network Analyst extension來解決交通網路分析問題。 |
Map services |
| WCS |
建立一個相容OGC(Open Geospatial Consortium)WCS規範(Web Coverage Service)的服務。 |
Geodata services, image services, map services |
| WFS |
建立一個相容OGC的WFS規範(Web Feature Service)的服務。 |
| WMS |
建立一個相容OGC的WMS規範(Web Map Service)的服務。 |
Image services, map services |
這樣就可以看出要使用特定能力時需要發布希麼樣的服務了。
把服務發布到網路上
用戶端通過網路連接到伺服器(可以通過LAN或WAN)。如果是通過Internet方式串連到一個GIS Service,那麼他們使用的就是Web Service。
發布服務的時候,預設會使這個服務能夠通過網路被訪問,並給出與之相關的一個URL。這個URL是ESRI的應用程式通過ArcGIS Server Internet方式串連時使用的。你不能直接在瀏覽器中輸入這個URL來瀏覽服務。但是,你可以在瀏覽器中輸入這個URL,在後面再加上“?wsdl”來查看這個Web Service的定義,以便檢查它是否正常工作。(WSDL是Web Services Description Language的縮寫,是一種用來描述Web Service的XML語言)。
關於Web service的URLs
要使用戶端能夠訪問Web services,他們必須得知道該服務的URL。形如:
http://<伺服器名稱>/<執行個體名>/services
如果要串連到一個特定的服務,則URL應該是這樣的形式:
http://<伺服器名稱>/<執行個體名>/services/<檔案夾名稱(如果服務在一個檔案夾裡的話)>/<服務名>/<服務類型(某些服務需要)>/<能力的類型(某些服務需要)>
比如,要通過WSDL查看伺服器上的所有服務的描述,則輸入以下的URL:
http://伺服器名稱/arcgis/services?wsdl
又如,要通過WSDL查看伺服器上一個名為usamap服務的mapping能力,則輸入下面的URL:
http://伺服器名稱/arcgis/services/usamap/mapserver?wsdl
某些能力必須通過Web來訪問
某些能力的使用要求用戶端必須通過Internet的方式來串連;因此該能力不能夠禁用“通過web訪問”選項。這些能力包括KML, WMS, 和Mobile Data Access。
下面我們來看看具體的服務。
Map services
Map service是最常見的ArcGIS service,可以擁有很多能力和功能。Map service本身具備mapping和map viewing的能力,也可以支援modeling和geoprocessing,mobile GIS services以及OGC WMS, OGC WCS, KML的能力。
要發布map service,首先得在ArcMap中準備一個map document (.mxd)。將這個mxd檔案發布成map service後,便可通過服務訪問該地圖文檔的資料,顯示圖層,並使用該地圖內建的任何能力。也可以選擇對這個服務建立cache,使其能夠更快速的被瀏覽。
建立map document
必須使用ArcGIS Desktop來建立map document。如何建立,請參考ArcMap概覽。
建立準備發布成服務的map document的一些技巧
需要合理安排地圖文檔的內容,範圍,標註,註記等等要素,將它們安排到合理的位置,切記不要太繁瑣,同時考慮到地圖的美觀性。
可以參考建立和發布網路地圖。
發布service
如何將地文檔發布成一個服務,請參考說明中的“Publishing a GIS resource to the server”主題。
啟用service中的相應能力
發布一個map service後,通過啟用相應的能力可以建立其他與map service一起工作的service。其中一些能力要求地圖文檔包含有特定的圖層。
下表中列出了map service擁有的能力,和啟用相應能力的要求。
| 能力 |
該能力能夠做什麼 |
啟用該能力的要求 |
| Mapping |
提供對地圖文檔內容的訪問 |
任何地圖文檔都預設具有這種能力 |
| WCS |
在地圖文檔中包含一個或多個raster layers來啟用一個與Open Geospatial Consortium's (OGC) Web Coverage Service (WCS)規範相容的能力 |
地圖文檔中需要包含raster圖層 |
| WFS |
使用文檔中的圖層建立一個與Open Geospatial Consortium's (OGC) Web Feature Service (WFS)規範相容的能力。 |
文檔中需要包含需要向量圖層。服務中不包含柵格圖層,因為WFS是針對適量資料的。 |
| WMS |
使用文檔建立一個與Open Geospatial Consortium's (OGC) Web Map Service (WMS)規範相容的能力。 |
None |
| Mobile Data Access |
可以從地圖文檔提取資料到行動裝置上。 |
不需要 |
| KML |
使用地圖文檔來建立Keyhole Markup Language (KML) features。 |
不需要 |
| Geodata Access |
允許使用者在ArcMap中對資料進行提取和複製。 |
需要使用geodatabase中的圖層。建立一個與map service協同工作的geodata service。 |
| Geoprocessing |
從工具圖層可以訪問geoprocessing models。工具圖層是指從ArcToolbox中直接拖拽到TOC上的工具model。 |
需要工具圖層。這樣就可以建立一個隨map service一起工作的geoprocessing service。 |
| Network Analysis |
使用Network Analyst擴充模組解決交通網路分析問題。 |
需要一個引用network dataset資料的network analysis layer。 |
Using the map service
建立了map service後,可以通過local和Internet方式來串連。由於map service可以具有多種能力,所以有很多ESRI和非ESRI應用程式都可以訪問它。包括:
- ArcMap
- ArcGIS Server Web Mapping applications
- ArcGIS JavaScript API applications
- ArcGIS Explorer
- ArcGlobe
- ArcReader
- ArcGIS Engine applications
- ArcGIS for AutoCAD
- Microsoft Virtual Earth (using the ArcGIS JavaScript Extension for the Virtual Earth API)
- Google Maps (using the ArcGIS JavaScript Extension for the Google Maps API)
- Google Earth (as KML)
- WMS client applications (as WMS)
- WCS client applications (as WCS)
- WFS client applications (as WFS)
- Mobile applications (as a mobile data service)
Geocode services
Geocode services也有非常廣的使用範圍,業務和客戶管理上可以很容易得出貨物分發配送時需要走那個方向。Geocoding可以在地圖上輕易找到一個地址,並查看周圍的一些要素與之有什麼樣的聯絡。有時可以僅通過查看地圖擷取你需要的資訊;有些時候需要通過空間分析工具來揭示潛在的資訊。
有很多商業的geocode services,但可能並不能滿足你的需要:地址資訊更新不夠及時,地址資訊的格式與他們不符,或者你想讓人們通過當地的習慣用語來尋找一個地點。這些都需要一個特殊的geocoding解決方案。可以通過發布自己的geocode service來解決這些問題。
在向GIS伺服器發布geocode service前,需要在ArcGIS Desktop中建立address locator,然後將locator作為geocode service發布。
建立address locator
address locator是ArcGIS中geocoding的主要工具,同時包含了地址定位所需的所有資料。可以使用ArcCatalog建立address locator。關於如何一步步建立,請參考建立Address Locator。
建立的locator需要在一個共用目錄中這樣所有的server object container (SOC)機器才能訪問到它。另外SOC賬戶也需要有訪問到該目錄的相應許可權。
發布address locator
請參考Publishing a GIS resource to the server。指定資源時指定到想要發布的locator。可以使用的格式是locator files (.loc), ArcView 3 address locators (.mxs), ArcSDE address locators, personal geodatabase locators,和file geodatabase locators。
使用geocode service
Web ADF內建的Find Address task就是用來定位地址的。利用這個task來使用geocode服務。
返回頂部
Geodata services
geodata service,用戶端使用ArcGIS Server可以通過Lan或Wan訪問geodatabase。該服務擁有複製geodatabase,提取資料,在geodatabase中進行查詢的操作能力。一個geodata service本身可以添加各種行的geodatabase,包括ArcSDE geodatabases, personal geodatabases, 以及file geodatabases。
如果想通過遠端存取一個資料庫,geodata services非常有用。比如公司想建立一個ArcSDE geodatabases來管理Los Angeles和New York辦公室的資料。建立好服務後,兩地的辦公室都可以通過互連網使用geodata service來發布自己的ArcSDE geodatabase。geodata services也可以用來通過Internet定期同步不同geodatabase中的資料。
發布該服務之前,你需要對geodatabase相關概念有所瞭解。請參考Understanding distributed data。
首先在ArcGIS Desktop中準備好geodatabase發布geodata service
兩種方式來發布geodata service: 直接從geodatabase發布,或伴隨map service發布一個geodata service。
直接從geodatabase發布geodata service
這種方式需要引用你想要發布成服務的personal geodatabase, file geodatabase, 或ArcSDE的串連檔案。geodatabase或串連檔案需要放在所有SOC機器都能夠訪問到的地方。
對於ArcSDE geodatabase,有些時候需要在Catalog中右鍵,儲存串連檔案,這樣.sde串連檔案就會儲存你的登入名稱/Application Data/ESRI/Catalog/檔案夾中,建議將它拷到一個所有SOC機器都能夠訪問到的地方。
通過一下步驟來發布geodata service:
- 點擊Manager中的Services標籤
- 點擊Publish GIS Resource.
- 根據提示輸入資訊,但要注意:
- 對於Resource, 選擇想要發布的geodatabase或ArcSDE geodatabase的串連檔案(.sde)。
- 如需協助,請參考Publishing a GIS resource to the server。
隨map service發布一個geodata service
要這麼做,必須在map service的能力列表中選中geodata access,而且map document必須引用了geodatabase中的資料。當發布完成後,會自動建立一個map service和一個同名的geodata service,這兩個服務可以獨立進行管理。發布這樣的服務可以允許你使用Distributed Geodatabase toolbar中的命令來添加map service到ArcMap中。請參考Distributed Geodatabase toolbar。
按照以下步驟來操作:
- 點擊Manager中的Services標籤
- 點擊Publish GIS Resource.
- 根據提示輸入資訊,但要注意:
返回頂部
Geometry services
geometry service可以輔助應用程式進行幾何計算,比如buffering, simplifying, 計算面積/長度,或投影。進行這些計算工作其實也有其他的方式可以完成,比如細粒度的AO編程或geoprocessing service,而geometry service提供了另一種方式來完成類似的工作。geometry service特別適合於使用ArcGIS REST或JavaScript APIs建立的應用程式。
geometry service只對於管理員和開發人員可見。串連到伺服器的使用者並不能看見geometry service。
geometry service是ArcGIS Server 9.3中提供的,預設情況下不能使用。必須為自己的應用程式手動建立它。
建立geometry service
要建立geometry service,選擇ArcCatalog或Manager中的Add New Service。service類型中選擇Geometry Service。但要注意以下幾點:
- geometry service必須用"Geometry"命名。
- 每個伺服器上只能有一個geometry service;但可以允許該服務的多個執行個體。
- Geometry services總是池化的。
- 可以和其他服務一樣停止,啟動和刪除geometry service。
使用geometry service進行開發工作
在建立JavaScript應用程式時,可以通過REST endpoint來引用一個geometry service。如何使用,請參考ArcGIS JavaScript API helps。
如果想在Web ADF應用程式使用geometry service,建議你使用SOAP。可以在SOAP SDK中找到geometry service,請參考ArcGIS Server Resource Center。
Geoprocessing service
geoprocessing service包含用戶端可以使用的了geoprocessing tasks。Tasks是發布geoprocessing toolboxes或包含工具圖層的map documents時建立的。當執行geoprocessing service中的task時,是在伺服器上進行運算,使用的也是伺服器的資源。
Geoprocessing services和它們的tasks可以通過Internet或區域網路來訪問,也可在ArcGIS Desktop, ArcGIS Explorer, 以及web應用程式(比如使用ArcGIS Server Manager建立的web Applicaiton)中使用。
發布Geoprocessing service
- 發布geoprocessing toolbox。該toolbox中的每個tool都會變成geoprocessing service中的一個task。
- 發布包含工具圖層的地圖文檔。每一個工具圖層將會編程geoprocessing service中的一個task。
輸入輸出的資料類型
中大致說明了輸入輸出的參數類型。
關於如何發布geoprocessing service,請參考發布geoprocessing service。
關於更多geoprocessing service的具體情況,請參考geoprocessing service。
返回頂部
Globe services
globe service從一個ArcGlobe document (.3dd)中提供了3D的視圖。要發布globe service需要首先建立globe document,然後將其發布成服務。建立了globe service之後,支援的用戶端,比如ArcGlobe, ArcGIS Explorer, 和ArcReader則可以遠端存取globe service。
建立globe service的步驟:
- 準備一個ArcGlobe Document,確保該文檔的資料來源或緩衝能夠被所有的SOC機器訪問。
- 使用ArcCatalog或ArcGIS Server Manager建立並啟動一個globe service。
- 可以為globe service建立cache以加快訪問速度。
下面將詳細說明如何發布服務,使用服務和如何提高顯示速度。
建立globe document
建立該文檔必須擁有ArcGIS Desktop且具有3D Analyst extension。globe service包含了許多圖層,可以單獨被加入到應用程式中。這是與map service不同的,後者一次性將文檔中的所有資料加入。因為globe service是這樣單獨的圖層,所以globe document中的一些屬性,比如環境光線照,太陽位置,背景顏色,展開參數都 不 會在globe service中起作用。
移除ArcGIS Online的圖層
ArcGlobe 9.3預設包含了一些ArcGIS Online服務中的圖層。必須在發布globe service之前將他們移除。因為globe services內容 (比如ArcGIS Online的服務)不能再在其他globe services中發布。
除了你自己的圖層外,如果還想在程式中看到ArcGIS Online的內容,則首先需要發布一個不包含ArcGIS Online圖層的服務(僅包含你自己的圖層)。然後建立一個ArcGlobe document或3D ArcReader document或ArcGIS Explorer map,然後在其中添加一下內容:
- 剛才已經發布好的globe service
- ArcGIS Online圖層。
- 如果需要,添加其他服務的圖層。
然後將這個文檔儲存,放在一個共用的位置。
關於最佳化資料表現
請參考一下條目:
發布globe service
選擇發布globe service,選擇要發布的globe document。按照嚮導來完成此工作。
注意,Web ADF中並沒有使用globe services的控制項。
建議通過ArcGIS Explorer來訪問globe service。
要在Web application中瀏覽發布的3D服務,只能通過使用ArcGIS JavaScript Extension for Virtual Earth來實現。
返回頂部
Image services
image service使得從Web service來瀏覽柵格資料成為可能。柵格資料的資料來源可以是raster dataset (在geodatabase中或硬碟上),引用了raster dataset的圖層檔案, 或使用ArcGIS Image Server建立的編譯過的image service definition (包含一個或多個raster datasets和defined processes)。
注意:如果要使用編譯過的image service definitions來建立image services,則需要在ArcGIS Server中註冊ArcGIS Image Server。請參考 Learn more about registering ArcGIS Image Server with ArcGIS Server。
Image service的能力
發布image service時,可以選擇使其相容Open Geospatial Consortium Web Map Service (WMS)或Web Coverage Service (WCS)規範的能力。
發布image services
我有ArcGIS Server and the ArcGIS Image Server extension
則可以使用ArcCatalog或Manager發布之前說過的三種資料來源。請參考Publishing a GIS resource to the server。提示resource類型時,選擇raster dataset, layer file, 或編譯過的image service definition來發布。
我只有ArcGIS Server
則只能發布前兩種資料來源。步驟如前
我只有ArcGIS Image Server
則只能發布第三種資料來源。也不能啟用WMS或WCS能力。用戶端只能直接連接到ArcGIS Image Server。
使用image service
串連到GIS伺服器後可以和其他服務一樣對image service進行使用。
raster dataset資料來源的圖層屬性
image service圖層具有屬性。像一個raster dataset layer一樣,Image Service Layer屬性對話方塊包括General, Source, Extent, Display,和Symbology標籤。注意其中Display標籤有壓縮選項。可以用來快速傳輸映像。
ArcGIS Image Server資料來源的圖層屬性
擁有Mosaic和Metadata兩個額外的標籤。
關於具有KML能力的服務
Keyhole Markup Language (KML)是一種基於XML的檔案格式,用來在Google Earth或ArcGIS Explorer等應用程式中表達地理資訊(geographic feature)。 KML可以用來在maps和globes上繪製points, lines, 和polygons,並與他人共用。使用KML還可以在使用者點擊一個feature時,在結果中指定文字,圖片,影片,或其他GIS服務的連結資訊。
ArcGIS Server中,能使用KML來做什嗎?
ArcGIS Server有多種方式來允許你使用KML來共用地圖資料:
- Map services和image services通過representational state transfer (REST)開放了KML網路連結。
- 也可以使用Services Directory或Manager來建立自己的KML網路連結。
- 當通過REST方式查詢地圖圖層,進行geoprocessing或geocoding操作時,都會得到KML形式的結果。
由此可看出KML都是動態建立的,所以KML總是與伺服器上最新的地圖資料保持一致。
更多資訊請參考KML support in ArcGIS Server
關於具有相容OGC規範(WFS,WMS,WCS)能力的服務
Open Geospatial Consortium, Inc. (OGC) Web services可以使得你的地圖和資料以一種開放通用的格式在網路中共用。OGC為地圖和資料定義了可以廣泛共用的規範。所有開發人員可以免費使用OGC規範。使用OGC規範的用戶端範圍很廣,可以是簡單的web瀏覽器,也可以是ArcMap之類的應用程式。
ArcGIS Server中OGC規範的發布能力
OGC定義了不同類型的服務來支援不同的地圖和資料。ArcGIS Server發行就緒三種OGC服務:
- Web Map Services (WMS) 用來以圖層的形式支援map images
- Web Feature Services (WFS) 支援向量資料
- Web Coverage Services (WCS) 支援柵格資料
可以通過在ArcGIS Server的services中啟用某種能力來發布支援OGC規範的服務。
下表中列出了可以支援OGC能力的服務
|
WMS |
WFS |
WCS |
| Map services |
X |
X |
X |
| Geodata services |
|
X |
X |
| Image services |
X |
|
X |
更多資訊請參考OGC support in ArcGIS Server
返回頂部
posted