@antv/l7-layers 2.9.32 → 2.9.34

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.
@@ -1,11 +1,12 @@
1
1
  import BaseLayer from '../../core/BaseLayer';
2
2
  import { IRasterLayerStyleOptions } from '../../core/interface';
3
3
  import RasterModel from '../../raster/models/rasterTile';
4
+ import RasterRgbModel from '../../raster/models/rasterRgb';
4
5
  export default class RasterTiffLayer extends BaseLayer<Partial<IRasterLayerStyleOptions>> {
5
6
  type: string;
6
7
  buildModels(): void;
7
8
  rebuildModels(): void;
8
- protected getModelType(): typeof RasterModel;
9
+ protected getModelType(): typeof RasterModel | typeof RasterRgbModel;
9
10
  protected getConfigSchema(): {
10
11
  properties: {
11
12
  opacity: {
@@ -12,6 +12,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
12
12
 
13
13
  import BaseLayer from "../../core/BaseLayer";
14
14
  import RasterModel from "../../raster/models/rasterTile";
15
+ import RasterRgbModel from "../../raster/models/rasterRgb";
15
16
 
16
17
  var RasterTiffLayer = /*#__PURE__*/function (_BaseLayer) {
17
18
  _inherits(RasterTiffLayer, _BaseLayer);
@@ -57,7 +58,11 @@ var RasterTiffLayer = /*#__PURE__*/function (_BaseLayer) {
57
58
  }, {
58
59
  key: "getModelType",
59
60
  value: function getModelType() {
60
- return RasterModel;
61
+ if (this.layerSource.parser.type === 'rasterRgb') {
62
+ return RasterRgbModel;
63
+ } else {
64
+ return RasterModel;
65
+ }
61
66
  }
62
67
  }, {
63
68
  key: "getConfigSchema",
@@ -499,7 +499,7 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
499
499
  }, {
500
500
  key: "source",
501
501
  value: function source(data, options) {
502
- if (data !== null && data !== void 0 && data.data) {
502
+ if ((data === null || data === void 0 ? void 0 : data.type) === 'source') {
503
503
  // 判断是否为source
504
504
  this.setSource(data);
505
505
  return this;
@@ -1042,6 +1042,15 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1042
1042
 
1043
1043
 
1044
1044
  this.layerSource.on('sourceUpdate', function () {
1045
+ if (_this8.coordCenter === undefined) {
1046
+ var layerCenter = _this8.layerSource.center;
1047
+ _this8.coordCenter = layerCenter;
1048
+ _this8.mapService.setCoordCenter && _this8.mapService.setCoordCenter(layerCenter); // // @ts-ignore
1049
+ // this.mapService.map.customCoords.setCenter(layerCenter);
1050
+ // // @ts-ignore
1051
+ // this.mapService.setCustomCoordCenter(layerCenter);
1052
+ }
1053
+
1045
1054
  _this8.sourceEvent();
1046
1055
  });
1047
1056
  }
@@ -1172,6 +1181,8 @@ var BaseLayer = (_dec = (0, _l7Core.lazyInject)(_l7Core.TYPES.IGlobalConfigServi
1172
1181
  return reject(err);
1173
1182
  });
1174
1183
  } else {
1184
+ // console.log(this.encodedData[1].originCoordinates[0])
1185
+ // console.log(this.encodedData[1].coordinates[0])
1175
1186
  var _this9$styleAttribute = _this9.styleAttributeService.createAttributesAndIndices(_this9.encodedData, triangulation, segmentNumber),
1176
1187
  attributes = _this9$styleAttribute.attributes,
1177
1188
  elements = _this9$styleAttribute.elements,
package/lib/glsl.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ declare module '*.glsl' {
2
+ const content: string;
3
+ // @ts-ignore
4
+ export default content;
5
+ }
@@ -269,7 +269,7 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
269
269
 
270
270
  // 根据地图的类型判断是否需要对点位数据进行处理, 若是高德2.0则需要对坐标进行相对偏移
271
271
  if (mappedData.length > 0 && this.mapService.version === _l7Maps.Version['GAODE2.x']) {
272
- var layerCenter = this.getLayerCenter(layer);
272
+ var layerCenter = layer.coordCenter;
273
273
 
274
274
  if (typeof mappedData[0].coordinates[0] === 'number') {
275
275
  // 单个的点数据
@@ -288,7 +288,6 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
288
288
  });
289
289
  } else {
290
290
  // 连续的线、面数据
291
- // @ts-ignore
292
291
  mappedData // TODO: 避免经纬度被重复计算导致坐标位置偏移
293
292
  .filter(function (d) {
294
293
  return !d.originCoordinates;
@@ -318,12 +317,6 @@ var DataMappingPlugin = (_dec = (0, _inversify.injectable)(), _dec2 = (0, _inver
318
317
  });
319
318
  }
320
319
  }
321
- }, {
322
- key: "getLayerCenter",
323
- value: function getLayerCenter(layer) {
324
- var source = layer.getSource();
325
- return source.center;
326
- }
327
320
  }, {
328
321
  key: "unProjectCoordinates",
329
322
  value: function unProjectCoordinates(coordinates) {
@@ -62,15 +62,7 @@ _dec = (0, _inversify.injectable)(), _dec2 = (0, _inversify.inject)(_l7Core.TYPE
62
62
  _this.coordinateSystemService.refresh(offset);
63
63
 
64
64
  if (version === 'GAODE2.x') {
65
- var layerCenter = _this.getLayerCenter(layer); // @ts-ignore
66
-
67
-
68
- _this.mapService.map.customCoords.setCenter(layerCenter); // @ts-ignore
69
-
70
-
71
- _this.mapService.setCustomCoordCenter(layerCenter); // @ts-ignore
72
-
73
-
65
+ // @ts-ignore
74
66
  mvp = _this.mapService.map.customCoords.getMVPMatrix(); // mvp = amapCustomCoords.getMVPMatrix()
75
67
  // @ts-ignore
76
68
 
@@ -87,6 +87,7 @@ var RaterLayer = /*#__PURE__*/function (_BaseLayer) {
87
87
  var type = this.getModelType();
88
88
  var defaultConfig = {
89
89
  raster: {},
90
+ rasterRgb: {},
90
91
  raster3d: {},
91
92
  rasterTile: {}
92
93
  };
@@ -102,6 +103,9 @@ var RaterLayer = /*#__PURE__*/function (_BaseLayer) {
102
103
  case 'raster':
103
104
  return 'raster';
104
105
 
106
+ case 'rasterRgb':
107
+ return 'rasterRgb';
108
+
105
109
  case 'rasterTile':
106
110
  return 'rasterTile';
107
111
 
@@ -11,8 +11,11 @@ var _tileModel = _interopRequireDefault(require("../../tile/models/tileModel"));
11
11
 
12
12
  var _raster = _interopRequireDefault(require("./raster"));
13
13
 
14
+ var _rasterRgb = _interopRequireDefault(require("./rasterRgb"));
15
+
14
16
  var RasterModels = {
15
17
  raster: _raster.default,
18
+ rasterRgb: _rasterRgb.default,
16
19
  raster3d: _raster.default,
17
20
  rasterTile: _tileModel.default
18
21
  };
@@ -7,6 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
10
14
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
15
 
12
16
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
@@ -78,53 +82,125 @@ var RasterModel = /*#__PURE__*/function (_BaseModel) {
78
82
  u_colorTexture: this.colorTexture
79
83
  };
80
84
  }
85
+ }, {
86
+ key: "getRasterData",
87
+ value: function () {
88
+ var _getRasterData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(parserDataItem) {
89
+ var _yield$parserDataItem, rasterData, width, height;
90
+
91
+ return _regenerator.default.wrap(function _callee$(_context) {
92
+ while (1) {
93
+ switch (_context.prev = _context.next) {
94
+ case 0:
95
+ if (!Array.isArray(parserDataItem.data)) {
96
+ _context.next = 4;
97
+ break;
98
+ }
99
+
100
+ return _context.abrupt("return", {
101
+ data: parserDataItem.data,
102
+ width: parserDataItem.width,
103
+ height: parserDataItem.height
104
+ });
105
+
106
+ case 4:
107
+ _context.next = 6;
108
+ return parserDataItem.data;
109
+
110
+ case 6:
111
+ _yield$parserDataItem = _context.sent;
112
+ rasterData = _yield$parserDataItem.rasterData;
113
+ width = _yield$parserDataItem.width;
114
+ height = _yield$parserDataItem.height;
115
+ return _context.abrupt("return", {
116
+ data: Array.from(rasterData),
117
+ width: width,
118
+ height: height
119
+ });
120
+
121
+ case 11:
122
+ case "end":
123
+ return _context.stop();
124
+ }
125
+ }
126
+ }, _callee);
127
+ }));
128
+
129
+ function getRasterData(_x) {
130
+ return _getRasterData.apply(this, arguments);
131
+ }
132
+
133
+ return getRasterData;
134
+ }()
81
135
  }, {
82
136
  key: "initModels",
83
- value: function initModels(callbackModel) {
84
- var _ref2 = this.layer.getLayerConfig(),
85
- _ref2$mask = _ref2.mask,
86
- mask = _ref2$mask === void 0 ? false : _ref2$mask,
87
- _ref2$maskInside = _ref2.maskInside,
88
- maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside,
89
- rampColorsData = _ref2.rampColorsData,
90
- rampColors = _ref2.rampColors;
91
-
92
- var source = this.layer.getSource();
93
- var createTexture2D = this.rendererService.createTexture2D;
94
- var parserDataItem = source.data.dataArray[0];
95
- this.texture = createTexture2D({
96
- data: parserDataItem.data,
97
- width: parserDataItem.width,
98
- height: parserDataItem.height,
99
- format: _l7Core.gl.LUMINANCE,
100
- type: _l7Core.gl.FLOAT // aniso: 4,
137
+ value: function () {
138
+ var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(callbackModel) {
139
+ var _ref2, _ref2$mask, mask, _ref2$maskInside, maskInside, rampColorsData, rampColors, source, createTexture2D, parserDataItem, _yield$this$getRaster, data, width, height, imageData;
101
140
 
102
- });
103
- var imageData = rampColorsData ? rampColorsData : (0, _l7Utils.generateColorRamp)(rampColors);
104
- this.colorTexture = createTexture2D({
105
- data: imageData.data,
106
- width: imageData.width,
107
- height: imageData.height,
108
- flipY: false
109
- });
110
- this.layer.buildLayerModel({
111
- moduleName: 'rasterImageData',
112
- vertexShader: rasterVert,
113
- fragmentShader: rasterFrag,
114
- triangulation: _triangulation.RasterImageTriangulation,
115
- primitive: _l7Core.gl.TRIANGLES,
116
- depth: {
117
- enable: false
118
- },
119
- stencil: (0, _l7Utils.getMask)(mask, maskInside),
120
- pick: false
121
- }).then(function (model) {
122
- callbackModel([model]);
123
- }).catch(function (err) {
124
- console.warn(err);
125
- callbackModel([]);
126
- });
127
- }
141
+ return _regenerator.default.wrap(function _callee2$(_context2) {
142
+ while (1) {
143
+ switch (_context2.prev = _context2.next) {
144
+ case 0:
145
+ _ref2 = this.layer.getLayerConfig(), _ref2$mask = _ref2.mask, mask = _ref2$mask === void 0 ? false : _ref2$mask, _ref2$maskInside = _ref2.maskInside, maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside, rampColorsData = _ref2.rampColorsData, rampColors = _ref2.rampColors;
146
+ source = this.layer.getSource();
147
+ createTexture2D = this.rendererService.createTexture2D;
148
+ parserDataItem = source.data.dataArray[0];
149
+ _context2.next = 6;
150
+ return this.getRasterData(parserDataItem);
151
+
152
+ case 6:
153
+ _yield$this$getRaster = _context2.sent;
154
+ data = _yield$this$getRaster.data;
155
+ width = _yield$this$getRaster.width;
156
+ height = _yield$this$getRaster.height;
157
+ this.texture = createTexture2D({
158
+ data: data,
159
+ width: width,
160
+ height: height,
161
+ format: _l7Core.gl.LUMINANCE,
162
+ type: _l7Core.gl.FLOAT // aniso: 4,
163
+
164
+ });
165
+ imageData = rampColorsData ? rampColorsData : (0, _l7Utils.generateColorRamp)(rampColors);
166
+ this.colorTexture = createTexture2D({
167
+ data: imageData.data,
168
+ width: imageData.width,
169
+ height: imageData.height,
170
+ flipY: false
171
+ });
172
+ this.layer.buildLayerModel({
173
+ moduleName: 'rasterImageData',
174
+ vertexShader: rasterVert,
175
+ fragmentShader: rasterFrag,
176
+ triangulation: _triangulation.RasterImageTriangulation,
177
+ primitive: _l7Core.gl.TRIANGLES,
178
+ depth: {
179
+ enable: false
180
+ },
181
+ stencil: (0, _l7Utils.getMask)(mask, maskInside),
182
+ pick: false
183
+ }).then(function (model) {
184
+ callbackModel([model]);
185
+ }).catch(function (err) {
186
+ console.warn(err);
187
+ callbackModel([]);
188
+ });
189
+
190
+ case 14:
191
+ case "end":
192
+ return _context2.stop();
193
+ }
194
+ }
195
+ }, _callee2, this);
196
+ }));
197
+
198
+ function initModels(_x2) {
199
+ return _initModels.apply(this, arguments);
200
+ }
201
+
202
+ return initModels;
203
+ }()
128
204
  }, {
129
205
  key: "buildModels",
130
206
  value: function buildModels(callbackModel) {
@@ -0,0 +1,241 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
15
+
16
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
17
+
18
+ var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
19
+
20
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
21
+
22
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
23
+
24
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
25
+
26
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
27
+
28
+ var _l7Core = require("@antv/l7-core");
29
+
30
+ var _l7Utils = require("@antv/l7-utils");
31
+
32
+ var _BaseModel2 = _interopRequireDefault(require("../../core/BaseModel"));
33
+
34
+ var _triangulation = require("../../core/triangulation");
35
+
36
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
37
+
38
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
39
+
40
+ /* babel-plugin-inline-import '../shaders/raster_rgb_frag.glsl' */
41
+ var rasterFrag = "precision mediump float;\nuniform float u_opacity: 1.0;\nuniform sampler2D u_texture;\nuniform float u_channelRMax: 256.;\nuniform float u_channelGMax: 256.;\nuniform float u_channelBMax: 256.;\nvarying vec2 v_texCoord;\n\nvoid main() {\n vec3 rgb = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)).rgb;\n gl_FragColor = vec4(rgb.r/u_channelRMax, rgb.g/u_channelGMax, rgb.b/u_channelBMax, u_opacity);\n}";
42
+
43
+ /* babel-plugin-inline-import '../shaders/raster_2d_vert.glsl' */
44
+ var rasterVert = "precision highp float;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nattribute vec3 a_Position;\nattribute vec2 a_Uv;\nvarying vec2 v_texCoord;\n#pragma include \"projection\"\nvoid main() {\n v_texCoord = a_Uv;\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n gl_Position = u_Mvp * (vec4(project_pos.xy,0., 1.0));\n } else {\n gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 1.0));\n }\n}\n";
45
+
46
+ var RasterModel = /*#__PURE__*/function (_BaseModel) {
47
+ (0, _inherits2.default)(RasterModel, _BaseModel);
48
+
49
+ var _super = _createSuper(RasterModel);
50
+
51
+ function RasterModel() {
52
+ var _this;
53
+
54
+ (0, _classCallCheck2.default)(this, RasterModel);
55
+
56
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
57
+ args[_key] = arguments[_key];
58
+ }
59
+
60
+ _this = _super.call.apply(_super, [this].concat(args));
61
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "channelRMax", 256);
62
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "channelGMax", 256);
63
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "channelBMax", 256);
64
+ return _this;
65
+ }
66
+
67
+ (0, _createClass2.default)(RasterModel, [{
68
+ key: "getUninforms",
69
+ value: function getUninforms() {
70
+ var _ref = this.layer.getLayerConfig(),
71
+ _ref$opacity = _ref.opacity,
72
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
73
+ channelRMax = _ref.channelRMax,
74
+ channelGMax = _ref.channelGMax,
75
+ channelBMax = _ref.channelBMax;
76
+
77
+ return {
78
+ u_opacity: opacity || 1,
79
+ u_texture: this.texture,
80
+ u_channelRMax: channelRMax !== undefined ? channelRMax : this.channelRMax,
81
+ u_channelGMax: channelGMax !== undefined ? channelGMax : this.channelGMax,
82
+ u_channelBMax: channelBMax !== undefined ? channelBMax : this.channelBMax
83
+ };
84
+ }
85
+ }, {
86
+ key: "getRasterData",
87
+ value: function () {
88
+ var _getRasterData = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(parserDataItem) {
89
+ var _yield$parserDataItem, rasterData, width, height, channelR, channelG, channelB;
90
+
91
+ return _regenerator.default.wrap(function _callee$(_context) {
92
+ while (1) {
93
+ switch (_context.prev = _context.next) {
94
+ case 0:
95
+ if (!Array.isArray(parserDataItem.data)) {
96
+ _context.next = 4;
97
+ break;
98
+ }
99
+
100
+ return _context.abrupt("return", {
101
+ data: parserDataItem.data,
102
+ width: parserDataItem.width,
103
+ height: parserDataItem.height
104
+ });
105
+
106
+ case 4:
107
+ _context.next = 6;
108
+ return parserDataItem.data;
109
+
110
+ case 6:
111
+ _yield$parserDataItem = _context.sent;
112
+ rasterData = _yield$parserDataItem.rasterData;
113
+ width = _yield$parserDataItem.width;
114
+ height = _yield$parserDataItem.height;
115
+ channelR = _yield$parserDataItem.channelR;
116
+ channelG = _yield$parserDataItem.channelG;
117
+ channelB = _yield$parserDataItem.channelB;
118
+ this.channelRMax = channelR;
119
+ this.channelGMax = channelG;
120
+ this.channelBMax = channelB;
121
+ return _context.abrupt("return", {
122
+ data: Array.from(rasterData),
123
+ width: width,
124
+ height: height
125
+ });
126
+
127
+ case 17:
128
+ case "end":
129
+ return _context.stop();
130
+ }
131
+ }
132
+ }, _callee, this);
133
+ }));
134
+
135
+ function getRasterData(_x) {
136
+ return _getRasterData.apply(this, arguments);
137
+ }
138
+
139
+ return getRasterData;
140
+ }()
141
+ }, {
142
+ key: "initModels",
143
+ value: function () {
144
+ var _initModels = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(callbackModel) {
145
+ var _ref2, _ref2$mask, mask, _ref2$maskInside, maskInside, source, createTexture2D, parserDataItem, _yield$this$getRaster, data, width, height;
146
+
147
+ return _regenerator.default.wrap(function _callee2$(_context2) {
148
+ while (1) {
149
+ switch (_context2.prev = _context2.next) {
150
+ case 0:
151
+ _ref2 = this.layer.getLayerConfig(), _ref2$mask = _ref2.mask, mask = _ref2$mask === void 0 ? false : _ref2$mask, _ref2$maskInside = _ref2.maskInside, maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
152
+ source = this.layer.getSource();
153
+ createTexture2D = this.rendererService.createTexture2D;
154
+ parserDataItem = source.data.dataArray[0];
155
+ _context2.next = 6;
156
+ return this.getRasterData(parserDataItem);
157
+
158
+ case 6:
159
+ _yield$this$getRaster = _context2.sent;
160
+ data = _yield$this$getRaster.data;
161
+ width = _yield$this$getRaster.width;
162
+ height = _yield$this$getRaster.height;
163
+ this.texture = createTexture2D({
164
+ // @ts-ignore
165
+ data: data,
166
+ width: width,
167
+ height: height,
168
+ format: _l7Core.gl.RGB,
169
+ type: _l7Core.gl.FLOAT
170
+ });
171
+ this.layer.buildLayerModel({
172
+ moduleName: 'rasterImageDataRGBA',
173
+ vertexShader: rasterVert,
174
+ fragmentShader: rasterFrag,
175
+ triangulation: _triangulation.RasterImageTriangulation,
176
+ primitive: _l7Core.gl.TRIANGLES,
177
+ depth: {
178
+ enable: false
179
+ },
180
+ stencil: (0, _l7Utils.getMask)(mask, maskInside),
181
+ pick: false
182
+ }).then(function (model) {
183
+ callbackModel([model]);
184
+ }).catch(function (err) {
185
+ console.warn(err);
186
+ callbackModel([]);
187
+ });
188
+
189
+ case 12:
190
+ case "end":
191
+ return _context2.stop();
192
+ }
193
+ }
194
+ }, _callee2, this);
195
+ }));
196
+
197
+ function initModels(_x2) {
198
+ return _initModels.apply(this, arguments);
199
+ }
200
+
201
+ return initModels;
202
+ }()
203
+ }, {
204
+ key: "buildModels",
205
+ value: function buildModels(callbackModel) {
206
+ this.initModels(callbackModel);
207
+ }
208
+ }, {
209
+ key: "clearModels",
210
+ value: function clearModels() {
211
+ var _this$texture;
212
+
213
+ (_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
214
+ }
215
+ }, {
216
+ key: "registerBuiltinAttributes",
217
+ value: function registerBuiltinAttributes() {
218
+ // point layer size;
219
+ this.styleAttributeService.registerStyleAttribute({
220
+ name: 'uv',
221
+ type: _l7Core.AttributeType.Attribute,
222
+ descriptor: {
223
+ name: 'a_Uv',
224
+ buffer: {
225
+ // give the WebGL driver a hint that this buffer may change
226
+ usage: _l7Core.gl.DYNAMIC_DRAW,
227
+ data: [],
228
+ type: _l7Core.gl.FLOAT
229
+ },
230
+ size: 2,
231
+ update: function update(feature, featureIdx, vertex) {
232
+ return [vertex[3], vertex[4]];
233
+ }
234
+ }
235
+ });
236
+ }
237
+ }]);
238
+ return RasterModel;
239
+ }(_BaseModel2.default);
240
+
241
+ exports.default = RasterModel;
@@ -0,0 +1,12 @@
1
+ precision mediump float;
2
+ uniform float u_opacity: 1.0;
3
+ uniform sampler2D u_texture;
4
+ uniform float u_channelRMax: 256.;
5
+ uniform float u_channelGMax: 256.;
6
+ uniform float u_channelBMax: 256.;
7
+ varying vec2 v_texCoord;
8
+
9
+ void main() {
10
+ vec3 rgb = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)).rgb;
11
+ gl_FragColor = vec4(rgb.r/u_channelRMax, rgb.g/u_channelGMax, rgb.b/u_channelBMax, u_opacity);
12
+ }
@@ -44,6 +44,8 @@ var RasterTiffTile = /*#__PURE__*/function (_TileFactory) {
44
44
  (0, _createClass2.default)(RasterTiffTile, [{
45
45
  key: "createTile",
46
46
  value: function createTile(tile, initOptions) {
47
+ var _this$parentLayer, _this$parentLayer$get, _this$parentLayer$get2;
48
+
47
49
  var colorTexture = initOptions.colorTexture,
48
50
  opacity = initOptions.opacity,
49
51
  domain = initOptions.domain,
@@ -60,12 +62,14 @@ var RasterTiffTile = /*#__PURE__*/function (_TileFactory) {
60
62
  };
61
63
  }
62
64
 
65
+ var dataType = (_this$parentLayer = this.parentLayer) === null || _this$parentLayer === void 0 ? void 0 : (_this$parentLayer$get = _this$parentLayer.getSource()) === null || _this$parentLayer$get === void 0 ? void 0 : (_this$parentLayer$get2 = _this$parentLayer$get.parser) === null || _this$parentLayer$get2 === void 0 ? void 0 : _this$parentLayer$get2.dataType;
63
66
  var layer = new _rasterDataLayer.default({
64
67
  visible: tile.isVisible,
65
68
  mask: mask
66
69
  }).source(rasterData.data, {
67
70
  parser: {
68
- type: 'raster',
71
+ // 数据栅格分为单通道栅格和多通道彩色栅格
72
+ type: dataType === 'rgb' ? 'rasterRgb' : 'raster',
69
73
  width: rasterData.width,
70
74
  height: rasterData.height,
71
75
  extent: tile.bboxPolygon.bbox
@@ -73,6 +77,7 @@ var RasterTiffTile = /*#__PURE__*/function (_TileFactory) {
73
77
  }).style({
74
78
  colorTexture: colorTexture,
75
79
  opacity: opacity,
80
+ // TODO: 目前从 domain 从父瓦片图层的 style 进行配置,后续考虑从每个时机请求的栅格文件中进行配置
76
81
  domain: domain,
77
82
  clampHigh: clampHigh,
78
83
  clampLow: clampLow
@@ -25,6 +25,8 @@ var _BaseLayer2 = _interopRequireDefault(require("../../core/BaseLayer"));
25
25
 
26
26
  var _rasterTile = _interopRequireDefault(require("../../raster/models/rasterTile"));
27
27
 
28
+ var _rasterRgb = _interopRequireDefault(require("../../raster/models/rasterRgb"));
29
+
28
30
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
29
31
 
30
32
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
@@ -71,7 +73,11 @@ var RasterTiffLayer = /*#__PURE__*/function (_BaseLayer) {
71
73
  }, {
72
74
  key: "getModelType",
73
75
  value: function getModelType() {
74
- return _rasterTile.default;
76
+ if (this.layerSource.parser.type === 'rasterRgb') {
77
+ return _rasterRgb.default;
78
+ } else {
79
+ return _rasterTile.default;
80
+ }
75
81
  }
76
82
  }, {
77
83
  key: "getConfigSchema",