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


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

基本信息

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

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

ESM: import * as predominanceRendererCreator from "@arcgis/core/smartMapping/renderers/predominance";

對象: esri/smartMapping/renderers/predominance

自從:用於 JavaScript 4.9 的 ArcGIS API

用法說明

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

createRenderer (params) {Promise<RendererResult>}


基於一組競爭數字字段生成優勢渲染器。

可視化優勢涉及對layer’s 特征進行著色,該特征基於一組相互競爭的數字屬性中的哪個屬性在總計數中勝出或擊敗其他屬性。這方麵的常見應用包括可視化選舉結果、調查結果和人口多數。

例如,假設您有一層美國縣,其字段包含各種裁剪的總銷售額:小麥、大豆、玉米、棉花和蔬菜。如果某個要素的每個字段具有以下值:

字段名稱 數數 顏色
Wheat 130 purple
Soybeans 2000 blue
Corn 0 yellow
Cotton 300 green
Vegetables 120 red

然後渲染器用藍色表示該特征,因為大豆是主要裁剪。

基於此方法生成的 Arcade 表達式的結果確定要素的主要字段。您需要提供 layerviewfields 列表來生成此渲染器。或者,您可以將 includeSizeVariable 設置為 true 以更改每個特征的大小,以指示該特征相對於整個圖層的影響程度。您還可以將 includeOpacityVariable 設置為 true 以根據主要字段與所有其他字段相比的強度來為每個要素添加操作。對於上麵的示例,該函數可能是不透明的,因為 Soybeans 大大超過了所有其他組合的函數。如果 Soybean total 仍然是最高的,但隻有 301,那麽該特征將非常透明,表明 Soybean total 獲勝,但差距不大。

提供其他選項是為了方便更多涉及的自定義可視化創作應用程序。

參數:

規格:
類型說明
params Object

用於基於一組競爭字段生成優勢可視化的輸入參數。有關每個參數的詳細信息,請參見下表。

規格:

為其生成可視化的圖層。

view

View

將在其中呈現可視化的視圖實例。

fields

Object[]

一組相互競爭的數字字段,用作優勢可視化的基礎。例如,如果創建選舉Map,您將指示代表候選人或政黨的每個字段的名稱,其中存儲了總票數。

規格:
name

String

數值字段的名稱。

label

String

可選的

說明圖例中字段名稱(或類別)的標簽。如果給定字段沒有直觀的字段名稱,則應使用此選項。例如,對於一個名為 dem 的字段表示民主黨的總票數,您可以將標簽設置為 Democrat 以在最終可視化中明確類別的名稱。

includeOpacityVariable

Boolean

可選的

指示是否在最終渲染器中包含數據驅動的不透明度。如果 true ,主要值大大超過所有其他值的特征被賦予高不透明度。主要值以小幅度擊敗其他特征的特征將被分配低不透明度,這表明雖然該特征具有獲勝值,但它並不會贏得太多。

predominance-opacity

includeSizeVariable

Boolean

可選的

指示是否在最終渲染器中包含數據驅動的大小。如果 true ,將根據 fields 參數中所有競爭值的總和為特征分配大小。根據圖層的幾何類型,總計數較小的要素將使用小圖標或線條調整大小,而總計數較大的要素將使用大圖標或線條調整大小。啟用此選項有助於可視化特定特征與整個數據集相比的影響力。它消除了由具有較大地理區域但數據值相對較小的特征引入的偏差。

predominance-size

outlineOptimizationEnabled

Boolean

可選的
默認值:錯誤的

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

sizeOptimizationEnabled

Boolean

可選的
默認值:錯誤的

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

legendOptions

Object

可選的

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

規格:
title

String

可選的

Legend 中用於說明渲染器的標題。

showLegend

Boolean

可選的

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

可選的

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

sortBy

String

可選的
默認值:數數

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

可能的值 說明
count 唯一值/類型將根據屬於每個類別的特征數量從高到低排序。
value 唯一值/類型將按照在 fields 參數中指定的順序進行排序。

可能的值"count"|"value"

predominanceScheme

PredominanceScheme

可選的

在創作應用程序中,用戶可以選擇預定義的優勢方案。將方案對象傳遞給此屬性以避免基於 view 的背景獲得一個。

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 並將其分配給沒有值的函數。

colorMixMode

String

可選的
默認值:代替

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

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

AbortSignal

可選的

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

返回:

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

例子:

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

// will create a visualization of predominant crop by U.S. county

const params = {
  layer: layer,
  view: view,
  fields: [{
    name: "M217_07",
    label: "Vegetables"
  }, {
    name: "M188_07",
    label: "Cotton"
  }, {
    name: "M172_07",
    label: "Wheat"
  }, {
    name: "M193_07",
    label: "Soybeans"
  }, {
    name: "M163_07",
    label: "Corn"
  }],
  includeOpacityInfo: true
};

// when the promise resolves, apply the renderer to the layer
predominanceRendererCreator.createRenderer(params)
  .then(function(response){
    layer.renderer = response.renderer;
  });

相關用法


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