当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。