SubtypeSublayer

AMD: require(["geoscene/layers/support/SubtypeSublayer"], (SubtypeSublayer) => { /* code goes here */ });
ESM: import SubtypeSublayer from "@geoscene/core/layers/support/SubtypeSublayer";
类: geoscene/layers/support/SubtypeSublayer
起始版本:GeoScene Maps SDK for JavaScript 4.20

代表 SubtypeGroupLayer 中的子图层。每个 SubtypeSublayer 都不是独立服务,而是每个子图层对应于源要素服务中的一个子类型。此模式允许对每个子图层彼此独立地进行符号化,而无需为每个子图层提供单独的服务。此关系不同于 MapImageLayer 及其子图层之间的关系。对于 MapImageLayer,其子图层表示各个地图服务。

SubtypeSublayers 由其唯一的 subtypeCode 进行标识。您可在初始化 SubtypeGroupLayer 时配置每个子图层的属性

另请参阅
示例
// Only includes one SubtypeSublayer from the SubtypeGroupLayer
let layer = new SuptypeGroupLayer({
  url: "https://sampleserver7.arcgisonline.com/server/rest/services/UtilityNetwork/NapervilleElectric/FeatureServer/0",
  sublayers: [{  // autocasts as a Collection of SubtypeSublayers
    subtypeCode: 14,
    visible: true,
    renderer: {
      type: "simple",  // autocasts as a SimpleRenderer()
      symbol: {
        type: "simple-marker",  // autocasts as a SimpleMarkerSymbol()
        style: "circle",
        color: [120, 120, 120, 255],
        size: 6
      }
    }
  }]
});

构造函数

new SubtypeSublayer(properties)
参数
properties Object
optional

有关可能传递给构造函数的所有属性的列表,请参见属性

属性概述

名称 类型 描述
Boolean

确定图层是否可编辑。

更多详情
SubtypeSublayer
Field[]

图层中的字段数组。

更多详情
SubtypeSublayer
FormTemplate

在关联图层的 FeatureForm 中使用的 template

更多详情
SubtypeSublayer
LabelClass[]

此图层的标注定义,指定为 LabelClass 的数组。

更多详情
SubtypeSublayer
Boolean

指示是否显示此图层的标注。

更多详情
SubtypeSublayer
Boolean

指示图层是否将包含在图例中。

更多详情
SubtypeSublayer
Number

图层在视图中可见时的最大比例 (放至最大)。

更多详情
SubtypeSublayer
Number

图层在视图中可见时的最小比例 (缩至最小)。

更多详情
SubtypeSublayer
Number

图层的不透明度。

更多详情
SubtypeSublayer
Boolean

指示单击图层中的要素时是否显示弹出窗口。

更多详情
SubtypeSublayer
PopupTemplate

图层的弹出模板。

更多详情
SubtypeSublayer
渲染器

分配给图层的渲染器。

更多详情
SubtypeSublayer
Number

表示基于 SubtypeGroupLayer 创建的 SubtypeSublayer 的唯一标识符。

更多详情
SubtypeSublayer
FeatureTemplate[]

在要素图层中定义的要素模板数组。

更多详情
SubtypeSublayer
String

用于在某些地方标识它的图层标题,例如 Legend 微件。

更多详情
SubtypeSublayer
String对于 SubtypeSublayer,类型总是 "subtype-sublayer"更多详情SubtypeSublayer
Boolean

指示图层在 View 中是否可见。

更多详情
SubtypeSublayer

属性详细信息

editingEnabled Boolean

确定图层是否可编辑。

默认值:true
另请参阅
自动转换自 Object[]

图层中的字段数组。每个字段都表示一个属性,该属性可能包含图层中每个要素的值。例如,名为 POP_2015 的字段将有关总人口的信息存储为每个要素的数值;此值表示居住在要素地理范围内的总人数。

示例
// define each field's schema
const fields = [
 new Field({
   name: "ObjectID",
   alias: "ObjectID",
   type: "oid"
 }), new Field({
   name: "description",
   alias: "Description",
   type: "string"
 }), new Field ({
   name: "title",
   alias: "Title",
   type: "string"
 })
];

// See the sample snippet for the source property
const layer = new SubtypeSublayer({
  // Object ID field is inferred from the fields array
  fields: fields
});

在关联图层的 FeatureForm 中使用的 template。在图层 FeatureForm 上设置的所有属性和字段配置都通过 FormTemplate 进行处理。

示例
// Create the Field Elements to pass into the template
const fieldElement1 = new FieldElement({
  fieldName: "firstname",
  label: "First name",
  description: "First name of emergency contact"
});

const fieldElement2 = new FieldElement({
  fieldName: "lastname",
  label: "Last name",
  description: "Last name of emergency contact"
});

// Create the form's template
const formTemplate = new FormTemplate({
  title: "Emergency information",
  description: "In case of emergency, update any additional information needed",
  elements: [fieldElement1, fieldElement2] // pass in array of field elements from above
});

// Pass the template to the layer
subtypeSublayer.formTemplate = formTemplate;

// Pass the layer to the FeatureForm
const form = new FeatureForm({
  container: "form", // html div referencing the form
  layer: subtypeSublayer
});
自动转换自 Object[]

此图层的标注定义,指定为 LabelClass 的数组。使用此属性可以指定图层的标注属性,例如标注表达式、放置和大小。

具有不同 where 子句的多个标注类可用于在同一要素上定义具有不同样式的多个标注。同样,可以使用多个标注类来标注不同类型的要素 (例如,湖泊的蓝色标注和公园的绿色标注)。

请参阅标注指南页面,了解更多信息和已知限制。

已知限制

3D SceneViews 仅支持为每个要素显示一个 LabelClass

示例
const statesLabelClass = new LabelClass({
  labelExpressionInfo: { expression: "$feature.NAME" },
  symbol: {
    type: "text",  // autocasts as new TextSymbol()
    color: "black",
    haloSize: 1,
    haloColor: "white"
  }
});

subtypeSubLayer.labelingInfo = [ statesLabelClass ];
labelsVisible Boolean

指示是否显示此图层的标注。如果为 true,标注将按 labelingInfo 属性中定义的方式显示。

已知限制

3D SceneViews 仅支持为每个要素显示一个 LabelClass

默认值:true
legendEnabled Boolean

指示图层是否将包含在图例中。

默认值:true
maxScale Number

图层在视图中可见时的最大比例 (放至最大)。如果地图放大至超过此比例,则图层将不可见。值为 0 表示该图层没有最大比例。maxScale 值应始终小于 minScale 值,并且大于或等于服务规范。

默认值:0
minScale Number

图层在视图中可见时的最小比例 (缩至最小)。如果地图缩小到超过此比例,则图层将不可见。值为 0 表示该图层没有最小比例。minScale 值应始终大于 maxScale 值,并且小于或等于服务规范。

默认值:0
opacity Number

图层的不透明度。此值的范围在 10 之间,其中 0 是 100% 透明,而 1 为完全不透明。

默认值:1
示例
// Makes the layer 50% transparent
layer.opacity = 0.5;
popupEnabled Boolean

指示单击图层中的要素时是否显示弹出窗口。该图层需要具有一个 popupTemplate,以定义应在弹出窗口中显示哪些信息。或者,如果 Popup.defaultPopupTemplateEnabled 设置为 true 时,则可自动使用默认弹出模板。

默认值:true
另请参阅
popupTemplate PopupTemplateautocast

图层的弹出模板。在图层上设置时,popupTemplate 允许用户在使用文本和/或图表选择要素时访问属性并在视图的弹出窗口中显示其值。有关 PopupTemplate 如何与 FeatureLayer 交互的例子,请参阅 PopupTemplate sample

Popup.defaultPopupTemplateEnabled 设置为 true 时,如果未定义 popupTemplate,则自动使用默认弹出模板。

另请参阅

分配给图层的渲染器。渲染器定义如何可视化图层中的每个要素。根据渲染器类型,可以使用相同的符号或基于提供的属性字段或函数的值使用不同的符号来可视化要素。

但是,从客户端要素创建 FeatureLayer 时,必须在图层的构造函数中指定此属性以及 sourcefieldsobjectIdField 属性。

示例
// all features in the layer will be visualized with
// a 6pt black marker symbol and a thin, white outline
layer.renderer = {
  type: "simple",  // autocasts as new SimpleRenderer()
  symbol: {
    type: "simple-marker",  // autocasts as new SimpleMarkerSymbol()
    size: 6,
    color: "black",
    outline: {  // autocasts as new SimpleLineSymbol()
      width: 0.5,
      color: "white"
    }
  }
};
subtypeCode Number

表示基于 SubtypeGroupLayer 创建的 SubtypeSublayer 的唯一标识符。

默认值:null

在要素图层中定义的要素模板数组。

title String

用于在某些地方标识它的图层标题,例如 Legend 微件。标题设置为图层的子类型描述。

type Stringreadonly

对于 SubtypeSublayer,类型总是 "subtype-sublayer"

visible Boolean

指示图层在 View 中是否可见。当为 false 时,图层仍可能添加到视图引用的 Map 实例中,但其要素将在视图中不可见。

默认值:true
示例
// The layer is no longer visible in the view
layer.visible = false;

方法概述

名称 返回值类值 描述
PopupTemplate

为图层创建一个弹出模板,使用图层的所有字段进行填充。

更多详情
SubtypeSublayer
Field

返回字段名称的 Field 实例 (不区分大小写)。

更多详情
SubtypeSublayer
Domain

返回与给定字段名称相关联的 Domain

更多详情
SubtypeSublayer

方法详细说明

createPopupTemplate(options){PopupTemplate}

为图层创建一个弹出模板,使用图层的所有字段进行填充。

参数
optional

用于创建弹出模板的选项。

返回
类型 描述
PopupTemplate 弹出模板,如果图层没有任何字段,则为 null
getField(fieldName){Field}

返回字段名称的 Field 实例 (不区分大小写)。

参数
fieldName String

字段名称。

返回
类型 描述
Field 匹配字段或 undefined
另请参阅
getFieldDomain(fieldName){Domain}

返回与给定字段名称相关联的 Domain。域可以是 CodedValueDomainRangeDomain

参数
fieldName String

字段名称。

返回
类型 描述
Domain 与给定要素的给定字段名称相关联的 Domain 对象。
示例
// Get a range domain associated with the first feature
// returned from queryFeatures().
subtypeSublayer.queryFeatures(query).then(function(results){
  const domain = subtypeSublayer.getFieldDomain("Height");
  console.log("domain", domain)
});

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。请参阅浏览器弃用帖子以获取更多信息