@supermapgis/iclient-ol 11.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.md +56 -0
  2. package/control/ChangeTileVersion.js +438 -0
  3. package/control/Logo.js +97 -0
  4. package/control/ScaleLine.js +164 -0
  5. package/control/index.js +6 -0
  6. package/core/MapExtend.js +49 -0
  7. package/core/StyleUtils.js +1253 -0
  8. package/core/Util.js +500 -0
  9. package/core/index.js +6 -0
  10. package/css/ChangeTileVersion.css +347 -0
  11. package/css/index.js +5 -0
  12. package/dist/iclient-openlayers-es6.js +124963 -0
  13. package/dist/iclient-openlayers-es6.min.js +8 -0
  14. package/dist/iclient-openlayers.css +668 -0
  15. package/dist/iclient-openlayers.js +142946 -0
  16. package/dist/iclient-openlayers.min.css +8 -0
  17. package/dist/iclient-openlayers.min.js +8 -0
  18. package/index.js +9 -0
  19. package/mapping/BaiduMap.js +121 -0
  20. package/mapping/ImageSuperMapRest.js +252 -0
  21. package/mapping/ImageTileSuperMapRest.js +99 -0
  22. package/mapping/InitMap.js +150 -0
  23. package/mapping/SuperMapCloud.js +56 -0
  24. package/mapping/Tianditu.js +152 -0
  25. package/mapping/TileSuperMapRest.js +374 -0
  26. package/mapping/WebMap.js +5485 -0
  27. package/mapping/index.js +11 -0
  28. package/mapping/webmap/Util.js +176 -0
  29. package/mapping/webmap/config/MunicipalCenter.json +1 -0
  30. package/mapping/webmap/config/ProvinceCenter.json +1 -0
  31. package/mapping/webmap/config/SampleDataInfo.json +55 -0
  32. package/namespace.js +150 -0
  33. package/overlay/DataFlow.js +114 -0
  34. package/overlay/FGB.js +100 -0
  35. package/overlay/Graph.js +439 -0
  36. package/overlay/GraphMap.js +140 -0
  37. package/overlay/Graphic.js +588 -0
  38. package/overlay/HeatMap.js +450 -0
  39. package/overlay/Label.js +966 -0
  40. package/overlay/Mapv.js +149 -0
  41. package/overlay/Range.js +129 -0
  42. package/overlay/RankSymbol.js +94 -0
  43. package/overlay/Turf.js +299 -0
  44. package/overlay/Unique.js +124 -0
  45. package/overlay/VectorTileSuperMapRest.js +501 -0
  46. package/overlay/graphic/CanvasRenderer.js +177 -0
  47. package/overlay/graphic/CloverShape.js +133 -0
  48. package/overlay/graphic/Graphic.js +174 -0
  49. package/overlay/graphic/HitCloverShape.js +64 -0
  50. package/overlay/graphic/WebGLRenderer.js +356 -0
  51. package/overlay/graphic/index.js +9 -0
  52. package/overlay/index.js +21 -0
  53. package/overlay/mapv/MapvCanvasLayer.js +104 -0
  54. package/overlay/mapv/MapvLayer.js +413 -0
  55. package/overlay/mapv/index.js +5 -0
  56. package/overlay/theme/GeoFeature.js +275 -0
  57. package/overlay/theme/Theme.js +587 -0
  58. package/overlay/theme/ThemeFeature.js +46 -0
  59. package/overlay/theme/index.js +6 -0
  60. package/overlay/vectortile/DeafultCanvasStyle.js +125 -0
  61. package/overlay/vectortile/MapboxStyles.js +377 -0
  62. package/overlay/vectortile/StyleMap.js +252 -0
  63. package/overlay/vectortile/VectorTileStyles.js +554 -0
  64. package/overlay/vectortile/index.js +7 -0
  65. package/overlay/vectortile/olExtends.js +382 -0
  66. package/package.json +30 -0
  67. package/services/AddressMatchService.js +60 -0
  68. package/services/ChartService.js +97 -0
  69. package/services/DataFlowService.js +119 -0
  70. package/services/DatasetService.js +104 -0
  71. package/services/DatasourceService.js +76 -0
  72. package/services/FeatureService.js +260 -0
  73. package/services/FieldService.js +53 -0
  74. package/services/GeoprocessingService.js +157 -0
  75. package/services/GridCellInfosService.js +53 -0
  76. package/services/ImageCollectionService.js +93 -0
  77. package/services/ImageService.js +70 -0
  78. package/services/KnowledgeGraphService.js +96 -0
  79. package/services/LayerInfoService.js +85 -0
  80. package/services/MapService.js +85 -0
  81. package/services/MeasureService.js +77 -0
  82. package/services/NetworkAnalyst3DService.js +93 -0
  83. package/services/NetworkAnalystService.js +268 -0
  84. package/services/ProcessingService.js +507 -0
  85. package/services/QueryService.js +116 -0
  86. package/services/ServiceBase.js +26 -0
  87. package/services/SpatialAnalystService.js +466 -0
  88. package/services/ThemeService.js +50 -0
  89. package/services/TrafficTransferAnalystService.js +93 -0
  90. package/services/WebPrintingJobService.js +112 -0
  91. package/services/index.js +27 -0
@@ -0,0 +1,149 @@
1
+ /* Copyright© 2000 - 2024 SuperMap Software Co.Ltd. All rights reserved.
2
+ * This program are made available under the terms of the Apache License, Version 2.0
3
+ * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/
4
+ import {
5
+ MapvLayer
6
+ } from './mapv/MapvLayer';
7
+ import {
8
+ Util
9
+ } from '../core/Util';
10
+ import ImageCanvasSource from 'ol/source/ImageCanvas';
11
+
12
+ /**
13
+ * @class Mapv
14
+ * @browsernamespace ol.source
15
+ * @category Visualization MapV
16
+ * @classdesc MapV 图层源。MapV 是一款地理信息可视化开源库,MapV 图层可以用来展示大量地理信息数据,点、线、面的数据,每种数据也有不同的展示类型,如直接打点、热力图、网格、聚合等方式展示数据。<br>
17
+ * 展示大量的点数据:如热力图、网格、蜂窝状、点聚合、按颜色区间、按半径大小等方式。<br>
18
+ * 展示大量的线数据:如普通画线、高亮叠加、热力线数据展示等方式,适合展示大量轨迹的场景。<br>
19
+ * 展示大量的自定义面数据:按颜色区间来展示,如展示行政区划数据。
20
+ * @modulecategory Overlay
21
+ * @param {Object} opt_options - 参数。
22
+ * @param {ol.Map} opt_options.map - 当前 OpenLayers 地图对象。
23
+ * @param {Mapv.DataSet} opt_options.dataSet - MapV 的数据集。
24
+ * @param {Object} opt_options.mapvOptions - MapV 的配置对象。
25
+ * @param {string} [opt_options.logo] - Logo(OpenLayers 5.0.0 及更高版本不再支持此参数)。
26
+ * @param {ol.proj.Projection} [opt_options.projection] - 投影信息。
27
+ * @param {number} [opt_options.ratio=1.5] - 视图比,1 表示画布是地图视口的大小,2 表示地图视口的宽度和高度的两倍,依此类推。必须是 1 或更高。
28
+ * @param {Array} [opt_options.resolutions] - 分辨率数组。
29
+ * @param {ol.source.State} [opt_options.state] - 资源状态。
30
+ * @param {(string|Object)} [opt_options.attributions='© 2018 百度 MapV with <span>© <a href='https://iclient.supermap.io' target='_blank'>SuperMap iClient</a></span>'] - 版权描述信息。
31
+ * @extends {ol.source.ImageCanvas}
32
+ * @usage
33
+ */
34
+ export class Mapv extends ImageCanvasSource {
35
+
36
+ constructor(opt_options) {
37
+ var options = opt_options ? opt_options : {};
38
+ super({
39
+ attributions: options.attributions || "© 2018 百度 MapV with <span>© SuperMap iClient</span>",
40
+ canvasFunction: canvasFunctionInternal_,
41
+ logo: Util.getOlVersion() === '4' ? options.logo : null,
42
+ projection: options.projection,
43
+ ratio: options.ratio,
44
+ resolutions: options.resolutions,
45
+ state: options.state
46
+ });
47
+ this.map = opt_options.map;
48
+ this.dataSet = opt_options.dataSet;
49
+ this.mapvOptions = opt_options.mapvOptions;
50
+
51
+ function canvasFunctionInternal_(extent, resolution, pixelRatio, size, projection) { // eslint-disable-line no-unused-vars
52
+ var mapWidth = size[0] / pixelRatio;
53
+ var mapHeight = size[1] / pixelRatio;
54
+ var width = this.map.getSize()[0];
55
+ var height = this.map.getSize()[1];
56
+ if (!this.layer) {
57
+ this.layer = new MapvLayer(this.map, this.dataSet, this.mapvOptions, mapWidth, mapHeight, this);
58
+ }
59
+ this.layer.pixelRatio = pixelRatio;
60
+ this.layer.offset = [(mapWidth - width) / 2 , (mapHeight - height) / 2 ];
61
+ if (!this.rotate) {
62
+ this.rotate = this.map.getView().getRotation();
63
+ } else {
64
+ if (this.rotate !== this.map.getView().getRotation()) {
65
+ this.layer.canvasLayer.resize(mapWidth, mapHeight);
66
+ this.rotate = this.map.getView().getRotation()
67
+ }
68
+ }
69
+ var canvas = this.layer.canvasLayer.canvas;
70
+ if (!this.layer.isEnabledTime()) {
71
+ this.layer.canvasLayer.resize(mapWidth, mapHeight);
72
+ this.layer.canvasLayer.draw();
73
+ }
74
+ if (!this.context) {
75
+ this.context = Util.createCanvasContext2D(mapWidth, mapHeight);
76
+ }
77
+ var canvas2 = this.context.canvas;
78
+ this.context.clearRect(0, 0, canvas2.width, canvas2.height);
79
+ canvas2.width = size[0];
80
+ canvas2.height = size[1];
81
+ canvas2.style.width = size[0] + "px";
82
+ canvas2.style.height = size[1] + "px";
83
+ this.context.drawImage(canvas, 0, 0);
84
+ if (this.resolution !== resolution || JSON.stringify(this.extent) !== JSON.stringify(extent)) {
85
+ this.resolution = resolution;
86
+ this.extent = extent;
87
+ }
88
+ return this.context.canvas;
89
+ }
90
+ }
91
+
92
+ /**
93
+ * @function Mapv.prototype.addData
94
+ * @description 追加数据。
95
+ * @param {Object} data - 要追加的数据。
96
+ * @param {Object} options - 要追加的值。
97
+ */
98
+ addData(data, options) {
99
+ this.layer.addData(data, options);
100
+ }
101
+
102
+ /**
103
+ * @function Mapv.prototype.getData
104
+ * @description 获取数据。
105
+ * @returns {Mapv.DataSet} MapV 数据集。
106
+ */
107
+ getData() {
108
+ if (this.layer) {
109
+ this.dataSet = this.layer.getData();
110
+ }
111
+ return this.dataSet;
112
+ }
113
+
114
+ /**
115
+ * @function Mapv.prototype.removeData
116
+ * @description 删除符合过滤条件的数据。
117
+ * @param {function} filter - 过滤条件。条件参数为数据项,返回值为 true,表示删除该元素;否则表示不删除。
118
+ * @example
119
+ * filter=function(data){
120
+ * if(data.id=="1"){
121
+ * return true
122
+ * }
123
+ * return false;
124
+ * }
125
+ */
126
+ removeData(filter) {
127
+ this.layer && this.layer.removeData(filter);
128
+ }
129
+
130
+ /**
131
+ * @function Mapv.prototype.clearData
132
+ * @description 清除数据。
133
+ */
134
+ clearData() {
135
+ this.layer.clearData();
136
+ }
137
+
138
+
139
+ /**
140
+ * @function Mapv.prototype.update
141
+ * @description 更新数据。
142
+ * @param {Object} options - 待更新的数据。
143
+ * @param {Object} options.data - mapv 数据集。
144
+ */
145
+ update(options) {
146
+ this.layer.update(options);
147
+ this.changed();
148
+ }
149
+ }
@@ -0,0 +1,129 @@
1
+ /* Copyright© 2000 - 2024 SuperMap Software Co.Ltd. All rights reserved.
2
+ * This program are made available under the terms of the Apache License, Version 2.0
3
+ * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/
4
+ import { Util as CommonUtil} from '@supermapgis/iclient-common/commontypes/Util';
5
+ import { ShapeFactory } from '@supermapgis/iclient-common/overlay/feature/ShapeFactory';
6
+ import { ThemeVector } from '@supermapgis/iclient-common/overlay/ThemeVector';
7
+ import {GeoFeature} from './theme/GeoFeature';
8
+
9
+ /**
10
+ * @class Range
11
+ * @browsernamespace ol.source
12
+ * @category Visualization Theme
13
+ * @classdesc 分段专题图图层源。分段专题图是指按照某种分段方式被分成多个范围段,要素根据各自的专题值被分配到其中一个范围段中,
14
+ * 在同一个范围段中的要素使用相同的颜色,填充,符号等风格进行显示。 分段专题图所基于的专题变量必须为数值型,
15
+ * 分段专题图一般用来反映连续分布现象的数量或程度特征,如降水量的分布,土壤侵蚀强度的分布等。
16
+ * @param {string} name - 名称
17
+ * @param {Object} opt_options - 参数。
18
+ * @param {ol.Map} opt_options.map - 当前 OpenLayers 地图对象。
19
+ * @param {string} opt_options.themeField - 指定创建专题图字段。
20
+ * @param {string} [opt_options.id] - 专题图层 ID。默认使用 CommonUtil.createUniqueID("themeLayer_") 创建专题图层 ID。
21
+ * @param {number} [opt_options.opacity = 1] - 图层不透明度。
22
+ * @param {string} [opt_options.logo] - Logo(OpenLayers 5.0.0 及更高版本不再支持此参数)。
23
+ * @param {ol.proj.Projection} [opt_options.projection] - 投影信息。
24
+ * @param {number} [opt_options.ratio=1.5] - 视图比,1 表示画布是地图视口的大小,2 表示地图视口的宽度和高度的两倍,依此类推。必须是 1 或更高。
25
+ * @param {Array} [opt_options.resolutions] - 分辨率数组。
26
+ * @param {ol.source.State} [opt_options.state] - 资源状态。
27
+ * @param {Object} [opt_options.style] - 专题图样式。
28
+ * @param {Object} [opt_options.styleGroups] - 各专题类型样式组。
29
+ * @param {boolean} [opt_options.isHoverAble = false] - 是否开启 hover 事件。
30
+ * @param {Object} [opt_options.highlightStyle] - 开启 hover 事件后,触发的样式风格。
31
+ * @param {(string|Object)} [opt_options.attributions='Map Data <span>© <a href='http://support.supermap.com.cn/product/iServer.aspx' target='_blank'>SuperMap iServer</a></span> with <span>© <a href='https://iclient.supermap.io' target='_blank'>SuperMap iClient</a></span>'] - 版权描述信息。
32
+ * @extends {GeoFeature}
33
+ * @usage
34
+ */
35
+ export class Range extends GeoFeature {
36
+
37
+ constructor(name, opt_options) {
38
+ super(name, opt_options);
39
+ this.style = opt_options.style;
40
+ this.isHoverAble = opt_options.isHoverAble;
41
+ this.highlightStyle = opt_options.highlightStyle;
42
+ this.themeField = opt_options.themeField;
43
+ this.styleGroups = opt_options.styleGroups;
44
+ }
45
+
46
+ /**
47
+ * @function Range.prototype.destroy
48
+ * @description 释放资源,将引用资源的属性置空。
49
+ */
50
+ destroy() {
51
+ this.style = null;
52
+ this.themeField = null;
53
+ this.styleGroups = null;
54
+ GeoFeature.prototype.destroy.apply(this, arguments);
55
+ }
56
+
57
+ /**
58
+ * @private
59
+ * @function Range.prototype.createThematicFeature
60
+ * @description 创建专题图要素。
61
+ * @param {Object} feature - 要创建的专题图形要素。
62
+ */
63
+ createThematicFeature(feature) {
64
+ //赋 style
65
+ var style = this.getStyleByData(feature);
66
+ //创建专题要素时的可选参数
67
+ var options = {};
68
+ options.nodesClipPixel = this.nodesClipPixel;
69
+ options.isHoverAble = this.isHoverAble;
70
+ options.isMultiHover = this.isMultiHover;
71
+ options.isClickAble = this.isClickAble;
72
+ options.highlightStyle = ShapeFactory.transformStyle(this.highlightStyle);
73
+
74
+ //将数据转为专题要素(ThemeVector)
75
+ var thematicFeature = new ThemeVector(feature, this, ShapeFactory.transformStyle(style), options);
76
+
77
+ //直接添加图形到渲染器
78
+ for (var m = 0; m < thematicFeature.shapes.length; m++) {
79
+ this.renderer.addShape(thematicFeature.shapes[m]);
80
+ }
81
+
82
+ return thematicFeature;
83
+ }
84
+
85
+ /**
86
+ * @private
87
+ * @function Range.prototype.getStyleByData
88
+ * @description 通过数据获取 style。
89
+ * @param {Object} fea - 要素数据。
90
+ */
91
+ getStyleByData(fea) {
92
+ var style = {};
93
+ var feature = fea;
94
+ style = CommonUtil.copyAttributesWithClip(style, this.style);
95
+ if (this.themeField && this.styleGroups && this.styleGroups.length > 0 && feature.attributes) {
96
+ var Sf = this.themeField;
97
+ var Attrs = feature.attributes;
98
+ var Gro = this.styleGroups;
99
+ var isSfInAttrs = false; //指定的 themeField 是否是 feature 的属性字段之一
100
+ var attr = null; //属性值
101
+
102
+ for (var property in Attrs) {
103
+ if (Sf === property) {
104
+ isSfInAttrs = true;
105
+ attr = Attrs[property];
106
+ break;
107
+ }
108
+ }
109
+ //判断属性值是否属于styleGroups的某一个范围,以便对获取分组 style
110
+ if (isSfInAttrs) {
111
+ for (var i = 0, len = Gro.length; i < len; i++) {
112
+ if ((attr >= Gro[i].start) && (attr < Gro[i].end)) {
113
+ //feature.style = Util.copyAttributes(feature.style, this.defaultStyle);
114
+ var sty1 = Gro[i].style;
115
+ style = CommonUtil.copyAttributesWithClip(style, sty1);
116
+ }
117
+ }
118
+ }
119
+ }
120
+ if (feature.style && this.isAllowFeatureStyle === true) {
121
+ style = CommonUtil.copyAttributesWithClip(feature.style);
122
+ }
123
+ return style;
124
+ }
125
+
126
+ canvasFunctionInternal_(extent, resolution, pixelRatio, size, projection) { // eslint-disable-line no-unused-vars
127
+ return GeoFeature.prototype.canvasFunctionInternal_.apply(this, arguments);
128
+ }
129
+ }
@@ -0,0 +1,94 @@
1
+ /* Copyright© 2000 - 2024 SuperMap Software Co.Ltd. All rights reserved.
2
+ * This program are made available under the terms of the Apache License, Version 2.0
3
+ * which accompanies this distribution and is available at http://www.apache.org/licenses/LICENSE-2.0.html.*/
4
+ import { Theme as FeatureTheme } from '@supermapgis/iclient-common/overlay/feature/Theme';
5
+ import {Graph} from './Graph';
6
+
7
+ /**
8
+ * @class RankSymbol
9
+ * @browsernamespace ol.source
10
+ * @category Visualization Theme
11
+ * @classdesc 等级符号专题图图层源。等级符号专题图根据各要素的某个数量特征,按照一定的分类方法用一组等级符号表示在地图上,以呈现要素间该数量特征的相对关系。
12
+ * @modulecategory Overlay
13
+ * @param {string} name - 专题图层名。
14
+ * @param {string} symbolType - 标志类型。
15
+ * @param {Object} opt_options - 参数。
16
+ * @param {ol.Map} opt_options.map - 当前 OpenLayers 地图对象。
17
+ * @param {string} opt_options.themeFields - 指定创建专题图字段。
18
+ * @param {Object} opt_options.symbolSetting - 符号 Circle 配置对象 symbolSetting(<{@link SuperMap.Layer.RankSymbol}>)。
19
+ * @param {Array.<number>} opt_options.symbolSetting.codomain - 图表允许展示的数据值域,长度为 2 的一维数组,第一个元素表示值域下限,第二个元素表示值域上限。
20
+ * @param {number} [opt_options.symbolSetting.maxR] - 圆形的最大半径。
21
+ * @param {number} [opt_options.symbolSetting.minR] - 圆形的最小半径。
22
+ * @param {string} [opt_options.symbolSetting.fillColor] - 圆形的填充色,如:fillColor: "#FFB980"。
23
+ * @param {Object} [opt_options.symbolSetting.circleStyle] - 圆形的基础 style,此参数控制圆形基础样式,优先级低于 circleStyleByFields 和 circleStyleByCodomain。
24
+ * @param {number} [opt_options.symbolSetting.decimalNumber] - 数据值数组 dataValues 元素值小数位数,数据的小数位处理参数,取值范围:[0, 16]。如果不设置此参数,在取数据值时不对数据做小数位处理。
25
+ * @param {Object} [opt_options.symbolSetting.circleHoverStyle] - 圆形 hover 状态时的样式,circleHoverAble 为 true 时有效。
26
+ * @param {boolean} [opt_options.symbolSetting.circleHoverAble=true] - 是否允许圆形使用 hover 状态。同时设置 circleHoverAble 和 circleClickAble 为 false,可以直接屏蔽图形对专题图层事件的响应。
27
+ * @param {boolean} [opt_options.symbolSetting.circleClickAble=true] - 是否允许圆形被点击。同时设置 circleHoverAble 和 circleClickAble 为 false,可以直接屏蔽图形对专题图层事件的响应。
28
+ * @param {string} [opt_options.id] - 专题图层 ID。默认使用 CommonUtil.createUniqueID("themeLayer_") 创建专题图层 ID。
29
+ * @param {number} [opt_options.opacity=1] - 图层不透明度。
30
+ * @param {string} [opt_options.logo] - Logo(OpenLayers 5.0.0 及更高版本不再支持此参数)。
31
+ * @param {ol.proj.Projection} [opt_options.projection] - 投影信息。
32
+ * @param {number} [opt_options.ratio=1.5] - 视图比,1 表示画布是地图视口的大小,2 表示地图视口的宽度和高度的两倍,依此类推。必须是 1 或更高。
33
+ * @param {Array} [opt_options.resolutions] - 分辨率数组。
34
+ * @param {ol.source.State} [opt_options.state] - 资源状态。
35
+ * @param {boolean} [opt_options.isOverLay=true] - 是否进行压盖处理,如果设为 true,图表绘制过程中将隐藏对已在图层中绘制的图表产生压盖的图表。
36
+ * @param {(string|Object)} [opt_options.attributions='Map Data <span>© <a href='http://support.supermap.com.cn/product/iServer.aspx' target='_blank'>SuperMap iServer</a></span> with <span>© <a href='https://iclient.supermap.io' target='_blank'>SuperMap iClient</a></span>'] - 版权描述信息。
37
+ * @extends {Graph}
38
+ * @usage
39
+ */
40
+ export class RankSymbol extends Graph {
41
+
42
+ constructor(name, symbolType, opt_options) {
43
+ super(name, symbolType, opt_options);
44
+ this.symbolType = symbolType;
45
+ this.symbolSetting = opt_options.symbolSetting;
46
+ this.themeField = opt_options.themeField;
47
+ }
48
+
49
+ /**
50
+ * @function RankSymbol.prototype.destroy
51
+ * @description 释放资源,将引用资源的属性置空。
52
+ */
53
+ destroy() {
54
+ this.symbolType = null;
55
+ this.symbolSetting = null;
56
+ this.themeField = null;
57
+ Graph.prototype.destroy.apply(this, arguments);
58
+ }
59
+
60
+ /**
61
+ * @function RankSymbol.prototype.setSymbolType
62
+ * @description 设置标志符号。
63
+ * @param {string} symbolType - 符号类型。
64
+ */
65
+ setSymbolType(symbolType) {
66
+ this.symbolType = symbolType;
67
+ this.redraw();
68
+ }
69
+
70
+ /**
71
+ * @private
72
+ * @function RankSymbol.prototype.createThematicFeature
73
+ * @description 创建专题图形要素。
74
+ * @param {Object} feature - 要创建的专题图形要素。
75
+ */
76
+ createThematicFeature(feature) {
77
+ var thematicFeature;
78
+ // 检查图形创建条件并创建图形
79
+ if (FeatureTheme[this.symbolType] && this.themeField && this.symbolSetting) {
80
+ thematicFeature = new FeatureTheme[this.symbolType](feature, this, [this.themeField], this.symbolSetting);
81
+ }
82
+ // thematicFeature 是否创建成功
83
+ if (!thematicFeature) {
84
+ return false;
85
+ }
86
+ // 对专题要素执行图形装载
87
+ thematicFeature.assembleShapes();
88
+ return thematicFeature;
89
+ }
90
+
91
+ canvasFunctionInternal_(extent, resolution, pixelRatio, size, projection) { // eslint-disable-line no-unused-vars
92
+ return Graph.prototype.canvasFunctionInternal_.apply(this, arguments);
93
+ }
94
+ }