Graphic

AMD: require(["geoscene/Graphic"], (Graphic) => { /* code goes here */ });
ESM: import Graphic from "@geoscene/core/Graphic";
类: geoscene/Graphic
继承于:Graphic Accessor
起始版本:GeoScene Maps SDK for JavaScript 4.0

图形是现实世界地理现象的矢量表示。它可以包含几何符号属性。图形将显示在 GraphicsLayer 中。

要了解如何使用图形,请参阅图形简介教程。

let polyline = {
  type: "polyline",  // autocasts as new Polyline()
    paths: [
      [-111.30, 52.68],
      [-98, 49.5],
      [-93.94, 29.89]
    ]
};

let polylineSymbol = {
  type: "simple-line",  // autocasts as SimpleLineSymbol()
  color: [226, 119, 40],
  width: 4
};

let polylineAtt = {
  Name: "Keystone Pipeline",
  Owner: "TransCanada"
};

let polylineGraphic = new Graphic({
  geometry: polyline,
  symbol: polylineSymbol,
  attributes: polylineAtt
});

view.graphics.add(polylineGraphic);
另请参阅

构造函数

new Graphic(properties)
参数
properties Object
optional

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

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性主题。
显示继承属性 隐藏继承属性
名称 类型 描述
Object

当使用 envelope-aggregatecentroid-aggregateconvex-hull-aggregate 统计类型执行统计查询时,aggregateGeometries 包含空间聚合几何。

更多详情
Graphic
Object

与图形相关的字段和字段值的名称-值对。

更多详情
Graphic
String

类的名称。

更多详情
Accessor
Geometry

定义图形位置的几何图形。

更多详情
Graphic
Boolean

指示图形是指聚合图形还是聚类图形。

更多详情
Graphic
Layer

如果适用,则引用存储图形的图层。

更多详情
Graphic
PopupTemplate

选择图形时弹出窗口中显示的内容模板。

更多详情
Graphic
Symbol

图形的符号

更多详情
Graphic
Boolean

指示图形的可见性。

更多详情
Graphic

属性详细信息

aggregateGeometries Object
起始版本:GeoScene Maps SDK for JavaScript 4.23

当使用 envelope-aggregatecentroid-aggregateconvex-hull-aggregate 统计类型执行统计查询时,aggregateGeometries 包含空间聚合几何。aggregateGeometries 上的每个属性均使用统计信息字段进行了填充,其中包含与聚合统计信息类型相匹配的聚合几何。

另请参阅
示例
// average of age fields by regions
const ageStatsByRegion = new StatisticDefinition({
  onStatisticField: field,
  outStatisticFieldName: "avgAge",
  statisticType: "avg"
});

// extent encompassing all features by region
const aggregatedExtent = new StatisticDefinition({
  statisticType: "envelope-aggregate",
  outStatisticFieldName: "aggregateExtent",
});

// group the statistics by Region field
// get avg age by Regions and extent of each region
const query = layer.createQuery();
query.groupByFieldsForStatistics = ["Region"];
query.outStatistics = [consumeStatsByRegion, aggregatedExtent];
layer.queryFeatures(query).then((results) => {
  results.features.forEach((feature) => {
    if (feature.attributes.Region === "Midwest") {
       view.goTo(feature.aggregateGeometries.aggregateExtent);
    }
  });
});
attributes Object

与图形相关的字段和字段值的名称-值对。

示例
let graphic = new Graphic();
graphic.attributes = {
  "name": "Spruce",
  "family": "Pinaceae",
  "count": 126
};
declaredClass Stringreadonly inherited
起始版本:GeoScene Maps SDK for JavaScript 4.7

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

定义图形位置的几何图形。

在地理或公制坐标系中定义的 Z 值 用米表示。然而,在使用投影坐标系的局部场景中,垂直单位假定为与服务指定的水平单位相同。

示例
// First create a point geometry
let point = {
  type: "point",  // autocasts as new Point()
  longitude: -71.2643,
  latitude: 42.0909
};

// Create a symbol for drawing the point
let markerSymbol = {
  type: "simple-marker",  // autocasts as new SimpleMarkerSymbol()
  color: [226, 119, 40]
};

// Create a graphic and add the geometry and symbol to it
let pointGraphic = new Graphic({
  geometry: point,
  symbol: markerSymbol
});
isAggregate Booleanreadonly
起始版本:GeoScene Maps SDK for JavaScript 4.18

指示图形是指聚合图形还是聚类图形。聚合图形表示要素的聚类。如果图形为聚合图形,则可使用它的 Object ID查询组成聚类的要素。

另请参阅
layer Layer

如果适用,则引用存储图形的图层。

popupTemplate PopupTemplateautocast

在选择图形时,用于在 Popup 中显示内容的模板。PopupTemplate 可用于访问图形的属性并在视图的默认弹出窗口中显示它们的值。有关如何在弹出窗口中显示属性值的详细信息,请参阅 PopupTemplate 的文档。

从 4.8 开始,要获取图形的实际 popupTemplate,请参阅 getEffectivePopupTemplate() 方法,该方法可返回此值,或返回图形图层的 popupTemplate

另请参阅
示例
// The following snippet shows how to set a popupTemplate
// on the returned results (features) from identify

 idResult.feature.popupTemplate = {
 title: "{NAME}",
   content: [{
     // Pass in the fields to display
     type: "fields",
     fieldInfos: [{
       fieldName: "NAME",
       label: "Name"
     }, {
       fieldName: "REGION",
       label: "Region"
    }]
   }]
};

图形的符号。为图形选择符号取决于视图类型 (SceneView 或 MapView),以及图形的几何类型

当父图层为 GraphicsLayer 时,每个图形都可指定自己的符号。对于 FeatureLayer,开发人员不应设置每个图形的符号,因为图形的渲染属性由图层的渲染器确定。

要在运行时更改 GraphicsLayerview.graphics 中的图形符号,可以执行以下操作之一:

  1. 克隆符号并更改其属性。
  2. 为图形指定新符号。
示例
view.on("click", function(event){
  let graphic = new Graphic({
    geometry: event.mapPoint,
    symbol: {
      type: "simple-marker", // autocasts as new SimpleMarkerSymbol()
      color: "blue",
      size: 8,
      outline: { // autocasts as new SimpleLineSymbol()
        width: 0.5,
        color: "darkblue"
      }
    }
  });
});
visible Boolean

指示图形的可见性。

默认值:true

方法概述

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

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

更多详情
Accessor
this

创建此对象的深度克隆。

更多详情
Graphic
*

创建此类的新实例并使用从 GeoScene 产品生成的 JSON 对象值对其进行初始化。

更多详情
Graphic
*

返回指定属性的值。

更多详情
Graphic
PopupTemplate

返回适用于图形的弹出窗口模板。

更多详情
Graphic
Number

如果存在,则返回与图形关联的要素的对象 ID。

更多详情
Graphic
Boolean

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

更多详情
Accessor

移除对象拥有的句柄组。

更多详情
Accessor

为指定的属性设置一个新值。

更多详情
Graphic
Object

将此类的实例转换为 GeoScene Portal JSON 表示。

更多详情
Graphic

方法详细说明

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 }
);

// Handle gets removed when the object is destroyed.
this.addHandles(handle);
参数
handleOrHandles WatchHandle|WatchHandle[]

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

groupKey *
optional

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

clone(){this}

创建此对象的深度克隆。任何通过引用存储值的属性都将被分配克隆实例上引用值的副本。

返回
类型 描述
this 调用此方法的类实例的深度克隆。
fromJSON(json){*}static

创建此类的新实例并使用从 GeoScene 产品生成的 JSON 对象值对其进行初始化。传入到输入 json 参数的对象通常来自对 REST API 中查询操作的响应或来自另一个 GeoScene 产品的 toJSON() 方法。有关何时以及如何使用该函数的详细信息和示例,请参阅指南中的使用 fromJSON() 主题。

参数
json Object

GeoScene 格式实例的 JSON 表示。有关各种输入 JSON 对象的结构示例,请参阅 GeoScene REST API 文档

返回
类型 描述
* 返回该类的新实例。
getAttribute(name){*}

返回指定属性的值。

参数
name String

属性的名称。

返回
类型 描述
* 返回由 name 指定的属性值。
getEffectivePopupTemplate(defaultPopupTemplateEnabled){PopupTemplate}
起始版本:GeoScene Maps SDK for JavaScript 4.8

返回适用于图形的弹出窗口模板。它是 popupTemplate 的值,或是来自图形图层的 popupTemplate

参数
defaultPopupTemplateEnabled Boolean
optional
默认值: false

是否启用对默认弹出模板的支持。为 true 时,如果图形及其图层均未定义弹出模板,则可能会自动创建默认弹出模板。

返回
类型 描述
PopupTemplate 返回图形的弹出窗口模板。
getObjectId(){Number}

如果存在,则返回与图形关联的要素的对象 ID。

返回
类型 描述
Number 与图形相关的要素的 ObjectID。
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");
}
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");
setAttribute(name, newValue)

为指定的属性设置一个新值。

参数
name String

要设置的属性名称。

newValue *

要在命名属性上设置的新值。

toJSON(){Object}

将此类的实例转换为 GeoScene Portal JSON 表示。有关详细信息,请参阅使用 fromJSON() 指南主题。

返回
类型 描述
Object 此类实例的 GeoScene Portal JSON 表示。

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