MCPcopy Index your code
hub / github.com/SuperMap/iClient-JavaScript / assembleShapes

Method assembleShapes

src/common/overlay/Circle.js:43–144  ·  view source on GitHub ↗

* @function FeatureThemeCircle.prototype.assembleShapes * @description 装配图形(扩展接口)。

()

Source from the content-addressed store, hash-verified

41 * @description 装配图形(扩展接口)。
42 */
43 assembleShapes() {
44 //默认填充颜色
45 var defaultFillColor = "#ff9277";
46
47 // setting 属性是否已成功赋值
48 if (!this.setting) {
49 return false;
50 }
51 var sets = this.setting;
52 // 检测 setting 的必设参数
53 if (!(sets.codomain)) {
54 return false;
55 }
56
57 // 数据
58 var decimalNumber = (typeof(sets.decimalNumber) !== "undefined" && !isNaN(sets.decimalNumber)) ? sets.decimalNumber : -1;
59 var dataEffective = Theme.getDataValues(this.data, this.fields, decimalNumber);
60 this.dataValues = dataEffective ? dataEffective : [];
61
62 // 数据值数组
63 var fv = this.dataValues;
64 //if(fv.length != 1) return; // 没有数据 或者数据不唯一
65 //if(fv[0] < 0) return; //数据为负值
66
67 //用户应该定义最大 最小半径 默认最大半径MaxR:100 最小半径MinR:0;
68 if (!sets.maxR) {
69 sets.maxR = 100;
70 }
71 if (!sets.minR) {
72 sets.minR = 0;
73 }
74
75 // 值域范围
76 var codomain = this.DVBCodomain;
77
78 // 重要步骤:定义Circle数据视图框中单位值的含义,单位值:1所代表的长度
79 // 用户定义了值域范围
80 if (codomain && codomain[1] - codomain[0] > 0) {
81 this.DVBUnitValue = sets.maxR / (codomain[1] - codomain[0]);
82 } else {
83 //this.DVBUnitValue = sets.maxR / maxValue;
84 this.DVBUnitValue = sets.maxR;
85 }
86
87 var uv = this.DVBUnitValue;
88 //圆半径
89 var r = fv[0] * uv + sets.minR;
90 this.width = 2 * r;
91 this.height = 2 * r;
92
93 // 重要步骤:初始化参数
94 if (!this.initBaseParameter()) {
95 return;
96 }
97
98 //假如用户设置了值域范围 没有在值域范围直接返回
99 if (codomain) {
100 if (fv[0] < codomain[0] || fv[0] > codomain[1]) {

Callers

nothing calls this directly

Calls 5

ShapeStyleToolMethod · 0.80
pushMethod · 0.80
createShapeMethod · 0.80
initBaseParameterMethod · 0.45

Tested by

no test coverage detected