AGS JS開發(fā)-動態(tài)圖層全面解析一

理論介紹


1.動態(tài)圖層介紹

動態(tài)圖層是地圖服務(wù)中包含的一項功能,允許通過客戶端API動態(tài)的更改地圖服務(wù)中的圖層外觀和行為。具體來說,通過動態(tài)圖層可以實現(xiàn):

  1. 向地圖服務(wù)中動態(tài)的添加新圖層;
  2. 設(shè)置圖層動態(tài)標(biāo)注;
  3. 修改圖層渲染方式,支持簡單渲染、唯一值渲染、分類渲染;
  4. 更改地圖服務(wù)中圖層的顯示順序;
  5. 從地圖服務(wù)中移除圖層;
  6. 動態(tài)的添加和修改圖層或表的連接關(guān)系;

拿WebGIS系統(tǒng)開發(fā)來說,如果想更改地圖服務(wù)中某個圖層的渲染方式,通常的做法是先將數(shù)據(jù)取到客戶端,然后在客戶端更改渲染方法。對于小數(shù)據(jù)量,這種客戶端渲染的方式?jīng)]有問題,但數(shù)據(jù)量大之后客戶端無法承載。

個人認(rèn)為,在以下業(yè)務(wù)需求下,可嘗試使用動態(tài)圖層來解決:

  1. 需要更改地圖服務(wù)中某個圖層的渲染方式,且該圖層包含的要素個數(shù)比較多,使用常規(guī)的客戶端渲染方式性能差或者無法支撐大數(shù)據(jù)量。
  2. 需要在客戶端實現(xiàn)動態(tài)的添加業(yè)務(wù)圖層。

需要注意的是,動態(tài)圖層支持的數(shù)據(jù)量也不是無限的,動態(tài)圖層的出圖效果與發(fā)布的動態(tài)地圖服務(wù)效果一樣。換句話說,如果動態(tài)地圖服務(wù)中數(shù)據(jù)量上百萬后,在客戶端加載時會明顯看到數(shù)據(jù)加載效果,而且加載會較慢,同樣換成動態(tài)圖層也會出現(xiàn)同樣的效果。

2.動態(tài)圖層支持的數(shù)據(jù)源

動態(tài)圖層支持的數(shù)據(jù)源包括:

  1. 數(shù)據(jù)庫(僅查詢圖層)
  2. 文件地理數(shù)據(jù)庫(僅要素圖層、柵格圖層和表)
  3. 包含基于文件的柵格的文件夾
  4. 包含 shapefile 或 .dbf 文件的文件夾
  5. 地理數(shù)據(jù)庫(僅要素圖層、柵格圖層、查詢圖層和表)

3.開啟動態(tài)圖層功能

3.1.注意事項

  1. 需要為數(shù)據(jù)源設(shè)置工作空間ID,用于唯一標(biāo)識工作空間池中的工作空間。該 ID 可以是任何字符串,并且可以包含空格。
  2. 選擇動態(tài)工作空間時,建議選擇僅含有支持地圖服務(wù)的圖層和表格的工作空間。
  3. ArcGIS Server 帳戶必須至少具有對包含想要動態(tài)添加到地圖服務(wù)的數(shù)據(jù)的動態(tài)工作空間的讀訪問權(quán)限。

3.2.開啟步驟

  1. 在發(fā)布地圖服務(wù)過程中,選擇Capabilities-->Mapping,勾選上“Allow per request modification of layer order and symbology”,即可開啟動態(tài)圖層功能。
  2. 開啟動態(tài)圖層功能后,還需為地圖服務(wù)添加動態(tài)工作空間,即指定動態(tài)圖層所在的位置。
    打開Manage…,可為地圖服務(wù)添加多個動態(tài)工作空間。動態(tài)工作空間根據(jù)數(shù)據(jù)類型分為數(shù)據(jù)庫、Shapefile、文件GDB、柵格。

4.動態(tài)圖層開發(fā)注意事項

在客戶端API中使用動態(tài)圖層功能時,可以結(jié)合rest服務(wù)地址來測試傳遞的參數(shù)是否合法,以及檢驗輸出結(jié)果。rest地址中傳遞的參數(shù)內(nèi)容可根據(jù)REST API幫助說明輸入。

5.JS API中動態(tài)圖層的結(jié)構(gòu)分析

在JS API中與動態(tài)圖層相關(guān)的數(shù)據(jù)源有兩類:圖層源和數(shù)據(jù)源。圖層源指的是可以加載到地圖中的Layer,數(shù)據(jù)源則是圖層源Layer實際關(guān)聯(lián)的原始數(shù)據(jù)。圖層源與數(shù)據(jù)源的關(guān)系如下:

Map Layer圖層源 Data Layer數(shù)據(jù)源
—— table數(shù)據(jù)源
—— raster數(shù)據(jù)源
—— query數(shù)據(jù)源
—— join數(shù)據(jù)源

圖層源分為兩種:Map Layer和Data Layer,如果是原地圖服務(wù)中的圖層,則圖層源類型是Map Layer;如果是從動態(tài)工作空間加載的圖層,則是Data Layer類型。Data Layer根據(jù)原始數(shù)據(jù)的來源(即數(shù)據(jù)源),包含有:table、raster、query、join。table數(shù)據(jù)源指的是表和圖層數(shù)據(jù)、raster指的是柵格數(shù)據(jù)、query指的是查詢圖層、join用于建關(guān)聯(lián)關(guān)系。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容