基本信息
以下是所在類或對象的基本信息。
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 使用分類分隔符來可視化要素。
已知限製
- SubtypeGroupLayer 僅在 2D MapViews 中受支持。
- Clustering 當前不受支持。
- Visual variables 當前不受支持。
- DotDensityRenderer 當前不受支持。
- Legend 小部件不支持
SubtypeGroupLayer
。 - 可以通過 applyEdits() 進行編輯,但是,Editor 小部件當前不支持
SubtypeGroupLayer
。
相關用法
- JavaScript ArcGIS SubtypeGroupLayer.on用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.sublayers用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.timeOffset用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.fields用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.maxScale用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer layerview-create-error事件用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.layerId用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer refresh事件用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.queryFeatureCount用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.queryAttachments用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.timeExtent用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.objectIdField用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer layerview-create事件用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.queryExtent用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.fieldsIndex用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.getFieldDomain用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.visible用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.refreshInterval用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.createQuery用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer edits事件用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.fullExtent用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.when用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.addAttachment用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.effect用法及代碼示例
- JavaScript ArcGIS SubtypeGroupLayer.formTemplate用法及代碼示例
注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 SubtypeGroupLayer。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。