當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaScript ArcGIS SubtypeGroupLayer用法及代碼示例


基本信息

以下是所在類或對象的基本信息。

AMD: require(["esri/layers/SubtypeGroupLayer"], (SubtypeGroupLayer) => { /* code goes here */ });

ESM: import SubtypeGroupLayer from "@arcgis/core/layers/SubtypeGroupLayer";

類: esri/layers/SubtypeGroupLayer

繼承: SubtypeGroupLayer > Layer > Accessor

自從:用於 JavaScript 4.20 的 ArcGIS API

用法說明

概述

SubtypeGroupLayer 是一個單層,它會自動為其對應的 feature service 中的每個子類型創建一個 SubtypeSublayer。這允許每個子類型擁有自己配置的圖層屬性,因此,每個子圖層都可以通過不同的可見性、渲染器和彈出屬性來可視化其特征數據。這允許子層的交互,就好像它們是單獨的層一樣,而實際上,它們都共享相同的特征源。

SubtypeGroupLayer 利用其所有子層共享單個要素服務的事實,以便更有效地繪製並優化其跨所有子層的查詢。例如,在平移或縮放 Map 時發送單個請求,請記住每個子層都可以有自己的渲染器。這種方法無需發布多個要素圖層。這將導致每個要素圖層在平移和縮放Map時發送自己的請求。

SubtypeGroupLayer 將對數據有用,例如公共設施網絡數據集,這些數據當前包含具有許多子類型的要素圖層。

創建SubtypeGroupLayer

可以從服務 URL 或 ArcGIS 門戶項目 ID 創建 SubtypeGroupLayer。

注意

為了使用 SubtypeGroupLayer ,將數據源發布為 ArcGIS Pro 中的子類型圖層組。要了解有關如何使用 ArcGIS Pro 創建子類型圖層組的更多信息,請閱讀以下 documentation

引用服務 URL

要從服務創建 SubtypeGroupLayer 實例,您必須將 url 屬性設置為要素服務中圖層的 REST 端點。要素服務必須具有子類型字段,否則圖層將無法加載。

require(["esri/layers/SubtypeGroupLayer"], (SubtypeGroupLayer) => {
  const stgl = new SubtypeGroupLayer({
    url: "https://sampleserver7.arcgisonline.com/server/rest/services/UtilityNetwork/NapervilleElectric/FeatureServer/0"
  });
  map.add(stgl);  // adds the layer to the map
});

引用 ArcGIS 門戶項目 ID

如果ArcGIS Online 或ArcGIS Enterprise 中作為項目存在,您還可以從其portalItem 屬性創建SubtypeGroupLayer。

const stgl = new SubtypeGroupLayer({
  portalItem: {  // autocasts as esri/portal/PortalItem
    id: "8444e275037549c1acab02d2626daae"
  }
});
map.add(stgl);

子層

SubtypeGroupLayer 的子層稱為 SubtypeSublayers 。這些子層並不對應於單獨的服務,而是由 SubtypeGroupLayer 動態創建的。每個子圖層對應於 SubtypeGroupLayer 要素服務中的一個子類型。人們可以配置每一層的屬性,包括渲染器和彈出窗口。子圖層的圖層屬性可以通過 sublayers 屬性來定義。下麵演示配置子圖層的圖層屬性的示例。

const stgl = new SubtypeGroupLayer({
  url: "https://sampleserver7.arcgisonline.com/server/rest/services/UtilityNetwork/NapervilleElectric/FeatureServer/0",
  sublayers: [ // autocasts as a Collection of SubtypeSublayers
    {
      subtypeCode: 12,
      visible: true,
      renderer: simpleRenderer
    },
    {
      subtypeCode: 14,
      visible: false,
      renderer: classBreaksRenderer
    },
    {
      subtypeCode: 16,
      visible: true,
      renderer: classBreaksRenderer,
      popupTemplate: popupTemplate
    }
  ]
});
map.add(stgl);

數據可視化

SubtypeGroupLayer 中的特征通過將 Renderer 設置為每個子層的 renderer 屬性來可視化。可以使用 SimpleRenderer 使用相同的符號、使用 UniqueValueRenderer 按類型或使用 ClassBreaksRenderer 使用分類分隔符來可視化要素。

已知限製

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 SubtypeGroupLayer。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。