ArcGIS Runtime for .Net Quartz开发探秘(三):承接来自GIS服务器的服务
在上一篇博客中,我們已經(jīng)在程序中添加了兩個服務(wù),一個是切片地圖服務(wù),另一個是三維場景服務(wù)。
這篇博客則會從整體上介紹幾種常用服務(wù)的使用方式。
先解釋兩個名詞:服務(wù)、圖層
服務(wù):服務(wù)器對外提供功能的單元
圖層:應(yīng)用程序組織要素的單元
服務(wù)和圖層,表現(xiàn)在程序中是這樣的:
<esri:ArcGISSceneLayer Name="BuildingsLayer" Source="http://scene.arcgis.com/arcgis/rest/services/Hosted/Buildings_Brest/SceneServer/layers/0"/>
其中http://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer是服務(wù),ArcGISTiledLayer是圖層。動態(tài)地圖服務(wù)&切片地圖服務(wù)
動態(tài)地圖服務(wù):用戶瀏覽地圖的時(shí)候由Server臨時(shí)繪制地圖的一種服務(wù)。
切片地圖服務(wù):與動態(tài)地圖服務(wù)不同,切片是事先繪制好緩存起來的,而動態(tài)地圖服務(wù)則是在調(diào)用時(shí),讀取地圖數(shù)據(jù)后臨時(shí)繪制的。
MapService:在ArcGIS Server的服務(wù)中,一個MapService地圖服務(wù)可能同時(shí)包含上面兩種服務(wù)的服務(wù)能力(動態(tài)地圖服務(wù)和切片地圖服務(wù))。通過各種終端發(fā)布至ArcGIS Server的MapService,默認(rèn)會開啟動態(tài)地圖服務(wù)能力,但是不一定有切片地圖服務(wù)能力。作為移動端開發(fā)人員,拿到的URL在結(jié)構(gòu)上是看不出是否具有切片地圖服務(wù)能力的,只能通過在瀏覽器上輸入U(xiǎn)RL,在服務(wù)詳情中產(chǎn)看。如下圖,有Tile Info的MapService才有切片地圖服務(wù)能力。
既然地圖服務(wù)的URL一樣,那怎么去區(qū)別使用呢?
使用MapService的哪種能力,要通過API去控制,要看程序用什么圖層對象去承接MapService。
如果我用ArcGISMapImageLayer對象去承接,則使用的是動態(tài)地圖服務(wù)的能力,如果使用的是ArcGISTiledLayer對象去承接,則使用的是切片地圖服務(wù)的能力。
下面給出動態(tài)地圖服務(wù)加載的代碼和切片地圖服務(wù)加載的代碼。
<esri:Scene.OperationalLayers><esri:ArcGISMapImageLayer Source="http://services.arcgisonline.com/arcgis/rest/services/Demographics/USA_Population_by_Sex/MapServer"></esri:ArcGISMapImageLayer><esri:ArcGISTiledLayer Source="http://services.arcgisonline.com/arcgis/rest/services/Demographics/USA_Population_by_Sex/MapServer"></esri:ArcGISTiledLayer><esri:ArcGISSceneLayer Name="BuildingsLayer"Source="http://scene.arcgis.com/arcgis/rest/services/Hosted/Buildings_Brest/SceneServer/layers/0"/> </esri:Scene.OperationalLayers>一個服務(wù)同時(shí)有動態(tài)地圖服務(wù)能力和切片服務(wù)能力的MapService,使用ArcGISMapImageLayer和使用ArcGISTiledLayer加載的最終效果一樣,但是加載時(shí)間長短區(qū)別很大。切片地圖服務(wù)是提前把每個比例尺下的地圖切割成小塊圖片,保存在服務(wù)器上。這樣客戶端在訪問地圖時(shí),直接獲取需要的小塊圖片拼接成整幅地圖,而不是由服務(wù)器動態(tài)創(chuàng)建出一幅圖片再送到客戶端,極大程度提高了訪問速度。
要素服務(wù)
要素服務(wù)一般被用作要素在線編輯。服務(wù)的URL與MapServer的URL略有不同。示例URL:
http://sampleserver6.arcgisonline.com/arcgis/rest/services/PoolPermits/FeatureServer
要素服務(wù)的末尾不是MapServer,而是FeatureServer,并且在要素服務(wù)使用的過程中,往往是使用FeatureServer的具體圖層。下面的代碼展示了如何在地圖中加載要素服務(wù),至于要素服務(wù)怎么編輯,放到后面的內(nèi)容中去探索。
Uri serviceUri = new Uri( "http://sampleserver6.arcgisonline.com/arcgis/rest/services/PoolPermits/FeatureServer/0"); ServiceFeatureTable myFeatureTable =new ServiceFeatureTable(serviceUri); myFeatureTable.FeatureRequestMode= FeatureRequestMode.OnInteractionNoCache; FeatureLayer myFeatureLayer =newFeatureLayer(myFeatureTable); myMap.OperationalLayers.Add(myFeatureLayer);影像服務(wù)
影像服務(wù)這里不做過多介紹,這里給出一個影像服務(wù)的示例URL,并給出服務(wù)加載代碼。
http://sampleserver6.arcgisonline.com/arcgis/rest/services/CharlotteLAS/ImageServer
總結(jié)
以上是生活随笔為你收集整理的ArcGIS Runtime for .Net Quartz开发探秘(三):承接来自GIS服务器的服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一起从头学习Flex
- 下一篇: MySql5.7.11 for Wind