當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


JavaScript ArcGIS size.createAgeRenderer用法及代碼示例


基本信息

以下是所在類或對象的基本信息。

AMD: require(["esri/smartMapping/renderers/size"], (sizeRendererCreator) => { /* code goes here */ });

ESM: import * as sizeRendererCreator from "@arcgis/core/smartMapping/renderers/size";

對象: esri/smartMapping/renderers/size

自從:用於 JavaScript 4.2 的 ArcGIS API

用法說明

size.createAgeRenderer函數(或屬性)的定義如下:

createAgeRenderer (params) {Promise<AgeRendererResult>}


自從:ArcGIS 適用於 JavaScript 4.9 的 API

根據一個或多個字段生成表示特征年齡的連續大小Renderer。特征的年齡是根據給定的 startTimeendTime 計算的,其中之一必須是輸入 layer 中的日期字段。此方法生成 Arcade 表達式並計算表達式輸出的統計信息以完成此操作。生成的渲染器包含一個連續大小的可視變量,它將最佳大小映射到從匯總統計返回的數據值。

您需要提供 layerviewstartTimeendTime 來生成此渲染器。或者,您可以為可視化設置 unit。提供其他選項是為了方便更多涉及的自定義可視化創作應用程序。例如,如果您已經在另一個操作中生成了統計信息,則可以將統計信息對象傳遞給 statistics 參數以避免對服務器進行額外調用。

參數:

規格:
類型說明
params Object

用於為從開始和/或結束日期字段返回的時間數據生成年齡的連續大小可視化的輸入參數。有關每個參數的詳細信息,請參見下表。

規格:

為其生成可視化的圖層。

view

View

渲染輸入層的視圖。此方法檢查視圖的背景(即底圖、Web Map背景或視圖容器)以確定輸出渲染器的最佳顏色。

startTime

Date|String|Number

字段的名稱,或表示年齡計算中開始時間的日期值。如果指定了日期值,則 endTime 參數必須引用圖層中的日期字段。

endTime

Date|String|Number

字段的名稱,或表示年齡計算中結束時間的日期值。如果指定了日期值,則 startTime 參數必須引用圖層中的日期字段。

unit

String

可選的

用於計算 endTimestartTime 之間差異的時間單位。如果未指定單位,則根據數據的分布和分布確定建議的單位。

可能的值"years"|"months"|"days"|"hours"|"minutes"|"seconds"

theme

String

可選的
默認值:high-to-low

根據有意義的數據值設置大小停止。

說明
high-to-low 最大數據值被分配最大大小。最小數據值被分配最小大小。所有其他值都被插值。
above 最大數據值被分配最大大小。平均數據值被分配最小大小。對最大數據值和平均值之間的所有其他值進行插值。這對於映射變量隨時間的增加非常有用,例如人口增加或兩個日期之間的失業。
below 最小數據值被分配最大大小。平均數據值被分配最小大小。對最小數據值和平均值之間的所有其他值進行插值。這對於繪製變量隨時間的下降情況很有用,例如人口減少或兩個日期之間的失業率。

可能的值"high-to-low"|"above"|"below"

maxValue

Number

可選的

設置可視化的最大年齡。即使存在高於此值的數據,也隻會計算 minValuemaxValue 之間的值的統計信息。在 4.15 版添加。

minValue

Number

可選的

設置可視化的最小年齡。即使存在低於此值的數據,也隻會計算 minValuemaxValue 之間的值的統計信息。在 4.15 版添加。

outlineOptimizationEnabled

Boolean

可選的
默認值:錯誤的

僅適用於多邊形圖層。指示多邊形輪廓寬度是否應根據視圖比例而變化。設置後,必須在 view 參數中提供有效的 MapView 實例。 3D SceneViews 不支持此選項。

sizeOptimizationEnabled

Boolean

可選的
默認值:錯誤的

指示符號大小是否應根據視圖比例而變化。設置後,必須在 view 參數中提供有效的 MapView 實例。 3D SceneViews 不支持此選項。

legendOptions

Object

可選的

提供用於修改說明可視化的Legend 屬性的選項。

規格:
title

String

可選的

Legend 中用於表示年齡大小漸變的標題。

showLegend

Boolean

可選的

指示是否在圖例中包含年齡渲染器。

可選的

summaryStatistics 函數生成的統計對象。 createAgeRenderer() 方法生成 Arcade 表達式並針對該層執行統計查詢以獲取表達式的結果。如果已經生成了表達式的統計信息,則在此處傳遞對象以避免進行第二次統計查詢。

sizeScheme

SizeScheme

可選的

在創作應用程序中,用戶可以選擇預定義的尺寸方案。將方案對象傳遞給此屬性以避免根據視圖的背景獲取一個。

symbolType

String

可選的
默認值:二維

要生成的符號類型。這取決於您正在使用的視圖和所需的可視化。不需要為具有mesh 幾何類型的圖層指定此參數。可能的值如下所述。

說明
2d 使用 2D 符號(例如 SimpleMarkerSymbolSimpleLineSymbolSimpleFillSymbol )生成可視化。如果為 MapView 中的數據生成可視化,請使用此選項。
3d-flat 使用具有平麵符號圖層(例如 IconSymbol3DLayerLineSymbol3DLayerFillSymbol3DLayer )的 3D 符號生成可視化。如果為 SceneView 中的數據生成 2D 可視化,請使用此選項。
3d-volumetric 使用具有體積符號圖層的 3D 符號生成可視化,例如 ObjectSymbol3DLayerPathSymbol3DLayerExtrudeSymbol3DLayer 。如果為 SceneView 中的數據生成 3D 可視化,請使用此選項。如果使用此選項,則必須向 view 參數提供 SceneView 實例。
3d-volumetric-uniform 使用具有體積符號圖層的統一大小的 3D 符號生成可視化。如果為 SceneView 中的數據生成 3D 可視化,並且符號的大小應一致,例如球體,請使用此選項。如果使用此選項,則必須向 view 參數提供 SceneView 實例。

可能的值"2d"|"3d-flat"|"3d-volumetric"|"3d-volumetric-uniform"

defaultSymbolEnabled

Boolean

可選的
默認值:真的

在渲染器上啟用 defaultSymbol 並將其分配給沒有值的函數。

signal

AbortSignal

可選的

允許可取消的請求。如果取消,promise 將被拒絕,並出現名為 AbortError 的錯誤。另見AbortController

返回:

類型 說明
Promise<AgeRendererResult> 解析為 AgeRendererResult 的實例。

例子:

const layer = new FeatureLayer({
  url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/311_Service_Requests_from_2015_50k/FeatureServer/0"
});

// visualization based age of incidents closed passed their due date
// or the number of days an incident was overdue at the time of closure.

const ageParams = {
  layer: layer,
  view: view,
  startTime: "Due_Date",
  endTime: "Closed_Date",
  unit: "days"
};

// when the promise resolves, apply the renderer to the layer
sizeRendererCreator.createAgeRenderer(ageParams)
  .then(function(response){
    layer.renderer = response.renderer;
  });
const layer = new CSVLayer({
  url: "https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_week.csv",
  copyright: "USGS Earthquakes"
});

// visualization based off current age of incident
const ageParams = {
  layer: layer,
  view: view,
  startTime: "time",
  endTime: Date.now(),
  legendOptions: {
    title: "Time since earthquake struck"
  }
};

// when the promise resolves, apply the renderer to the layer
sizeRendererCreator.createAgeRenderer(ageParams)
  .then(function(response){
    layer.renderer = response.renderer;
  });

相關用法


注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 size.createAgeRenderer。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。