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


JavaScript ArcGIS type.createRenderer用法及代碼示例

基本信息

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

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

ESM: import * as typeRendererCreator from "@arcgis/core/smartMapping/renderers/type";

對象: esri/smartMapping/renderers/type

自從:用於 JavaScript 4.4 的 ArcGIS API

用法說明

type.createRenderer函數(或屬性)的定義如下:

createRenderer (params) {Promise<RendererResult>}


生成可以直接應用於支持渲染器的LayerRenderer。渲染器包含表示從指定字段返回的字符串或數值的唯一符號。

在大多數情況下,您將提供 layerviewfield 來生成此渲染器。在這種情況下,字段的值並不為人所知,並且用戶不知道在可視化中使用哪種顏色。您還可以使用 valueExpression 而不是 field 根據在運行時執行的腳本返回的值來可視化特征。

參數:

規格:
類型說明
params Object

根據從給定字段返回的數據生成符號以表示唯一類型的輸入參數。有關每個參數的詳細信息,請參見下表。

規格:

為其生成渲染器的層。

view

View

可選的

渲染輸入層的視圖。此方法檢查視圖的背景(即底圖、Web Map背景或視圖容器)以確定輸出渲染器的最佳顏色。在實踐中應始終設置此參數,但如果未提供此參數,則此方法將假定生成的渲染器將顯示在淺色背景上。當使用 valueExpression 創建渲染器或用於在 SceneView 中顯示的渲染器時,此參數是必需的。

field

String

可選的

要從中提取唯一值的字段的名稱,這些值將用作數據驅動的可視化的基礎。如果使用 valueExpression,則忽略此屬性。

numTypes

Number

可選的
默認值: 10

渲染器顯示的類型(或類別)的數量。使用-1 顯示所有返回的類型。

sortBy

String

可選的
默認值:數數

指示值應如何在 Legend 中排序。有關可以傳遞給此參數的值的信息,請參見下表。

可能的值 說明
count 唯一值/類型將根據屬於每個類別的特征數量從高到低排序。
value 唯一值/類型將按字母順序排序。

可能的值"count"|"value"

typeScheme

TypeScheme

可選的

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

valueExpression

String

可選的

遵循 Arcade Visualization Profile 定義的規範的 Arcade 表達式。表達式可以使用 $feature 全局變量引用字段值,並且必須返回字符串或數字。此屬性覆蓋 field 屬性,因此用於代替輸入 field 值。

valueExpressionTitle

String

可選的

說明從 valueExpression 返回的值的文本。這是由Legend 小部件使用的。

outlineOptimizationEnabled

Boolean

可選的
默認值:錯誤的

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

sizeOptimizationEnabled

Boolean

可選的
默認值:錯誤的

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

legendOptions

Object

可選的

提供用於為字段設置標題的選項,該字段將覆蓋服務中定義的字段別名。此標題將表示 Legend 中的字段。

規格:
title

String

用於表示 Legend 中給定字段的標題。

defaultSymbolEnabled

Boolean

可選的

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

symbolType

String

可選的
默認值:二維

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

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

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

statistics

UniqueValuesResult

可選的

uniqueValues 函數生成的統計對象。如果該字段的統計信息已經生成,則在此處傳遞對象以避免向服務器進行第二次統計查詢。

colorMixMode

String

可選的
默認值:代替

此選項僅適用於生成網格 SceneLayers 的渲染器.指定符號顏色如何應用於幾何顏色/紋理。請參閱中的文檔FillSymbol3DLayer.material了解更多上下文。有關可能的值,請參見下表。

說明
tint 將符號 color 應用於去飽和幾何體/紋理顏色。
replace 移除幾何/紋理顏色並應用符號 color
multiply 將幾何/紋理顏色值與符號 color 值相乘。結果是顏色較深。與白色相乘可保持幾何顏色相同。
returnAllCodedValues

Boolean

可選的

指示如果給定字段具有域值,則應返回所有域代碼。

signal

AbortSignal

可選的

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

返回:

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

例子:

let layer = new FeatureLayer({
  portalItem: { id: "5ce5374a461e45bab714b43ffedf151d" }
});

// visualization based on categorical field
let typeParams = {
  layer: layer,
  view: view,
  field: "Party"
};

// when the promise resolves, apply the visual variables to the renderer
typeRendererCreator.createRenderer(typeParams)
  .then(function(response){
    layer.renderer = response.renderer;
  });
let layer = new FeatureLayer({
  url: "https://services.arcgis.com/V6ZHFr6zdgNZuVG0/arcgis/rest/services/counties_politics_poverty/FeatureServer/0"
});

// visualization based off Arcade expression
let typeParams = {
  layer: layer,
  valueExpression: "IIF($feature.DEMOCRAT > $feature.REPUBLICAN, 'Democrat', 'Republican', 'Tied')",
  view: view,
  valueExpressionTitle: "Election Winner"
};

// when the promise resolves, apply the visual variables to the renderer
typeRendererCreator.createRenderer(typeParams)
  .then(function(response){
    layer.renderer = renderer;
  });

相關用法


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