Graphic

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

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

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

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
可选

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

属性概述

可以设置、检索或侦听任何属性。请参阅使用属性 主题。
隐藏继承的属性 显示继承的属性
名称 类型 描述
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 API for JavaScript 4.23

当使用 envelope-aggregatecentroid-aggregateconvex-hull-aggregate 统计类型执行统计 查询时,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 API 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 API for JavaScript 4.18

指示图形是指聚合图形还是集群图形。聚合图形表示要素集群。如果一个图形是一个聚合,您可以使用它的 对象 ID查询 组成集群的特征。

另请参阅:
layer Layer

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

popupTemplate PopupTemplateautocast

用于在选择图形时在弹出窗口中显示内容的模板。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)以及图形的几何类型

当父图层为图形图层时,每个图形都可以指定自己的符号。对于 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

方法概述

名称 返回类型 描述
this更多信息

创建此对象的深度克隆。

更多信息Graphic
*更多信息

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

更多信息Graphic
*更多信息

返回指定属性的值。

更多信息Graphic
PopupTemplate更多信息

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

更多信息Graphic
Number更多信息

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

更多信息Graphic
更多信息

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

更多信息Graphic
Object更多信息

将此类的实例转换为其 GeoScene portal JSON 表示形式。

更多信息Graphic

方法详情

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 API for JavaScript 4.8

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

参数:
defaultPopupTemplateEnabled Boolean
可选
默认值:false

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

返回:
类型 说明
PopupTemplate 返回图形的弹出模板。
getObjectId(){Number}

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

返回:
类型 说明
整数 与图形关联的要素的 ObjectID。
setAttribute(name, newValue)

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

参数:
name String

要设置的属性的名称。

newValue *

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

toJSON(){Object}

将此类的实例转换为其 GeoScene portal JSON 表示形式。有关更多信息,请参阅 fromJSON()主题。

返回:
类型 说明
Object 此类示例的 GeoScene portal JSON 表现形式。

Your browser is no longer supported. Please upgrade your browser for the best experience. See our browser deprecation post for more details.