SubtypeSublayer

AMD: require(["geoscene/layers/support/SubtypeSublayer"], (SubtypeSublayer) => { /* code goes here */ });
ESM: import SubtypeSublayer from "@geoscene/core/layers/support/SubtypeSublayer.js";
类: geoscene/layers/support/SubtypeSublayer
继承于:SubtypeSublayer Accessor
起始版本: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: "url",
  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

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

属性概述

所有属性都可以设置、获取和监听。请参阅使用属性主题。
显示继承属性 隐藏继承属性
名称 类型 描述
Capabilities

描述图层的受支持功能。

更多详情
SubtypeSublayer
String

类的名称。

更多详情
Accessor
Boolean

确定图层是否可编辑。

更多详情
SubtypeSublayer
Boolean

指示考虑到当前登录用户的权限时,该图层是否可编辑,以及父子类型图层组是否可修改。

更多详情
SubtypeSublayer
Field[]

图层中的字段数组。

更多详情
SubtypeSublayer
FormTemplate

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

更多详情
SubtypeSublayer
String

图层中要素的几何类型。

更多详情
SubtypeSublayer
String

分配给图层的唯一 ID。

更多详情
SubtypeSublayer
LabelClass[]

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

更多详情
SubtypeSublayer
Boolean

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

更多详情
SubtypeSublayer
Boolean

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

更多详情
SubtypeSublayer
Error

加载时发生的错误,返回 Error 对象

更多详情
SubtypeSublayer
String

load 操作的状态

更多详情
SubtypeSublayer
Object[]

加载时发生的警告列表

更多详情
SubtypeSublayer
Number

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

更多详情
SubtypeSublayer
Number

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

更多详情
SubtypeSublayer
String

oid 字段的名称,其中包含图层中每个要素的唯一值或标识符。

更多详情
SubtypeSublayer
Number

图层的不透明度。

更多详情
SubtypeSublayer
SubtypeGroupLayer

子图层所属的 SubtypeGroupLayer

更多详情
SubtypeSublayer
Boolean

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

更多详情
SubtypeSublayer
PopupTemplate

图层的弹出模板。

更多详情
SubtypeSublayer
Renderer

分配给图层的渲染器。

更多详情
SubtypeSublayer
SpatialReference

图层的空间参考。

更多详情
SubtypeSublayer
Number

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

更多详情
SubtypeSublayer
FeatureTemplate[]

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

更多详情
SubtypeSublayer
String

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

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

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

更多详情
SubtypeSublayer

属性详细信息

capabilities Capabilitiesreadonly
起始版本:GeoScene Maps SDK for JavaScript 4.27

描述图层的受支持功能。

declaredClass Stringreadonly inherited

类的名称。声明的类名称格式化为 geoscene.folder.className

editingEnabled Boolean

确定图层是否可编辑。

默认值:true
另请参阅
effectiveEditingEnabled Booleanreadonly
起始版本:GeoScene Maps SDK for JavaScript 4.26

指示考虑到当前登录用户的权限时,该图层是否可编辑,以及父子类型图层组是否可修改。

fields Field[]readonly

图层中的字段数组。每个字段都表示一个属性,该属性可能包含图层中每个要素的值。例如,名为 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
});
geometryType Stringreadonly
起始版本:GeoScene Maps SDK for JavaScript 4.27

图层中要素的几何类型。所有要素必须为相同类型。

可能值"point"|"multipoint"|"polyline"|"polygon"|"multipatch"|"mesh"

id Stringreadonly

分配给图层的唯一 ID。

自动转换自 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
loadError Errorreadonly

加载时发生的错误,返回 Error 对象

默认值:null
loadStatus Stringreadonly

load 操作的状态

描述
not-loaded 尚未加载
loading 正在加载
loaded 对象已加载且未出现错误
failed 无法加载对象的资源。有关更多详情,请参阅 loadError

可能值"not-loaded"|"loading"|"failed"|"loaded"

默认值:not-loaded
loadWarnings Object[]readonly

加载时发生的警告列表

maxScale Number

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

默认值:0
minScale Number

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

默认值:0
objectIdField Stringreadonly

oid 字段的名称,其中包含图层中每个要素的唯一值或标识符。从客户端要素集合构建 FeatureLayer 时,需要此属性。如果未指定,将从 fields 数组中推断。

另请参阅
opacity Number

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

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

子图层所属的 SubtypeGroupLayer

popupEnabled Boolean

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

默认值:true
另请参阅
popupTemplate PopupTemplateautocast

图层的弹出模板。在图层上设置时,popupTemplate 允许用户在使用文本和/或图表选择要素时访问属性并在视图的弹出窗口中显示其值。

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"
    }
  }
};
spatialReference SpatialReference

图层的空间参考。从 url 创建图层时,将从服务中读取空间参考。

从客户端要素创建 FeatureLayer 时,该属性将从 source 属性中提供的要素的几何进行推断。

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;

方法概述

显示继承的方法 隐藏继承的方法
名称 返回值类值 描述
Promise<FeatureEditResult>

将附件添加到要素。

更多详情
SubtypeSublayer

添加一个或多个与对象生命周期相关联的句柄

更多详情
Accessor

如果 load() 操作已在进行中,则取消它。

更多详情
SubtypeSublayer
PopupTemplate

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

更多详情
SubtypeSublayer
Promise<FeatureEditResult>

从要素中删除附件。

更多详情
SubtypeSublayer
Field

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

更多详情
SubtypeSublayer
Domain

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

更多详情
SubtypeSublayer
Boolean

如果存在指定的句柄组,则返回 true。

更多详情
Accessor
Boolean

isFulfilled() 可用于验证创建类的实例是否已完成 (已解决或已拒绝)。

更多详情
SubtypeSublayer
Boolean

isRejected() 可用于验证创建类的实例是否被拒绝。

更多详情
SubtypeSublayer
Boolean

isResolved() 可用于验证创建类的实例是否已解决。

更多详情
SubtypeSublayer
Promise

加载此类引用的资源。

更多详情
SubtypeSublayer
Promise<Object>

查询与要素关联的附件的信息。

更多详情
SubtypeSublayer

移除对象拥有的句柄组。

更多详情
Accessor
Promise<FeatureEditResult>

更新要素的现有附件。

更多详情
SubtypeSublayer
Promise

when() 一旦创建了类的实例,就可以使用 。

更多详情
SubtypeSublayer

方法详细说明

addAttachment(feature, attachment){Promise<FeatureEditResult>}

将附件添加到要素。仅当图层的 capabilities.data.supportsAttachmenttrue 时,此操作才可用。

参数
feature Graphic

要与添加的附件相关联的要素。

HTML 表单,其中包含一个文件上传字段,指定要添加为附件的文件。

返回
类型 描述
Promise<FeatureEditResult> 解析后,将返回 FeatureEditResult 对象。
另请参阅
示例
view.when(function () {
  view.on("click", function (event) {

    view.hitTest(event).then(function (response) {
      const feature = response.results[0].graphic;

      // The form is defined as below in the html.
      // For enterprise services:
      // 1. File input name must be "attachment"
      // <form id="attachmentForm">
      //   Select a file: <input type="file" name="attachment">
      // </form>
      const attachmentForm = document.getElementById("attachmentForm");
      const formData = new FormData(attachmentForm);

      // For enterprise services - add input with name:f and value:json
      formData.append("f","json");
      const form = new FormData();
      form.set("attachment", file);
      form.append("f","json")
      let form = document.getElementById("myForm");

      // Add an attachment to the clicked feature.
      // The attachment is taken from the form.
      layer.addAttachment(feature, form).then(function (result) {
        console.log("attachment added: ", result);
      })
      .catch(function (err) {
        console.log("attachment adding failed: ", err);
      });
    });
  });
});
addHandles(handleOrHandles, groupKey)inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

添加一个或多个与对象的生命周期相关联的句柄。当对象被销毁时,将移除句柄。

// Manually manage handles
const handle = reactiveUtils.when(
  () => !view.updating,
  () => {
    wkidSelect.disabled = false;
  },
  { once: true }
);

this.addHandles(handle);

// Destroy the object
this.destroy();
参数
handleOrHandles WatchHandle|WatchHandle[]

对象销毁后,标记为要移除的句柄。

groupKey *
optional

标识句柄应添加到的组的键。组中的所有句柄稍后都可使用 Accessor.removeHandles() 进行删除。如果未提供键,则句柄将被添加到默认组。

cancelLoad()

如果 load() 操作已在进行中,则取消它。

createPopupTemplate(options){PopupTemplate}

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

参数
optional

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

返回
类型 描述
PopupTemplate 弹出模板,如果图层没有任何字段,则为 null
deleteAttachments(feature, attachmentIds){Promise<FeatureEditResult>}
起始版本:GeoScene Maps SDK for JavaScript 4.26

从要素中删除附件。仅当图层的 capabilities.data.supportsAttachment 设置为 true 时,此操作才可用。

参数
feature Graphic

包含要删除的附件的要素。

attachmentIds Number[]

要删除的附件的 Id。

返回
类型 描述
Promise<FeatureEditResult> 解析后,将返回 FeatureEditResult 对象。FeatureEditResult 指示编辑是否成功。如果成功,则结果的 objectId 是新附件的 Id。如果不成功,它还包括错误 name 和错误 message
另请参阅
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)
});
hasHandles(groupKey){Boolean}inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

如果存在指定的句柄组,则返回 true。

参数
groupKey *
optional

组键。

返回
类型 描述
Boolean 如果存在指定的句柄组,则返回 true
示例
// Remove a named group of handles if they exist.
if (obj.hasHandles("watch-view-updates")) {
  obj.removeHandles("watch-view-updates");
}
isFulfilled(){Boolean}

isFulfilled() 可用于验证创建类的实例是否已完成 (已解决或已拒绝)。如果满足,则返回 true

返回
类型 描述
Boolean 指示创建类的实例是否已完成 (已解决或已拒绝)。
isRejected(){Boolean}

isRejected() 可用于验证创建类的实例是否被拒绝。如果被拒绝,则返回 true

返回
类型 描述
Boolean 指示创建类的实例是否已被拒绝。
isResolved(){Boolean}

isResolved() 可用于验证创建类的实例是否已解决。如果已解决,则返回 true

返回
类型 描述
Boolean 指示创建类的实例是否已解决。
load(signal){Promise}

加载此类引用的资源。如果视图是使用地图实例构造的,则此方法会自动为 View 及其在 Map 中引用的所有资源执行。

开发人员在访问不会在 View 中加载的资源时,必须调用此方法。

load() 方法仅在第一次调用时触发资源的加载。随后的调用将返回相同的 promise。

可以提供一个 signal 来停止对 Loadable 实例加载状态感兴趣。当信号中止时,实例不会停止其加载过程,只有 cancelLoad 可以中止它。

参数
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为 AbortError错误。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。

返回
类型 描述
Promise 资源已加载时解析。
queryAttachments(attachmentQuery, options){Promise<object>}
起始版本:GeoScene Maps SDK for JavaScript 4.26

查询与要素关联的附件的信息。如果图层的 capabilities.data.supportsAttachment 属性为 false,它将返回错误。如果图层的 capabilities.operations.supportsQueryAttachmentstrue,则可查询多个要素的附件。

已知限制

当图层的 capabilities.operations.supportsQueryAttachments 属性为 false 时,AttachmentQuery.objectIds 属性只接受一个 objectId

参数
attachmentQuery AttachmentQuery autocast
自动转换自 Object

指定查询的附件参数。

options Object
optional

具有以下属性的对象。

规范
optional

可用于中止异步任务的信号对象。当发出中止信号时,返回的 Promise 将被拒绝,并具有一个名为 AbortError错误。另请参阅 AbortController 以获取有关如何构造可用于传递中止信号的控制器的更多信息。

返回
类型 描述
Promise<Object> 解析后,返回一个对象,其中包含按源要素 objectIds 分组的 AttachmentInfos
另请参阅
示例
subtypeGroupLayer.when(function () {
  // queryObjectIds for all features within the layer
  subtypeGroupLayer.queryObjectIds().then(function (objectIds) {
    // Define parameters for querying attachments,
    // query features where objectIds are less than 735,
    // and only query jpeg attachments for these features.
    let attachmentQuery = {
      objectIds: objectIds,
      definitionExpression: "OBJECTID < 735",
      attachmentTypes: ["image/jpeg"]
    };

    // Only pass in one objectId for attachmentQuery.objectIds
    // if the layer's capabilities.operations.supportsQueryAttachments is false
    subtypeGroupLayer.queryAttachments(attachmentQuery).then(function (attachments) {
      // Print out all returned attachment infos to the console.
      attachmentQuery.objectIds.forEach(function (objectId) {
        if (attachments[objectId]) {
          let attachment = attachments[objectId];
          console.group("attachment for", objectId);
          attachment.forEach(function (item) {
            console.log("attachment id", item.id);
            console.log("content type", item.contentType);
            console.log("name", item.name);
            console.log("size", item.size);
            console.log("url", item.url);
            console.groupEnd();
          });
        }
      });
    })
    .catch(function (error) {
      console.log("attachment query error", error);
    })
  });
});
removeHandles(groupKey)inherited
起始版本:GeoScene Maps SDK for JavaScript 4.25

移除对象拥有的句柄组。

参数
groupKey *
optional

要移除的组键或组键的数组或集合。

示例
obj.removeHandles(); // removes handles from default group

obj.removeHandles("handle-group");
obj.removeHandles("other-handle-group");
updateAttachment(feature, attachmentId, attachment){Promise<FeatureEditResult>}
起始版本:GeoScene Maps SDK for JavaScript 4.26

更新要素的现有附件。仅当图层的 capabilities.data.supportsAttachment 设置为 true 时,此操作才可用。

参数
feature Graphic

包含要更新的附件的要素。

attachmentId Number

要更新的附件的 Id。

HTML 表单,其中包含指向要添加为附件的文件的文件上传字段。

返回
类型 描述
Promise<FeatureEditResult> 解析后,将返回 FeatureEditResult 对象。FeatureEditResult 指示编辑是否成功。如果成功,则结果的 objectId 是新附件的 Id。如果不成功,它还包括错误 name 和错误 message
另请参阅
when(callback, errback){Promise}

when() 一旦创建了类的实例,就可以使用 。此方法接受两个输入参数:callback 函数和 errback 函数。callback 在类的实例加载时执行。errback 在类的实例无法加载时执行。

参数
callback Function
optional

当 promise 解决时调用的函数。

errback Function
optional

当 promise 失败时执行的函数。

返回
类型 描述
Promise 返回 callback 结果的新 promise,可用于链接其他函数。
示例
// Although this example uses MapView, any class instance that is a promise may use when() in the same way
let view = new MapView();
view.when(function(){
  // This function will execute once the promise is resolved
}, function(error){
  // This function will execute if the promise is rejected due to an error
});

您的浏览器不再受支持。请升级您的浏览器以获得最佳体验。