基本信息
以下是所在类或对象的基本信息。
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。