ArcGIS API for Python操作Server

首先呢,我引一下話題:
在這裏插入圖片描述一份土地利用鑲嵌數據集,裏面有N份柵格數據,那麼我想在web端以一種渲染方式爲每個圖層進行渲染。

看到這裏很多大佬肯定會想到,給鑲嵌數據集一個渲染模板!
下面我要說的就是這個問題!!!
閒話不多說,開始正題。看一下話題關鍵字:鑲嵌數據集、同一渲染方式、web端顯示*。
針對這一問題,我能想到的有兩種方案。

方案一:
先在客戶端造一個渲染模板,然後在鑲嵌數據集中添加該模板,然後發佈爲image service,這一方法適合做研究,不適合做項目。OK,關於這一方面怎麼操作,我就不介紹了,但是呢,在這塊我曾遇到過問題,在我向鑲嵌數據集中添加數據,重啓服務後,該渲染模板直接消失!!!
在這裏插入圖片描述
試了很多次,問題依舊。。。好的,繼續下一種方案。

方案二:
先在客戶端造一個渲染模板,將渲染模板上傳到在server中註冊過的服務器文件中,不用將其添加至鑲嵌數據集,直接發佈鑲嵌數據集,發佈完成後,接下來就是放大招的時候。
進入server manager,查看發佈的鑲嵌數據集屬性信息,你會看到有函數二字,對,就是在這裏下功夫。將上傳後的渲染模板路徑寫進去,重啓服務就ok了。。。
在這裏插入圖片描述
但是,重點呢?背題了啊!!!
好,下方高能!!!
ArcGIS API for Python操作Server,實現Service屬性更改。
首先我們查看一下image service的屬性信息

import arcgis
from arcgis import gis
from arcgis.gis import server
portal = gis.GIS("portal地址", "用戶名", "密碼", verify_cert=False)
hostserver = server.catalog.ServicesDirectory(url="託管server地址", portal_connection=portal)
image = hostserver.admin.content.get("LandUseclassification", "mosaic")
print(image.service.properties)

在這裏插入圖片描述
我們最關注的是rasterFunctions和defaultTemplate,這裏看到沒有函數模板,接下來我們目的是修改該屬性信息。

import json
properties = image.service.properties.properties
properties.update({"defaultTemplate": "/gis/dingsl/test/土地利用分類渲染.rft.xml"})
properties_ser = image.service.properties
properties_ser.update({"properties": json.loads(str(properties))})
# 編輯並重啓服務
image.service.edit(json.loads(str(properties_ser)))
print(image.service.properties)

在這裏插入圖片描述
最後,我們查看一下添加模板後的結果
在這裏插入圖片描述配色模板有點醜,不要介意。
總體以修改服務的屬性角度介紹了ArcGIS API for Python操作Server,長路漫漫啊,還有更多東西等待挖掘。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章