@antv/l7-layers 2.9.27-alpha.4 → 2.9.28

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 (98) hide show
  1. package/es/Geometry/index.js +2 -8
  2. package/es/canvas/index.js +2 -8
  3. package/es/citybuliding/building.js +2 -8
  4. package/es/core/BaseLayer.d.ts +2 -0
  5. package/es/core/BaseLayer.js +12 -1
  6. package/es/core/interface.d.ts +1 -0
  7. package/es/earth/index.js +1 -5
  8. package/es/heatmap/index.js +2 -8
  9. package/es/image/index.js +2 -8
  10. package/es/line/index.js +2 -8
  11. package/es/line/models/great_circle.js +4 -4
  12. package/es/mask/index.js +2 -6
  13. package/es/plugins/DataMappingPlugin.js +4 -0
  14. package/es/plugins/FeatureScalePlugin.js +4 -1
  15. package/es/plugins/LayerModelPlugin.js +2 -0
  16. package/es/plugins/UpdateStyleAttributePlugin.d.ts +1 -1
  17. package/es/plugins/UpdateStyleAttributePlugin.js +7 -4
  18. package/es/point/index.js +2 -10
  19. package/es/polygon/index.js +2 -8
  20. package/es/raster/index.js +3 -10
  21. package/es/raster/models/raster.js +2 -2
  22. package/es/raster/models/rasterTile.d.ts +18 -0
  23. package/es/raster/models/rasterTile.js +140 -0
  24. package/es/raster/shaders/raster_2d_frag.glsl +38 -2
  25. package/es/raster/shaders/raster_2d_vert.glsl +0 -1
  26. package/es/tile/interface.d.ts +1 -0
  27. package/es/tile/manager/baseMapTileLayerManager.d.ts +3 -25
  28. package/es/tile/manager/baseMapTileLayerManager.js +31 -119
  29. package/es/tile/manager/baseTileManager.d.ts +27 -0
  30. package/es/tile/manager/baseTileManager.js +107 -0
  31. package/es/tile/manager/tileLayerManager.d.ts +4 -26
  32. package/es/tile/manager/tileLayerManager.js +64 -142
  33. package/es/tile/manager/tilePickerManager.d.ts +1 -0
  34. package/es/tile/manager/tilePickerManager.js +5 -0
  35. package/es/tile/models/tileModel.d.ts +1 -0
  36. package/es/tile/models/tileModel.js +3 -0
  37. package/es/tile/tileFactory/base.js +5 -2
  38. package/es/tile/tileFactory/index.js +2 -1
  39. package/es/tile/tileFactory/point.js +2 -1
  40. package/es/tile/tileFactory/rasterData.js +9 -11
  41. package/es/tile/tileFactory/rasterDataLayer.d.ts +1 -1
  42. package/es/tile/tileFactory/rasterDataLayer.js +3 -9
  43. package/es/tile/tileFactory/test.js +4 -2
  44. package/es/tile/tileFactory/vectorLayer.d.ts +4 -1
  45. package/es/tile/tileFactory/vectorLayer.js +4 -8
  46. package/es/tile/tileLayer/baseMapTileLayer.d.ts +1 -0
  47. package/es/tile/tileLayer/baseMapTileLayer.js +8 -1
  48. package/es/tile/tileLayer/baseTileLayer.d.ts +1 -0
  49. package/es/tile/tileLayer/baseTileLayer.js +13 -2
  50. package/es/tile/tileTest.js +1 -3
  51. package/es/tile/tmsMapTileLayer.d.ts +0 -2
  52. package/es/tile/tmsMapTileLayer.js +2 -24
  53. package/es/tile/tmsTileLayer.d.ts +0 -2
  54. package/es/tile/tmsTileLayer.js +2 -24
  55. package/es/tile/utils.d.ts +3 -1
  56. package/es/tile/utils.js +48 -0
  57. package/es/wind/index.js +2 -8
  58. package/lib/Geometry/index.js +2 -8
  59. package/lib/canvas/index.js +2 -8
  60. package/lib/citybuliding/building.js +2 -8
  61. package/lib/core/BaseLayer.js +11 -1
  62. package/lib/earth/index.js +1 -5
  63. package/lib/heatmap/index.js +2 -8
  64. package/lib/image/index.js +2 -8
  65. package/lib/line/index.js +2 -8
  66. package/lib/line/models/great_circle.js +4 -4
  67. package/lib/mask/index.js +2 -6
  68. package/lib/plugins/DataMappingPlugin.js +4 -0
  69. package/lib/plugins/FeatureScalePlugin.js +4 -1
  70. package/lib/plugins/LayerModelPlugin.js +2 -0
  71. package/lib/plugins/UpdateStyleAttributePlugin.js +7 -4
  72. package/lib/point/index.js +2 -10
  73. package/lib/polygon/index.js +2 -8
  74. package/lib/raster/index.js +3 -10
  75. package/lib/raster/models/raster.js +2 -2
  76. package/lib/raster/models/rasterTile.js +154 -0
  77. package/lib/raster/shaders/raster_2d_frag.glsl +38 -2
  78. package/lib/raster/shaders/raster_2d_vert.glsl +0 -1
  79. package/lib/tile/manager/baseMapTileLayerManager.js +33 -121
  80. package/lib/tile/manager/baseTileManager.js +121 -0
  81. package/lib/tile/manager/tileLayerManager.js +66 -144
  82. package/lib/tile/manager/tilePickerManager.js +5 -0
  83. package/lib/tile/models/tileModel.js +3 -0
  84. package/lib/tile/tileFactory/base.js +5 -2
  85. package/lib/tile/tileFactory/index.js +3 -1
  86. package/lib/tile/tileFactory/point.js +2 -1
  87. package/lib/tile/tileFactory/rasterData.js +9 -11
  88. package/lib/tile/tileFactory/rasterDataLayer.js +4 -10
  89. package/lib/tile/tileFactory/test.js +4 -2
  90. package/lib/tile/tileFactory/vectorLayer.js +3 -8
  91. package/lib/tile/tileLayer/baseMapTileLayer.js +8 -1
  92. package/lib/tile/tileLayer/baseTileLayer.js +13 -2
  93. package/lib/tile/tileTest.js +1 -3
  94. package/lib/tile/tmsMapTileLayer.js +1 -23
  95. package/lib/tile/tmsTileLayer.js +1 -23
  96. package/lib/tile/utils.js +52 -0
  97. package/lib/wind/index.js +2 -8
  98. package/package.json +6 -6
@@ -56,11 +56,7 @@ var GeometryLayer = /*#__PURE__*/function (_BaseLayer) {
56
56
  var modelType = this.getModelType();
57
57
  this.layerModel = new GeometryModels[modelType](this);
58
58
  this.layerModel.initModels(function (models) {
59
- _this2.models = models;
60
-
61
- _this2.emit('modelLoaded', null);
62
-
63
- _this2.layerService.throttleRenderLayers();
59
+ _this2.dispatchModelLoad(models);
64
60
  });
65
61
  }
66
62
  }, {
@@ -69,9 +65,7 @@ var GeometryLayer = /*#__PURE__*/function (_BaseLayer) {
69
65
  var _this3 = this;
70
66
 
71
67
  this.layerModel.buildModels(function (models) {
72
- _this3.models = models;
73
-
74
- _this3.emit('modelLoaded', null);
68
+ _this3.dispatchModelLoad(models);
75
69
  });
76
70
  }
77
71
  }, {
@@ -44,11 +44,7 @@ var CanvasLayer = /*#__PURE__*/function (_BaseLayer) {
44
44
  var modelType = this.getModelType();
45
45
  this.layerModel = new CanvasModels[modelType](this);
46
46
  this.layerModel.initModels(function (models) {
47
- _this2.models = models;
48
-
49
- _this2.emit('modelLoaded', null);
50
-
51
- _this2.layerService.throttleRenderLayers();
47
+ _this2.dispatchModelLoad(models);
52
48
  });
53
49
  }
54
50
  }, {
@@ -57,9 +53,7 @@ var CanvasLayer = /*#__PURE__*/function (_BaseLayer) {
57
53
  var _this3 = this;
58
54
 
59
55
  this.layerModel.buildModels(function (models) {
60
- _this3.models = models;
61
-
62
- _this3.emit('modelLoaded', null);
56
+ _this3.dispatchModelLoad(models);
63
57
  });
64
58
  }
65
59
  }, {
@@ -41,11 +41,7 @@ var CityBuildingLayer = /*#__PURE__*/function (_BaseLayer) {
41
41
 
42
42
  this.layerModel = new CityBuildModel(this);
43
43
  this.layerModel.initModels(function (models) {
44
- _this2.models = models;
45
-
46
- _this2.emit('modelLoaded', null);
47
-
48
- _this2.layerService.throttleRenderLayers();
44
+ _this2.dispatchModelLoad(models);
49
45
  });
50
46
  }
51
47
  }, {
@@ -54,9 +50,7 @@ var CityBuildingLayer = /*#__PURE__*/function (_BaseLayer) {
54
50
  var _this3 = this;
55
51
 
56
52
  this.layerModel.buildModels(function (models) {
57
- _this3.models = models;
58
-
59
- _this3.emit('modelLoaded', null);
53
+ _this3.dispatchModelLoad(models);
60
54
  });
61
55
  }
62
56
  }, {
@@ -42,6 +42,7 @@ export default class BaseLayer<ChildLayerStyleOptions = {}> extends EventEmitter
42
42
  afterDestroy: SyncHook;
43
43
  };
44
44
  models: IModel[];
45
+ modelLoaded: boolean;
45
46
  multiPassRenderer: IMultiPassRenderer;
46
47
  plugins: ILayerPlugin[];
47
48
  sourceOption: {
@@ -214,6 +215,7 @@ export default class BaseLayer<ChildLayerStyleOptions = {}> extends EventEmitter
214
215
  protected getModelType(): unknown;
215
216
  protected getDefaultConfig(): {};
216
217
  protected sourceEvent: () => void;
218
+ protected dispatchModelLoad(models: IModel[]): void;
217
219
  protected reRender(): void;
218
220
  protected splitValuesAndCallbackInAttribute(valuesOrCallback?: unknown[], defaultValues?: unknown[]): {
219
221
  values: unknown[] | undefined;
@@ -126,6 +126,8 @@ var BaseLayer = (_dec = lazyInject(TYPES.IGlobalConfigService), (_class = /*#__P
126
126
 
127
127
  _defineProperty(_assertThisInitialized(_this), "models", []);
128
128
 
129
+ _defineProperty(_assertThisInitialized(_this), "modelLoaded", false);
130
+
129
131
  _defineProperty(_assertThisInitialized(_this), "layerChildren", []);
130
132
 
131
133
  _defineProperty(_assertThisInitialized(_this), "masks", []);
@@ -951,7 +953,7 @@ var BaseLayer = (_dec = lazyInject(TYPES.IGlobalConfigService), (_class = /*#__P
951
953
  }, {
952
954
  key: "destroy",
953
955
  value: function destroy() {
954
- var _this$multiPassRender, _this$layerModel2;
956
+ var _this$multiPassRender, _this$layerModel2, _this$tileLayer;
955
957
 
956
958
  var refresh = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
957
959
 
@@ -979,6 +981,7 @@ var BaseLayer = (_dec = lazyInject(TYPES.IGlobalConfigService), (_class = /*#__P
979
981
  this.hooks.afterDestroy.call(); // Tip: 清除各个图层自定义的 models 资源
980
982
 
981
983
  (_this$layerModel2 = this.layerModel) === null || _this$layerModel2 === void 0 ? void 0 : _this$layerModel2.clearModels(refresh);
984
+ (_this$tileLayer = this.tileLayer) === null || _this$tileLayer === void 0 ? void 0 : _this$tileLayer.destroy();
982
985
  this.models = [];
983
986
  this.layerService.cleanRemove(this, refresh);
984
987
  this.emit('remove', {
@@ -1373,6 +1376,14 @@ var BaseLayer = (_dec = lazyInject(TYPES.IGlobalConfigService), (_class = /*#__P
1373
1376
  value: function getDefaultConfig() {
1374
1377
  return {};
1375
1378
  }
1379
+ }, {
1380
+ key: "dispatchModelLoad",
1381
+ value: function dispatchModelLoad(models) {
1382
+ this.models = models;
1383
+ this.emit('modelLoaded', null);
1384
+ this.modelLoaded = true;
1385
+ this.layerService.throttleRenderLayers();
1386
+ }
1376
1387
  }, {
1377
1388
  key: "reRender",
1378
1389
  value: function reRender() {
@@ -210,6 +210,7 @@ export interface IHeatMapLayerStyleOptions extends IBaseLayerStyleOptions {
210
210
  coverage?: number;
211
211
  }
212
212
  export interface IRasterLayerStyleOptions extends IBaseLayerStyleOptions {
213
+ colorTexture?: ITexture2D;
213
214
  domain: [number, number];
214
215
  noDataValue: number;
215
216
  clampLow: boolean;
package/es/earth/index.js CHANGED
@@ -59,11 +59,7 @@ var EarthLayer = /*#__PURE__*/function (_BaseLayer) {
59
59
  var shape = this.getModelType();
60
60
  this.layerModel = new EarthModels[shape](this);
61
61
  this.layerModel.initModels(function (models) {
62
- _this2.models = models;
63
-
64
- _this2.emit('modelLoaded', null);
65
-
66
- _this2.layerService.throttleRenderLayers();
62
+ _this2.dispatchModelLoad(models);
67
63
  });
68
64
  }
69
65
  /**
@@ -42,11 +42,7 @@ var HeatMapLayer = /*#__PURE__*/function (_BaseLayer) {
42
42
  var shape = this.getModelType();
43
43
  this.layerModel = new HeatMapModels[shape](this);
44
44
  this.layerModel.initModels(function (models) {
45
- _this2.models = models;
46
-
47
- _this2.emit('modelLoaded', null);
48
-
49
- _this2.layerService.throttleRenderLayers();
45
+ _this2.dispatchModelLoad(models);
50
46
  });
51
47
  }
52
48
  }, {
@@ -55,9 +51,7 @@ var HeatMapLayer = /*#__PURE__*/function (_BaseLayer) {
55
51
  var _this3 = this;
56
52
 
57
53
  this.layerModel.buildModels(function (models) {
58
- _this3.models = models;
59
-
60
- _this3.emit('modelLoaded', null);
54
+ _this3.dispatchModelLoad(models);
61
55
  });
62
56
  }
63
57
  }, {
package/es/image/index.js CHANGED
@@ -42,11 +42,7 @@ var ImageLayer = /*#__PURE__*/function (_BaseLayer) {
42
42
  var modelType = this.getModelType();
43
43
  this.layerModel = new ImageModels[modelType](this);
44
44
  this.layerModel.initModels(function (models) {
45
- _this2.models = models;
46
-
47
- _this2.emit('modelLoaded', null);
48
-
49
- _this2.layerService.throttleRenderLayers();
45
+ _this2.dispatchModelLoad(models);
50
46
  });
51
47
  }
52
48
  }, {
@@ -55,9 +51,7 @@ var ImageLayer = /*#__PURE__*/function (_BaseLayer) {
55
51
  var _this3 = this;
56
52
 
57
53
  this.layerModel.buildModels(function (models) {
58
- _this3.models = models;
59
-
60
- _this3.emit('modelLoaded', null);
54
+ _this3.dispatchModelLoad(models);
61
55
  });
62
56
  }
63
57
  }, {
package/es/line/index.js CHANGED
@@ -63,11 +63,7 @@ var LineLayer = /*#__PURE__*/function (_BaseLayer) {
63
63
  var shape = this.getModelType();
64
64
  this.layerModel = new LineModels[shape](this);
65
65
  this.layerModel.initModels(function (models) {
66
- _this2.models = models;
67
-
68
- _this2.emit('modelLoaded', null);
69
-
70
- _this2.layerService.throttleRenderLayers();
66
+ _this2.dispatchModelLoad(models);
71
67
  });
72
68
  }
73
69
  }, {
@@ -76,9 +72,7 @@ var LineLayer = /*#__PURE__*/function (_BaseLayer) {
76
72
  var _this3 = this;
77
73
 
78
74
  this.layerModel.buildModels(function (models) {
79
- _this3.models = models;
80
-
81
- _this3.emit('modelLoaded', null);
75
+ _this3.dispatchModelLoad(models);
82
76
  });
83
77
  }
84
78
  }, {
@@ -233,7 +233,7 @@ var GreatCircleModel = /*#__PURE__*/function (_BaseModel) {
233
233
  type: gl.FLOAT
234
234
  },
235
235
  size: 1,
236
- update: function update(feature) {
236
+ update: function update(feature, featureIdx, vertex, attributeIdx) {
237
237
  var _feature$size = feature.size,
238
238
  size = _feature$size === void 0 ? 1 : _feature$size;
239
239
  return Array.isArray(size) ? [size[0]] : [size];
@@ -252,7 +252,7 @@ var GreatCircleModel = /*#__PURE__*/function (_BaseModel) {
252
252
  type: gl.FLOAT
253
253
  },
254
254
  size: 4,
255
- update: function update(feature, featureIdx, vertex) {
255
+ update: function update(feature, featureIdx, vertex, attributeIdx) {
256
256
  return [vertex[3], vertex[4], vertex[5], vertex[6]];
257
257
  }
258
258
  }
@@ -269,10 +269,10 @@ var GreatCircleModel = /*#__PURE__*/function (_BaseModel) {
269
269
  type: gl.FLOAT
270
270
  },
271
271
  size: 2,
272
- update: function update(feature) {
272
+ update: function update(feature, featureIdx, vertex, attributeIdx) {
273
273
  var iconMap = _this2.iconService.getIconMap();
274
274
 
275
- var texture = feature.texture;
275
+ var texture = feature.texture; // console.log('icon feature', feature)
276
276
 
277
277
  var _ref4 = iconMap[texture] || {
278
278
  x: 0,
package/es/mask/index.js CHANGED
@@ -115,9 +115,7 @@ var MaskLayer = /*#__PURE__*/function (_BaseLayer) {
115
115
  var shape = this.getModelType();
116
116
  this.layerModel = new MaskModels[shape](this);
117
117
  this.layerModel.initModels(function (models) {
118
- _this3.models = models;
119
-
120
- _this3.emit('modelLoaded', null);
118
+ _this3.dispatchModelLoad(models);
121
119
  });
122
120
  }
123
121
  }, {
@@ -126,9 +124,7 @@ var MaskLayer = /*#__PURE__*/function (_BaseLayer) {
126
124
  var _this4 = this;
127
125
 
128
126
  this.layerModel.buildModels(function (models) {
129
- _this4.models = models;
130
-
131
- _this4.emit('modelLoaded', null);
127
+ _this4.dispatchModelLoad(models);
132
128
  });
133
129
  }
134
130
  }, {
@@ -65,6 +65,10 @@ var DataMappingPlugin = (_dec = injectable(), _dec2 = inject(TYPES.IMapService),
65
65
  }); // remapping before render
66
66
 
67
67
  layer.hooks.beforeRender.tap('DataMappingPlugin', function () {
68
+ var _layer$getLayerConfig = layer.getLayerConfig(),
69
+ usage = _layer$getLayerConfig.usage;
70
+
71
+ if (usage === 'basemap') return;
68
72
  var source = layer.getSource();
69
73
 
70
74
  if (layer.layerModelNeedUpdate || !source || !source.inited) {
@@ -78,7 +78,10 @@ var FeatureScalePlugin = (_dec = injectable(), _dec(_class = /*#__PURE__*/functi
78
78
  return true;
79
79
  });
80
80
  layer.hooks.beforeRender.tap('FeatureScalePlugin', function () {
81
- if (layer.layerModelNeedUpdate) {
81
+ var _layer$getLayerConfig = layer.getLayerConfig(),
82
+ usage = _layer$getLayerConfig.usage;
83
+
84
+ if (layer.layerModelNeedUpdate || usage === 'basemap') {
82
85
  return;
83
86
  }
84
87
 
@@ -40,6 +40,7 @@ var LayerModelPlugin = (_dec = injectable(), _dec(_class = /*#__PURE__*/function
40
40
 
41
41
  layer.hooks.init.tap('LayerModelPlugin', function () {
42
42
  layer.inited = true;
43
+ layer.modelLoaded = false;
43
44
  var source = layer.getSource();
44
45
 
45
46
  if (source.inited) {
@@ -48,6 +49,7 @@ var LayerModelPlugin = (_dec = injectable(), _dec(_class = /*#__PURE__*/function
48
49
  });
49
50
  layer.hooks.beforeRenderData.tap('DataSourcePlugin', function () {
50
51
  var source = layer.getSource();
52
+ layer.modelLoaded = false;
51
53
 
52
54
  if (source.inited) {
53
55
  _this.prepareLayerModel(layer);
@@ -7,6 +7,6 @@ export default class UpdateStyleAttributePlugin implements ILayerPlugin {
7
7
  apply(layer: ILayer, { styleAttributeService, }: {
8
8
  styleAttributeService: IStyleAttributeService;
9
9
  }): void;
10
- private updateStyleAtrribute;
10
+ private updateStyleAttribute;
11
11
  private initStyleAttribute;
12
12
  }
@@ -26,18 +26,21 @@ var UpdateStyleAttributePlugin = (_dec = injectable(), _dec(_class = /*#__PURE__
26
26
  });
27
27
  });
28
28
  layer.hooks.beforeRender.tap('UpdateStyleAttributePlugin', function () {
29
- if (layer.layerModelNeedUpdate) {
29
+ var _layer$getLayerConfig = layer.getLayerConfig(),
30
+ usage = _layer$getLayerConfig.usage;
31
+
32
+ if (layer.layerModelNeedUpdate || layer.tileLayer || usage === 'basemap') {
30
33
  return;
31
34
  }
32
35
 
33
- _this.updateStyleAtrribute(layer, {
36
+ layer.modelLoaded && _this.updateStyleAttribute(layer, {
34
37
  styleAttributeService: styleAttributeService
35
38
  });
36
39
  });
37
40
  }
38
41
  }, {
39
- key: "updateStyleAtrribute",
40
- value: function updateStyleAtrribute(layer, _ref2) {
42
+ key: "updateStyleAttribute",
43
+ value: function updateStyleAttribute(layer, _ref2) {
41
44
  var styleAttributeService = _ref2.styleAttributeService;
42
45
  var attributes = styleAttributeService.getLayerStyleAttributes() || [];
43
46
  var filter = styleAttributeService.getLayerStyleAttribute('filter');
package/es/point/index.js CHANGED
@@ -60,13 +60,7 @@ var PointLayer = /*#__PURE__*/function (_BaseLayer) {
60
60
  var modelType = this.getModelType();
61
61
  this.layerModel = new PointModels[modelType](this);
62
62
  this.layerModel.initModels(function (models) {
63
- _this2.models = models;
64
-
65
- _this2.layerService.updateLayerRenderList();
66
-
67
- _this2.emit('modelLoaded', null);
68
-
69
- _this2.layerService.throttleRenderLayers();
63
+ _this2.dispatchModelLoad(models);
70
64
  });
71
65
  }
72
66
  }, {
@@ -75,9 +69,7 @@ var PointLayer = /*#__PURE__*/function (_BaseLayer) {
75
69
  var _this3 = this;
76
70
 
77
71
  this.layerModel.buildModels(function (models) {
78
- _this3.models = models;
79
-
80
- _this3.emit('modelLoaded', null);
72
+ _this3.dispatchModelLoad(models);
81
73
  });
82
74
  }
83
75
  /**
@@ -43,11 +43,7 @@ var PolygonLayer = /*#__PURE__*/function (_BaseLayer) {
43
43
  var shape = this.getModelType();
44
44
  this.layerModel = new PolygonModels[shape](this);
45
45
  this.layerModel.initModels(function (models) {
46
- _this2.models = models;
47
-
48
- _this2.emit('modelLoaded', null);
49
-
50
- _this2.layerService.throttleRenderLayers();
46
+ _this2.dispatchModelLoad(models);
51
47
  });
52
48
  }
53
49
  }, {
@@ -56,9 +52,7 @@ var PolygonLayer = /*#__PURE__*/function (_BaseLayer) {
56
52
  var _this3 = this;
57
53
 
58
54
  this.layerModel.buildModels(function (models) {
59
- _this3.models = models;
60
-
61
- _this3.emit('modelLoaded', null);
55
+ _this3.dispatchModelLoad(models);
62
56
  });
63
57
  }
64
58
  }, {
@@ -42,11 +42,7 @@ var RaterLayer = /*#__PURE__*/function (_BaseLayer) {
42
42
  var modelType = this.getModelType();
43
43
  this.layerModel = new RasterModels[modelType](this);
44
44
  this.layerModel.initModels(function (models) {
45
- _this2.models = models;
46
-
47
- _this2.emit('modelLoaded', null);
48
-
49
- _this2.layerService.throttleRenderLayers();
45
+ _this2.dispatchModelLoad(models);
50
46
  });
51
47
  }
52
48
  }, {
@@ -55,9 +51,7 @@ var RaterLayer = /*#__PURE__*/function (_BaseLayer) {
55
51
  var _this3 = this;
56
52
 
57
53
  this.layerModel.buildModels(function (models) {
58
- _this3.models = models;
59
-
60
- _this3.emit('modelLoaded', null);
54
+ _this3.dispatchModelLoad(models);
61
55
  });
62
56
  }
63
57
  }, {
@@ -99,8 +93,7 @@ var RaterLayer = /*#__PURE__*/function (_BaseLayer) {
99
93
 
100
94
  default:
101
95
  return 'raster';
102
- } // return 'raster';
103
-
96
+ }
104
97
  }
105
98
  }]);
106
99
 
@@ -15,10 +15,10 @@ import BaseModel from "../../core/BaseModel";
15
15
  import { RasterImageTriangulation } from "../../core/triangulation";
16
16
 
17
17
  /* babel-plugin-inline-import '../shaders/raster_2d_frag.glsl' */
18
- var rasterFrag = "precision mediump float;\nuniform float u_opacity: 1.0;\nuniform sampler2D u_texture;\nuniform sampler2D u_colorTexture;\nuniform float u_min;\nuniform float u_max;\nuniform vec2 u_domain;\nuniform float u_noDataValue;\nuniform bool u_clampLow: true;\nuniform bool u_clampHigh: true;\nvarying vec2 v_texCoord;\n\nvoid main() {\n\n float value = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)).r;\n if (value == u_noDataValue)\n gl_FragColor = vec4(0.0, 0, 0, 0.0);\n else if ((!u_clampLow && value < u_domain[0]) || (!u_clampHigh && value > u_domain[1]))\n gl_FragColor = vec4(0, 0, 0, 0);\n else {\n float normalisedValue =(value - u_domain[0]) / (u_domain[1] -u_domain[0]);\n vec4 color = texture2D(u_colorTexture,vec2(normalisedValue, 0));\n gl_FragColor = color;\n gl_FragColor.a = gl_FragColor.a * u_opacity ;\n }\n\n\n}\n";
18
+ var rasterFrag = "precision mediump float;\nuniform float u_opacity: 1.0;\nuniform sampler2D u_texture;\nuniform sampler2D u_colorTexture;\nuniform float u_min;\nuniform float u_max;\nuniform vec2 u_domain;\nuniform float u_noDataValue;\nuniform bool u_clampLow: true;\nuniform bool u_clampHigh: true;\nvarying vec2 v_texCoord;\n\nvoid main() {\n\n float value = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)).r;\n if (value == u_noDataValue)\n gl_FragColor = vec4(0.0, 0, 0, 0.0);\n else if ((!u_clampLow && value < u_domain[0]) || (!u_clampHigh && value > u_domain[1]))\n gl_FragColor = vec4(0, 0, 0, 0);\n else {\n float normalisedValue =(value - u_domain[0]) / (u_domain[1] -u_domain[0]);\n vec4 color = texture2D(u_colorTexture,vec2(normalisedValue, 0));\n gl_FragColor = color;\n gl_FragColor.a = gl_FragColor.a * u_opacity ;\n }\n}\n";
19
19
 
20
20
  /* babel-plugin-inline-import '../shaders/raster_2d_vert.glsl' */
21
- 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 gl_Position = project_common_position_to_clipspace(vec4(project_pos.xy,0., 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";
21
+ 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";
22
22
 
23
23
  var RasterModel = /*#__PURE__*/function (_BaseModel) {
24
24
  _inherits(RasterModel, _BaseModel);
@@ -0,0 +1,18 @@
1
+ import { IModel, ITexture2D } from '@antv/l7-core';
2
+ import BaseModel from '../../core/BaseModel';
3
+ export default class RasterModel extends BaseModel {
4
+ protected texture: ITexture2D;
5
+ getUninforms(): {
6
+ u_opacity: number;
7
+ u_texture: ITexture2D;
8
+ u_domain: [number, number];
9
+ u_clampLow: boolean;
10
+ u_clampHigh: boolean;
11
+ u_noDataValue: number;
12
+ u_colorTexture: ITexture2D;
13
+ };
14
+ initModels(callbackModel: (models: IModel[]) => void): void;
15
+ buildModels(callbackModel: (models: IModel[]) => void): void;
16
+ clearModels(): void;
17
+ protected registerBuiltinAttributes(): void;
18
+ }
@@ -0,0 +1,140 @@
1
+ import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
+ import _createClass from "@babel/runtime/helpers/createClass";
3
+ import _inherits from "@babel/runtime/helpers/inherits";
4
+ import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
5
+ import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
6
+
7
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
8
+
9
+ 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; } }
10
+
11
+ import { AttributeType, gl } from '@antv/l7-core';
12
+ import { getMask } from '@antv/l7-utils';
13
+ import BaseModel from "../../core/BaseModel";
14
+ import { RasterImageTriangulation } from "../../core/triangulation";
15
+
16
+ /* babel-plugin-inline-import '../shaders/raster_2d_frag.glsl' */
17
+ var rasterFrag = "precision mediump float;\nuniform float u_opacity: 1.0;\nuniform sampler2D u_texture;\nuniform sampler2D u_colorTexture;\nuniform float u_min;\nuniform float u_max;\nuniform vec2 u_domain;\nuniform float u_noDataValue;\nuniform bool u_clampLow: true;\nuniform bool u_clampHigh: true;\nvarying vec2 v_texCoord;\n\n\n\n// float getBlurIndusty() {\n// vec2 u_ViewportSize = vec2(1024);\n\n// float vW = 2.0/u_ViewportSize.x;\n// float vH = 2.0/u_ViewportSize.y;\n// vec2 vUv = v_texCoord;\n// float i11 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y + 1.0 * vH) ).r;\n// float i12 = texture2D( u_texture, vec2( vUv.x - 0.0 * vW, vUv.y + 1.0 * vH) ).r;\n// float i13 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y + 1.0 * vH) ).r;\n\n// float i21 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y) ).r;\n// float i22 = texture2D( u_texture, vec2( vUv.x , vUv.y) ).r;\n// float i23 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y) ).r;\n\n// float i31 = texture2D( u_texture, vec2( vUv.x - 1.0 * vW, vUv.y-1.0*vH) ).r;\n// float i32 = texture2D( u_texture, vec2( vUv.x - 0.0 * vW, vUv.y-1.0*vH) ).r;\n// float i33 = texture2D( u_texture, vec2( vUv.x + 1.0 * vW, vUv.y-1.0*vH) ).r;\n\n// return(\n// i11 + \n// i12 + \n// i13 + \n// i21 + \n// i21 + \n// i22 + \n// i23 + \n// i31 + \n// i32 + \n// i33\n// )/9.0;\n// }\n\nvoid main() {\n\n float value = texture2D(u_texture,vec2(v_texCoord.x,v_texCoord.y)).r;\n\n // float value = getBlurIndusty();\n\n\n if (value == u_noDataValue)\n gl_FragColor = vec4(0.0, 0, 0, 0.0);\n else if ((!u_clampLow && value < u_domain[0]) || (!u_clampHigh && value > u_domain[1]))\n gl_FragColor = vec4(0, 0, 0, 0);\n else {\n float normalisedValue =(value - u_domain[0]) / (u_domain[1] -u_domain[0]);\n vec4 color = texture2D(u_colorTexture,vec2(normalisedValue, 0));\n gl_FragColor = color;\n gl_FragColor.a = gl_FragColor.a * u_opacity ;\n }\n}\n";
18
+
19
+ /* babel-plugin-inline-import '../shaders/raster_2d_vert.glsl' */
20
+ 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";
21
+
22
+ var RasterModel = /*#__PURE__*/function (_BaseModel) {
23
+ _inherits(RasterModel, _BaseModel);
24
+
25
+ var _super = _createSuper(RasterModel);
26
+
27
+ function RasterModel() {
28
+ _classCallCheck(this, RasterModel);
29
+
30
+ return _super.apply(this, arguments);
31
+ }
32
+
33
+ _createClass(RasterModel, [{
34
+ key: "getUninforms",
35
+ value: function getUninforms() {
36
+ var createTexture2D = this.rendererService.createTexture2D;
37
+
38
+ var _ref = this.layer.getLayerConfig(),
39
+ _ref$colorTexture = _ref.colorTexture,
40
+ colorTexture = _ref$colorTexture === void 0 ? createTexture2D({
41
+ data: [],
42
+ width: 0,
43
+ height: 0,
44
+ flipY: false
45
+ }) : _ref$colorTexture,
46
+ _ref$opacity = _ref.opacity,
47
+ opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
48
+ _ref$clampLow = _ref.clampLow,
49
+ clampLow = _ref$clampLow === void 0 ? true : _ref$clampLow,
50
+ _ref$clampHigh = _ref.clampHigh,
51
+ clampHigh = _ref$clampHigh === void 0 ? true : _ref$clampHigh,
52
+ _ref$noDataValue = _ref.noDataValue,
53
+ noDataValue = _ref$noDataValue === void 0 ? -9999999 : _ref$noDataValue,
54
+ _ref$domain = _ref.domain,
55
+ domain = _ref$domain === void 0 ? [0, 1] : _ref$domain;
56
+
57
+ return {
58
+ u_opacity: opacity || 1,
59
+ u_texture: this.texture,
60
+ u_domain: domain,
61
+ u_clampLow: clampLow,
62
+ u_clampHigh: typeof clampHigh !== 'undefined' ? clampHigh : clampLow,
63
+ u_noDataValue: noDataValue,
64
+ u_colorTexture: colorTexture
65
+ };
66
+ }
67
+ }, {
68
+ key: "initModels",
69
+ value: function initModels(callbackModel) {
70
+ var _ref2 = this.layer.getLayerConfig(),
71
+ _ref2$mask = _ref2.mask,
72
+ mask = _ref2$mask === void 0 ? false : _ref2$mask,
73
+ _ref2$maskInside = _ref2.maskInside,
74
+ maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
75
+
76
+ var source = this.layer.getSource();
77
+ var createTexture2D = this.rendererService.createTexture2D;
78
+ var parserDataItem = source.data.dataArray[0];
79
+ this.texture = createTexture2D({
80
+ data: parserDataItem.data,
81
+ width: parserDataItem.width,
82
+ height: parserDataItem.height,
83
+ format: gl.LUMINANCE,
84
+ type: gl.FLOAT
85
+ });
86
+ this.layer.buildLayerModel({
87
+ moduleName: 'rasterTileImageData',
88
+ vertexShader: rasterVert,
89
+ fragmentShader: rasterFrag,
90
+ triangulation: RasterImageTriangulation,
91
+ depth: {
92
+ enable: false
93
+ },
94
+ stencil: getMask(mask, maskInside),
95
+ pick: false
96
+ }).then(function (model) {
97
+ callbackModel([model]);
98
+ }).catch(function (err) {
99
+ console.warn(err);
100
+ callbackModel([]);
101
+ });
102
+ }
103
+ }, {
104
+ key: "buildModels",
105
+ value: function buildModels(callbackModel) {
106
+ this.initModels(callbackModel);
107
+ }
108
+ }, {
109
+ key: "clearModels",
110
+ value: function clearModels() {
111
+ var _this$texture;
112
+
113
+ (_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
114
+ }
115
+ }, {
116
+ key: "registerBuiltinAttributes",
117
+ value: function registerBuiltinAttributes() {
118
+ this.styleAttributeService.registerStyleAttribute({
119
+ name: 'uv',
120
+ type: AttributeType.Attribute,
121
+ descriptor: {
122
+ name: 'a_Uv',
123
+ buffer: {
124
+ usage: gl.DYNAMIC_DRAW,
125
+ data: [],
126
+ type: gl.FLOAT
127
+ },
128
+ size: 2,
129
+ update: function update(feature, featureIdx, vertex) {
130
+ return [vertex[3], vertex[4]];
131
+ }
132
+ }
133
+ });
134
+ }
135
+ }]);
136
+
137
+ return RasterModel;
138
+ }(BaseModel);
139
+
140
+ export { RasterModel as default };