基本信息
以下是所在類或對象的基本信息。
AMD:
require(["esri/renderers/DotDensityRenderer"], (DotDensityRenderer) => { /* code goes here */ });
ESM:
import DotDensityRenderer from "@arcgis/core/renderers/DotDensityRenderer";
類:
esri/renderers/DotDensityRenderer
繼承: DotDensityRenderer > Renderer > Accessor
自從:用於 JavaScript 4.11 的 ArcGIS API
用法說明
DotDensityRenderer 允許您為多邊形圖層創建點密度可視化。點密度可視化在每個多邊形內隨機繪製點,以可視化人口或其他變量的密度。每個點代表一個屬性或屬性子集的固定數值。與等值線圖不同,點密度可視化中使用的字段值不需要標準化,因為多邊形的大小以及在其邊界內渲染的點的數量指示該值的空間密度。
例如,下圖使用點密度按人口普查區可視化人口。請注意,每個點代表大約 100 人。
您可以指定多個屬性來可視化數據的子類別。例如,我們可以可視化上麵的同一層,但按種族/民族對每個點進行分類。因此,每個不同顏色的點代表相應類別的 100 個人(例如,1 個紅點代表 100 個非西班牙裔白人),每個藍點 = 100 個非裔美國人,每個黃點 = 100 個西班牙裔美國人,等等)。
這種點密度的實現允許您基於 view scale 線性縮放點值。因此,當您放大和縮小初始視圖時,點的相對密度在不同尺度上保持不變。
在創建點密度可視化時請記住以下建議:
- 您應該盡可能使用等麵積spatial references,尤其是在構建跨越全局範圍的點密度可視化時。使用帶有DotDensityRenderer 的嚴重扭曲的空間參考是可以的,隻要您限製用戶在大比例下比較同一視圖內的要素密度。當無法使用等麵積投影時,我們強烈反對跨多個視圖比較特征,因為麵積失真的顯著差異可能會導致用戶誤解嚴重失真區域的特征密度。
- 您通常應該在圖層上設置minScale。當點由於合並或過於分散而不再可區分時,點密度可視化很難閱讀。
- 在圖層上設置maxScale也很重要,因為點密度圖在較大比例下往往變得不可讀。用戶可能會開始看到現實中不存在的點的隨機分布模式。他們還可能錯誤地將每個點的位置解釋為實際的點特征。當 dotValue 設置為
1
時,用戶特別容易受到此影響。例如,縣數據集上的點密度可視化隻能在州或地區級別查看。 - 使用 attribute 屬性來指定一個或多個數據值。當指定多個屬性時,屬性組在一起可視化時應該有意義,並且通常應該屬於父組。例如,您可以繪製寵物的密度圖,或者不同種類的寵物(例如狗、 cat 等)的密度。
- 使用彈出窗口清楚地傳達函數的實際值,以便用戶可以直觀地和交互地探索Map。
已知限製
- 目前,隻有 GeoJSONLayer 、 OGCFeatureLayer 和 FeatureLayer 圖層類型具有
geometryType
或polygon
支持此渲染器。 - 此渲染器目前僅在 2D MapViews 中受支持。
例子:
layer.renderer = {
type: "dot-density", // autocasts as new DotDensityRenderer()
dotValue: 1000, // 1 dot = 1,000 people when the view.scale is 1:1,000,000
referenceScale: 1000000, // view.scale
attributes: [{
field: "ELEMENTARY_SCHOOL",
label: "Elementary School",
color: "red"
}, {
field: "MIDDLE_SCHOOL",
label: "Middle School",
color: "blue"
}, {
field: "HIGH_SCHOOL",
label: "High School",
color: "orange"
}, {
valueExpression: "$feature.ASSOCIATES_DEGREE + $feature.BACHELOR_DEGREE + $feature.MASTER_DEGREE + $feature.DOCTORATE_DEGREE",
valueExpressionTitle: "People who completed university",
label: "University"
color: "green"
}]
}
相關用法
- JavaScript ArcGIS DotDensityRenderer.clone用法及代碼示例
- JavaScript ArcGIS DotDensityRenderer.attributes用法及代碼示例
- JavaScript ArcGIS DotDensityRenderer.outline用法及代碼示例
- JavaScript ArcGIS DotDensityRenderer.dotSize用法及代碼示例
- JavaScript ArcGIS DotDensityRenderer.backgroundColor用法及代碼示例
- JavaScript ArcGIS DotDensityRenderer.dotValue用法及代碼示例
- JavaScript ArcGIS DotDensityRenderer.legendOptions用法及代碼示例
- JavaScript ArcGIS DotDensityRenderer.visualVariables用法及代碼示例
- JavaScript ArcGIS DotDensityRenderer.referenceScale用法及代碼示例
- JavaScript ArcGIS Daylight.visibleElements用法及代碼示例
- JavaScript DataView.getInt16()用法及代碼示例
- JavaScript Date getYear()用法及代碼示例
- JavaScript Date.UTC()用法及代碼示例
- JavaScript ArcGIS Directions.visible用法及代碼示例
- JavaScript DataView.setUint32()用法及代碼示例
- JavaScript Date toISOString()用法及代碼示例
- JavaScript DataView.getInt8()用法及代碼示例
- JavaScript ArcGIS DistanceMeasurement2D.unitOptions用法及代碼示例
- JavaScript ArcGIS Daylight.on用法及代碼示例
- JavaScript ArcGIS DefaultUI.padding用法及代碼示例
- JavaScript ArcGIS DirectLineMeasurementAnalysisView3D用法及代碼示例
- JavaScript Date.getTimezoneOffset()用法及代碼示例
- JavaScript Date.getUTCSeconds()用法及代碼示例
- JavaScript ArcGIS Directions.routeServiceUrl用法及代碼示例
- JavaScript ArcGIS DirectLineMeasurement3D.when用法及代碼示例
注:本文由純淨天空篩選整理自arcgis.com大神的英文原創作品 DotDensityRenderer。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。