日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ArcGIS Runtime for .Net Quartz开发探秘(三):承接来自GIS服务器的服务

發(fā)布時(shí)間:2025/6/15 asp.net 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ArcGIS Runtime for .Net Quartz开发探秘(三):承接来自GIS服务器的服务 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在上一篇博客中,我們已經(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

ImageServiceRaster serviceRaster = new ImageServiceRaster(new Uri("http://sampleserver6.arcgisonline.com/arcgis/rest/services/CharlotteLAS/ImageServer")); serviceRaster.Loaded += (s, e) => {ArcGISImageServiceInfo serviceInfo = serviceRaster.ServiceInfo;IReadOnlyList<RenderingRuleInfo> renderingRuleInfos = serviceInfo.RenderingRuleInfos;RenderingRule renderingRule = new RenderingRule(renderingRuleInfos[3]);serviceRaster.RenderingRule = renderingRule;RasterLayer layer = new RasterLayer(serviceRaster); }; serviceRaster.LoadAsync();

總結(jié)

以上是生活随笔為你收集整理的ArcGIS Runtime for .Net Quartz开发探秘(三):承接来自GIS服务器的服务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。