@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.
- package/es/core/BaseLayer.d.ts +1 -0
- package/es/core/BaseLayer.js +12 -1
- package/es/core/interface.d.ts +3 -0
- package/es/glsl.d.ts +5 -0
- package/es/plugins/DataMappingPlugin.d.ts +0 -1
- package/es/plugins/DataMappingPlugin.js +1 -8
- package/es/plugins/ShaderUniformPlugin.js +1 -9
- package/es/raster/index.d.ts +1 -1
- package/es/raster/index.js +4 -0
- package/es/raster/models/index.d.ts +1 -1
- package/es/raster/models/index.js +2 -0
- package/es/raster/models/raster.d.ts +2 -1
- package/es/raster/models/raster.js +118 -44
- package/es/raster/models/rasterRgb.d.ts +20 -0
- package/es/raster/models/rasterRgb.js +226 -0
- package/es/raster/shaders/raster_rgb_frag.glsl +12 -0
- package/es/tile/tileFactory/base.d.ts +1 -1
- package/es/tile/tileFactory/rasterData.js +6 -1
- package/es/tile/tileFactory/rasterDataLayer.d.ts +2 -1
- package/es/tile/tileFactory/rasterDataLayer.js +6 -1
- package/lib/core/BaseLayer.js +12 -1
- package/lib/glsl.d.ts +5 -0
- package/lib/plugins/DataMappingPlugin.js +1 -8
- package/lib/plugins/ShaderUniformPlugin.js +1 -9
- package/lib/raster/index.js +4 -0
- package/lib/raster/models/index.js +3 -0
- package/lib/raster/models/raster.js +120 -44
- package/lib/raster/models/rasterRgb.js +241 -0
- package/lib/raster/shaders/raster_rgb_frag.glsl +12 -0
- package/lib/tile/tileFactory/rasterData.js +6 -1
- package/lib/tile/tileFactory/rasterDataLayer.js +7 -1
- package/package.json +6 -6
|
@@ -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
|
-
|
|
61
|
+
if (this.layerSource.parser.type === 'rasterRgb') {
|
|
62
|
+
return RasterRgbModel;
|
|
63
|
+
} else {
|
|
64
|
+
return RasterModel;
|
|
65
|
+
}
|
|
61
66
|
}
|
|
62
67
|
}, {
|
|
63
68
|
key: "getConfigSchema",
|
package/lib/core/BaseLayer.js
CHANGED
|
@@ -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
|
|
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
|
@@ -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 =
|
|
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
|
-
|
|
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
|
|
package/lib/raster/index.js
CHANGED
|
@@ -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
|
|
84
|
-
var
|
|
85
|
-
|
|
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
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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",
|