@antv/l7-layers 2.9.15 → 2.9.17

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 (268) hide show
  1. package/LICENSE.md +1 -1
  2. package/es/core/BaseLayer.d.ts +4 -2
  3. package/es/core/BaseLayer.js +47 -21
  4. package/es/core/BaseLayer.js.map +1 -1
  5. package/es/core/BaseModel.d.ts +2 -1
  6. package/es/core/BaseModel.js +3 -0
  7. package/es/core/BaseModel.js.map +1 -1
  8. package/es/core/interface.d.ts +27 -1
  9. package/es/core/interface.js.map +1 -1
  10. package/es/core/triangulation.d.ts +0 -1
  11. package/es/core/triangulation.js +9 -36
  12. package/es/core/triangulation.js.map +1 -1
  13. package/es/image/index.d.ts +1 -1
  14. package/es/image/index.js +14 -2
  15. package/es/image/index.js.map +1 -1
  16. package/es/image/models/dataImage.d.ts +22 -0
  17. package/es/image/models/dataImage.js +230 -0
  18. package/es/image/models/dataImage.js.map +1 -0
  19. package/es/image/models/image.d.ts +1 -0
  20. package/es/image/models/image.js +7 -0
  21. package/es/image/models/image.js.map +1 -1
  22. package/es/image/models/index.d.ts +1 -1
  23. package/es/image/models/index.js +3 -1
  24. package/es/image/models/index.js.map +1 -1
  25. package/es/line/index.d.ts +1 -1
  26. package/es/line/index.js +13 -1
  27. package/es/line/index.js.map +1 -1
  28. package/es/line/models/arc.js +1 -1
  29. package/es/line/models/arc.js.map +1 -1
  30. package/es/line/models/earthArc_3d.d.ts +17 -0
  31. package/es/line/models/earthArc_3d.js +311 -0
  32. package/es/line/models/earthArc_3d.js.map +1 -0
  33. package/es/line/models/great_circle.js +2 -2
  34. package/es/line/models/half.d.ts +18 -0
  35. package/es/line/models/half.js +244 -0
  36. package/es/line/models/half.js.map +1 -0
  37. package/es/line/models/index.d.ts +1 -1
  38. package/es/line/models/index.js +9 -1
  39. package/es/line/models/index.js.map +1 -1
  40. package/es/line/models/line.js +1 -1
  41. package/es/line/models/simpleLine.d.ts +0 -1
  42. package/es/line/models/simpleLine.js +10 -53
  43. package/es/line/models/simpleLine.js.map +1 -1
  44. package/es/line/models/tile.d.ts +20 -0
  45. package/es/line/models/tile.js +327 -0
  46. package/es/line/models/tile.js.map +1 -0
  47. package/es/plugins/DataMappingPlugin.js +1 -1
  48. package/es/plugins/DataMappingPlugin.js.map +1 -1
  49. package/es/plugins/DataSourcePlugin.js +7 -6
  50. package/es/plugins/DataSourcePlugin.js.map +1 -1
  51. package/es/plugins/FeatureScalePlugin.js +35 -9
  52. package/es/plugins/FeatureScalePlugin.js.map +1 -1
  53. package/es/plugins/ShaderUniformPlugin.js +3 -1
  54. package/es/plugins/ShaderUniformPlugin.js.map +1 -1
  55. package/es/point/index.d.ts +1 -1
  56. package/es/point/index.js +10 -2
  57. package/es/point/index.js.map +1 -1
  58. package/es/point/models/earthExtrude.d.ts +24 -0
  59. package/es/point/models/earthExtrude.js +259 -0
  60. package/es/point/models/earthExtrude.js.map +1 -0
  61. package/es/point/models/earthFill.d.ts +20 -0
  62. package/es/point/models/earthFill.js +255 -0
  63. package/es/point/models/earthFill.js.map +1 -0
  64. package/es/point/models/extrude.d.ts +0 -1
  65. package/es/point/models/extrude.js +2 -10
  66. package/es/point/models/extrude.js.map +1 -1
  67. package/es/point/models/fill.d.ts +8 -1
  68. package/es/point/models/fill.js +55 -75
  69. package/es/point/models/fill.js.map +1 -1
  70. package/es/point/models/index.d.ts +1 -1
  71. package/es/point/models/index.js +9 -1
  72. package/es/point/models/index.js.map +1 -1
  73. package/es/point/models/radar.js +2 -6
  74. package/es/point/models/radar.js.map +1 -1
  75. package/es/point/models/tile.d.ts +31 -0
  76. package/es/point/models/tile.js +291 -0
  77. package/es/point/models/tile.js.map +1 -0
  78. package/es/polygon/index.js +6 -0
  79. package/es/polygon/index.js.map +1 -1
  80. package/es/polygon/models/index.d.ts +1 -1
  81. package/es/polygon/models/index.js +5 -1
  82. package/es/polygon/models/index.js.map +1 -1
  83. package/es/polygon/models/tile.d.ts +16 -0
  84. package/es/polygon/models/tile.js +137 -0
  85. package/es/polygon/models/tile.js.map +1 -0
  86. package/es/raster/index.d.ts +2 -2
  87. package/es/raster/index.js +4 -4
  88. package/es/raster/index.js.map +1 -1
  89. package/es/raster/models/index.js +1 -1
  90. package/es/raster/models/index.js.map +1 -1
  91. package/es/raster/models/raster.d.ts +2 -0
  92. package/es/raster/models/raster.js +24 -12
  93. package/es/raster/models/raster.js.map +1 -1
  94. package/es/tile/interface.d.ts +28 -0
  95. package/es/tile/interface.js +2 -0
  96. package/es/tile/interface.js.map +1 -0
  97. package/es/tile/manager/tileConfigManager.d.ts +17 -0
  98. package/es/tile/manager/tileConfigManager.js +123 -0
  99. package/es/tile/manager/tileConfigManager.js.map +1 -0
  100. package/es/tile/manager/tileLayerManager.d.ts +35 -0
  101. package/es/tile/manager/tileLayerManager.js +317 -0
  102. package/es/tile/manager/tileLayerManager.js.map +1 -0
  103. package/es/tile/manager/tilePickerManager.d.ts +21 -0
  104. package/es/tile/manager/tilePickerManager.js +189 -0
  105. package/es/tile/manager/tilePickerManager.js.map +1 -0
  106. package/es/tile/models/tileModel.d.ts +8 -0
  107. package/es/tile/models/tileModel.js +61 -0
  108. package/es/tile/models/tileModel.js.map +1 -0
  109. package/es/tile/tileFactory/base.d.ts +44 -0
  110. package/es/tile/tileFactory/base.js +423 -0
  111. package/es/tile/tileFactory/base.js.map +1 -0
  112. package/es/tile/tileFactory/index.d.ts +5 -0
  113. package/es/tile/tileFactory/index.js +30 -0
  114. package/es/tile/tileFactory/index.js.map +1 -0
  115. package/es/tile/tileFactory/line.d.ts +12 -0
  116. package/es/tile/tileFactory/line.js +65 -0
  117. package/es/tile/tileFactory/line.js.map +1 -0
  118. package/es/tile/tileFactory/point.d.ts +12 -0
  119. package/es/tile/tileFactory/point.js +65 -0
  120. package/es/tile/tileFactory/point.js.map +1 -0
  121. package/es/tile/tileFactory/polygon.d.ts +12 -0
  122. package/es/tile/tileFactory/polygon.js +65 -0
  123. package/es/tile/tileFactory/polygon.js.map +1 -0
  124. package/es/tile/tileFactory/raster.d.ts +12 -0
  125. package/es/tile/tileFactory/raster.js +61 -0
  126. package/es/tile/tileFactory/raster.js.map +1 -0
  127. package/es/tile/tileFactory/rasterData.d.ts +12 -0
  128. package/es/tile/tileFactory/rasterData.js +86 -0
  129. package/es/tile/tileFactory/rasterData.js.map +1 -0
  130. package/es/tile/tileFactory/rasterDataLayer.d.ts +19 -0
  131. package/es/{core/LayerGroup.js → tile/tileFactory/rasterDataLayer.js} +39 -32
  132. package/es/tile/tileFactory/rasterDataLayer.js.map +1 -0
  133. package/es/tile/tileFactory/vectorLayer.d.ts +27 -0
  134. package/es/tile/tileFactory/vectorLayer.js +131 -0
  135. package/es/tile/tileFactory/vectorLayer.js.map +1 -0
  136. package/es/tile/tileLayer/baseTileLayer.d.ts +47 -0
  137. package/es/tile/tileLayer/baseTileLayer.js +409 -0
  138. package/es/tile/tileLayer/baseTileLayer.js.map +1 -0
  139. package/es/tile/tmsTileLayer.d.ts +7 -0
  140. package/es/tile/tmsTileLayer.js +100 -0
  141. package/es/tile/tmsTileLayer.js.map +1 -0
  142. package/es/tile/utils.d.ts +11 -0
  143. package/es/tile/utils.js +125 -0
  144. package/es/tile/utils.js.map +1 -0
  145. package/es/utils/extrude_polyline.d.ts +0 -15
  146. package/es/utils/extrude_polyline.js +6 -138
  147. package/es/utils/extrude_polyline.js.map +1 -1
  148. package/es/utils/simpleLine.d.ts +23 -0
  149. package/es/utils/simpleLine.js +105 -0
  150. package/es/utils/simpleLine.js.map +1 -0
  151. package/es/wind/models/wind.js +26 -22
  152. package/es/wind/models/wind.js.map +1 -1
  153. package/lib/core/BaseLayer.js +45 -20
  154. package/lib/core/BaseLayer.js.map +1 -1
  155. package/lib/core/BaseModel.js +2 -0
  156. package/lib/core/BaseModel.js.map +1 -1
  157. package/lib/core/interface.js.map +1 -1
  158. package/lib/core/triangulation.js +10 -36
  159. package/lib/core/triangulation.js.map +1 -1
  160. package/lib/image/index.js +14 -2
  161. package/lib/image/index.js.map +1 -1
  162. package/lib/image/models/dataImage.js +245 -0
  163. package/lib/image/models/dataImage.js.map +1 -0
  164. package/lib/image/models/image.js +7 -0
  165. package/lib/image/models/image.js.map +1 -1
  166. package/lib/image/models/index.js +4 -1
  167. package/lib/image/models/index.js.map +1 -1
  168. package/lib/line/index.js +13 -1
  169. package/lib/line/index.js.map +1 -1
  170. package/lib/line/models/arc.js +1 -1
  171. package/lib/line/models/arc.js.map +1 -1
  172. package/lib/line/models/earthArc_3d.js +328 -0
  173. package/lib/line/models/earthArc_3d.js.map +1 -0
  174. package/lib/line/models/great_circle.js +2 -2
  175. package/lib/line/models/half.js +260 -0
  176. package/lib/line/models/half.js.map +1 -0
  177. package/lib/line/models/index.js +13 -1
  178. package/lib/line/models/index.js.map +1 -1
  179. package/lib/line/models/line.js +1 -1
  180. package/lib/line/models/simpleLine.js +10 -53
  181. package/lib/line/models/simpleLine.js.map +1 -1
  182. package/lib/line/models/tile.js +342 -0
  183. package/lib/line/models/tile.js.map +1 -0
  184. package/lib/plugins/DataMappingPlugin.js +1 -1
  185. package/lib/plugins/DataMappingPlugin.js.map +1 -1
  186. package/lib/plugins/DataSourcePlugin.js +7 -6
  187. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  188. package/lib/plugins/FeatureScalePlugin.js +35 -9
  189. package/lib/plugins/FeatureScalePlugin.js.map +1 -1
  190. package/lib/plugins/ShaderUniformPlugin.js +3 -1
  191. package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
  192. package/lib/point/index.js +10 -2
  193. package/lib/point/index.js.map +1 -1
  194. package/lib/point/models/earthExtrude.js +277 -0
  195. package/lib/point/models/earthExtrude.js.map +1 -0
  196. package/lib/point/models/earthFill.js +291 -0
  197. package/lib/point/models/earthFill.js.map +1 -0
  198. package/lib/point/models/extrude.js +2 -11
  199. package/lib/point/models/extrude.js.map +1 -1
  200. package/lib/point/models/fill.js +51 -93
  201. package/lib/point/models/fill.js.map +1 -1
  202. package/lib/point/models/index.js +13 -1
  203. package/lib/point/models/index.js.map +1 -1
  204. package/lib/point/models/radar.js +1 -5
  205. package/lib/point/models/radar.js.map +1 -1
  206. package/lib/point/models/tile.js +308 -0
  207. package/lib/point/models/tile.js.map +1 -0
  208. package/lib/polygon/index.js +6 -0
  209. package/lib/polygon/index.js.map +1 -1
  210. package/lib/polygon/models/index.js +7 -1
  211. package/lib/polygon/models/index.js.map +1 -1
  212. package/lib/polygon/models/tile.js +152 -0
  213. package/lib/polygon/models/tile.js.map +1 -0
  214. package/lib/raster/index.js +4 -4
  215. package/lib/raster/index.js.map +1 -1
  216. package/lib/raster/models/index.js +2 -2
  217. package/lib/raster/models/index.js.map +1 -1
  218. package/lib/raster/models/raster.js +24 -12
  219. package/lib/raster/models/raster.js.map +1 -1
  220. package/lib/tile/interface.js +2 -0
  221. package/lib/tile/interface.js.map +1 -0
  222. package/lib/tile/manager/tileConfigManager.js +134 -0
  223. package/lib/tile/manager/tileConfigManager.js.map +1 -0
  224. package/lib/tile/manager/tileLayerManager.js +325 -0
  225. package/lib/tile/manager/tileLayerManager.js.map +1 -0
  226. package/lib/tile/manager/tilePickerManager.js +195 -0
  227. package/lib/tile/manager/tilePickerManager.js.map +1 -0
  228. package/lib/tile/models/tileModel.js +73 -0
  229. package/lib/tile/models/tileModel.js.map +1 -0
  230. package/lib/tile/tileFactory/base.js +436 -0
  231. package/lib/tile/tileFactory/base.js.map +1 -0
  232. package/lib/tile/tileFactory/index.js +60 -0
  233. package/lib/tile/tileFactory/index.js.map +1 -0
  234. package/lib/tile/tileFactory/line.js +76 -0
  235. package/lib/tile/tileFactory/line.js.map +1 -0
  236. package/lib/tile/tileFactory/point.js +76 -0
  237. package/lib/tile/tileFactory/point.js.map +1 -0
  238. package/lib/tile/tileFactory/polygon.js +76 -0
  239. package/lib/tile/tileFactory/polygon.js.map +1 -0
  240. package/lib/tile/tileFactory/raster.js +74 -0
  241. package/lib/tile/tileFactory/raster.js.map +1 -0
  242. package/lib/tile/tileFactory/rasterData.js +99 -0
  243. package/lib/tile/tileFactory/rasterData.js.map +1 -0
  244. package/lib/{core/LayerGroup.js → tile/tileFactory/rasterDataLayer.js} +40 -32
  245. package/lib/tile/tileFactory/rasterDataLayer.js.map +1 -0
  246. package/lib/tile/tileFactory/vectorLayer.js +145 -0
  247. package/lib/tile/tileFactory/vectorLayer.js.map +1 -0
  248. package/lib/tile/tileLayer/baseTileLayer.js +407 -0
  249. package/lib/tile/tileLayer/baseTileLayer.js.map +1 -0
  250. package/lib/tile/tmsTileLayer.js +116 -0
  251. package/lib/tile/tmsTileLayer.js.map +1 -0
  252. package/lib/tile/utils.js +147 -0
  253. package/lib/tile/utils.js.map +1 -0
  254. package/lib/utils/extrude_polyline.js +6 -140
  255. package/lib/utils/extrude_polyline.js.map +1 -1
  256. package/lib/utils/simpleLine.js +117 -0
  257. package/lib/utils/simpleLine.js.map +1 -0
  258. package/lib/wind/models/wind.js +26 -22
  259. package/lib/wind/models/wind.js.map +1 -1
  260. package/package.json +8 -6
  261. package/es/core/LayerGroup.d.ts +0 -9
  262. package/es/core/LayerGroup.js.map +0 -1
  263. package/es/raster/models/raste-tile.d.ts +0 -23
  264. package/es/raster/models/raste-tile.js +0 -285
  265. package/es/raster/models/raste-tile.js.map +0 -1
  266. package/lib/core/LayerGroup.js.map +0 -1
  267. package/lib/raster/models/raste-tile.js +0 -294
  268. package/lib/raster/models/raste-tile.js.map +0 -1
@@ -0,0 +1,117 @@
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
+ exports.direction = direction;
10
+
11
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
+
13
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
14
+
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
+
17
+ var _l7Utils = require("@antv/l7-utils");
18
+
19
+ var _glMatrix = require("gl-matrix");
20
+
21
+ var lineA = _glMatrix.vec2.create();
22
+
23
+ function direction(out, a, b) {
24
+ _glMatrix.vec2.sub(out, a, b);
25
+
26
+ _glMatrix.vec2.normalize(out, out);
27
+
28
+ return out;
29
+ }
30
+
31
+ var ExtrudePolyline = function () {
32
+ function ExtrudePolyline() {
33
+ (0, _classCallCheck2.default)(this, ExtrudePolyline);
34
+ (0, _defineProperty2.default)(this, "complex", void 0);
35
+ (0, _defineProperty2.default)(this, "started", false);
36
+ (0, _defineProperty2.default)(this, "totalDistance", 0);
37
+ (0, _defineProperty2.default)(this, "currentIndex", 0);
38
+ this.complex = {
39
+ positions: [],
40
+ indices: [],
41
+ startIndex: 0,
42
+ indexes: []
43
+ };
44
+ }
45
+
46
+ (0, _createClass2.default)(ExtrudePolyline, [{
47
+ key: "simpleExtrude",
48
+ value: function simpleExtrude(points) {
49
+ var complex = this.complex;
50
+
51
+ if (points.length <= 1) {
52
+ return complex;
53
+ }
54
+
55
+ this.started = false;
56
+ this.totalDistance = 0;
57
+ var total = points.length;
58
+ var count = complex.startIndex;
59
+
60
+ for (var i = 1; i < total; i++) {
61
+ var last = points[i - 1];
62
+ var cur = points[i];
63
+ var amt = this.simpleSegment(complex, count, last, cur);
64
+ count += amt;
65
+ }
66
+
67
+ for (var _i = 0; _i < complex.positions.length / 6; _i++) {
68
+ complex.positions[_i * 6 + 5] = this.totalDistance;
69
+ }
70
+
71
+ return complex;
72
+ }
73
+ }, {
74
+ key: "simpleSegment",
75
+ value: function simpleSegment(complex, index, last, cur) {
76
+ var count = 0;
77
+ var indices = complex.indices;
78
+ var positions = complex.positions;
79
+ var flatCur = (0, _l7Utils.aProjectFlat)([cur[0], cur[1]]);
80
+ var flatLast = (0, _l7Utils.aProjectFlat)([last[0], last[1]]);
81
+ direction(lineA, flatCur, flatLast);
82
+ var segmentDistance = this.lineSegmentDistance(flatCur, flatLast);
83
+ this.totalDistance += segmentDistance;
84
+
85
+ if (!this.started) {
86
+ this.started = true;
87
+ this.extrusions(positions, last, this.totalDistance - segmentDistance);
88
+ }
89
+
90
+ this.extrusions(positions, cur, this.totalDistance);
91
+ indices.push(index + 0, index + 1, index + 2);
92
+ indices.push(index + 2, index + 1, index + 3);
93
+ count += 2;
94
+ return count;
95
+ }
96
+ }, {
97
+ key: "extrusions",
98
+ value: function extrusions(positions, point, distanceRadio) {
99
+ positions.push(point[0], point[1], point[2] | 0, distanceRadio, 0, point[2] | 0);
100
+ this.complex.indexes.push(this.currentIndex);
101
+ positions.push(point[0], point[1], point[2] | 0, distanceRadio, 0, point[2] | 0);
102
+ this.complex.indexes.push(this.currentIndex);
103
+ this.currentIndex++;
104
+ }
105
+ }, {
106
+ key: "lineSegmentDistance",
107
+ value: function lineSegmentDistance(b1, a1) {
108
+ var dx = a1[0] - b1[0];
109
+ var dy = a1[1] - b1[1];
110
+ return Math.sqrt(dx * dx + dy * dy);
111
+ }
112
+ }]);
113
+ return ExtrudePolyline;
114
+ }();
115
+
116
+ exports.default = ExtrudePolyline;
117
+ //# sourceMappingURL=simpleLine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/utils/simpleLine.ts"],"names":["lineA","vec2","create","direction","out","a","b","sub","normalize","ExtrudePolyline","complex","positions","indices","startIndex","indexes","points","length","started","totalDistance","total","count","i","last","cur","amt","simpleSegment","index","flatCur","flatLast","segmentDistance","lineSegmentDistance","extrusions","push","point","distanceRadio","currentIndex","b1","a1","dx","dy","Math","sqrt"],"mappings":"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","sourcesContent":["import { aProjectFlat } from '@antv/l7-utils';\nimport { vec2, vec3 } from 'gl-matrix';\n\nconst lineA = vec2.create();\n\nexport function direction(out: vec2, a: vec2, b: vec2) {\n vec2.sub(out, a, b);\n vec2.normalize(out, out);\n return out;\n}\n\nexport default class ExtrudePolyline {\n public complex: {\n positions: number[];\n indices: number[];\n startIndex: number;\n indexes: number[];\n };\n\n private started: boolean = false;\n\n private totalDistance: number = 0;\n private currentIndex: number = 0;\n\n constructor() {\n this.complex = {\n positions: [],\n indices: [],\n startIndex: 0,\n indexes: [],\n };\n }\n\n public simpleExtrude(points: number[][]) {\n const complex = this.complex;\n if (points.length <= 1) {\n return complex;\n }\n\n this.started = false;\n\n this.totalDistance = 0;\n\n const total = points.length;\n let count = complex.startIndex;\n for (let i = 1; i < total; i++) {\n const last = points[i - 1] as vec3;\n const cur = points[i] as vec3;\n const amt = this.simpleSegment(complex, count, last, cur);\n count += amt;\n }\n\n for (let i = 0; i < complex.positions.length / 6; i++) {\n complex.positions[i * 6 + 5] = this.totalDistance;\n }\n return complex;\n }\n private simpleSegment(complex: any, index: number, last: vec3, cur: vec3) {\n let count = 0;\n const indices = complex.indices;\n const positions = complex.positions;\n const flatCur = aProjectFlat([cur[0], cur[1]]) as [number, number];\n const flatLast = aProjectFlat([last[0], last[1]]) as [number, number];\n\n direction(lineA, flatCur, flatLast);\n\n const segmentDistance = this.lineSegmentDistance(flatCur, flatLast);\n this.totalDistance += segmentDistance;\n\n if (!this.started) {\n this.started = true;\n this.extrusions(positions, last, this.totalDistance - segmentDistance);\n }\n\n this.extrusions(positions, cur, this.totalDistance);\n indices.push(index + 0, index + 1, index + 2);\n indices.push(index + 2, index + 1, index + 3);\n count += 2;\n\n return count;\n }\n private extrusions(\n positions: number[],\n point: vec3, // 顶点\n distanceRadio: number,\n ) {\n positions.push(\n point[0],\n point[1],\n point[2] | 0,\n distanceRadio,\n 0,\n point[2] | 0,\n );\n this.complex.indexes.push(this.currentIndex);\n positions.push(\n point[0],\n point[1],\n point[2] | 0,\n distanceRadio,\n 0,\n point[2] | 0,\n );\n this.complex.indexes.push(this.currentIndex);\n this.currentIndex++;\n }\n private lineSegmentDistance(b1: [number, number], a1: [number, number]) {\n const dx = a1[0] - b1[0];\n const dy = a1[1] - b1[1];\n return Math.sqrt(dx * dx + dy * dy);\n }\n}\n"],"file":"simpleLine.js"}
@@ -92,6 +92,32 @@ var WindModel = function (_BaseModel) {
92
92
  value: function initModels() {
93
93
  var _this3 = this;
94
94
 
95
+ var _ref = this.layer.getLayerConfig(),
96
+ _ref$uMin = _ref.uMin,
97
+ uMin = _ref$uMin === void 0 ? -21.32 : _ref$uMin,
98
+ _ref$uMax = _ref.uMax,
99
+ uMax = _ref$uMax === void 0 ? 26.8 : _ref$uMax,
100
+ _ref$vMin = _ref.vMin,
101
+ vMin = _ref$vMin === void 0 ? -21.57 : _ref$vMin,
102
+ _ref$vMax = _ref.vMax,
103
+ vMax = _ref$vMax === void 0 ? 21.42 : _ref$vMax,
104
+ _ref$fadeOpacity = _ref.fadeOpacity,
105
+ fadeOpacity = _ref$fadeOpacity === void 0 ? 0.996 : _ref$fadeOpacity,
106
+ _ref$speedFactor = _ref.speedFactor,
107
+ speedFactor = _ref$speedFactor === void 0 ? 0.25 : _ref$speedFactor,
108
+ _ref$dropRate = _ref.dropRate,
109
+ dropRate = _ref$dropRate === void 0 ? 0.003 : _ref$dropRate,
110
+ _ref$dropRateBump = _ref.dropRateBump,
111
+ dropRateBump = _ref$dropRateBump === void 0 ? 0.01 : _ref$dropRateBump,
112
+ _ref$rampColors = _ref.rampColors,
113
+ rampColors = _ref$rampColors === void 0 ? defaultRampColors : _ref$rampColors,
114
+ _ref$sizeScale = _ref.sizeScale,
115
+ sizeScale = _ref$sizeScale === void 0 ? 0.5 : _ref$sizeScale,
116
+ _ref$mask = _ref.mask,
117
+ mask = _ref$mask === void 0 ? false : _ref$mask,
118
+ _ref$maskInside = _ref.maskInside,
119
+ maskInside = _ref$maskInside === void 0 ? true : _ref$maskInside;
120
+
95
121
  var createTexture2D = this.rendererService.createTexture2D;
96
122
  var source = this.layer.getSource();
97
123
  this.texture = createTexture2D({
@@ -101,28 +127,6 @@ var WindModel = function (_BaseModel) {
101
127
  var glContext = this.rendererService.getGLContext();
102
128
  this.imageCoords = source.data.dataArray[0].coordinates;
103
129
  source.data.images.then(function (imageData) {
104
- var _ref = _this3.layer.getLayerConfig(),
105
- _ref$uMin = _ref.uMin,
106
- uMin = _ref$uMin === void 0 ? -21.32 : _ref$uMin,
107
- _ref$uMax = _ref.uMax,
108
- uMax = _ref$uMax === void 0 ? 26.8 : _ref$uMax,
109
- _ref$vMin = _ref.vMin,
110
- vMin = _ref$vMin === void 0 ? -21.57 : _ref$vMin,
111
- _ref$vMax = _ref.vMax,
112
- vMax = _ref$vMax === void 0 ? 21.42 : _ref$vMax,
113
- _ref$fadeOpacity = _ref.fadeOpacity,
114
- fadeOpacity = _ref$fadeOpacity === void 0 ? 0.996 : _ref$fadeOpacity,
115
- _ref$speedFactor = _ref.speedFactor,
116
- speedFactor = _ref$speedFactor === void 0 ? 0.25 : _ref$speedFactor,
117
- _ref$dropRate = _ref.dropRate,
118
- dropRate = _ref$dropRate === void 0 ? 0.003 : _ref$dropRate,
119
- _ref$dropRateBump = _ref.dropRateBump,
120
- dropRateBump = _ref$dropRateBump === void 0 ? 0.01 : _ref$dropRateBump,
121
- _ref$rampColors = _ref.rampColors,
122
- rampColors = _ref$rampColors === void 0 ? defaultRampColors : _ref$rampColors,
123
- _ref$sizeScale = _ref.sizeScale,
124
- sizeScale = _ref$sizeScale === void 0 ? 0.5 : _ref$sizeScale;
125
-
126
130
  _this3.sizeScale = sizeScale;
127
131
 
128
132
  var _this3$getWindSize = _this3.getWindSize(),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/wind/models/wind.ts"],"names":["defaultRampColors","WindModel","FrequencyController","frequency","run","drawWind","drawColorMode","Error","createTexture2D","rendererService","source","layer","getSource","texture","height","width","glContext","getGLContext","imageCoords","data","dataArray","coordinates","images","then","imageData","getLayerConfig","uMin","uMax","vMin","vMax","fadeOpacity","speedFactor","dropRate","dropRateBump","rampColors","sizeScale","getWindSize","imageWidth","imageHeight","options","wind","Wind","setWind","image","layerService","updateLayerRenderList","renderLayers","colorModel","buildLayerModel","moduleName","vertexShader","WindVert","fragmentShader","WindFrag","triangulation","RasterImageTriangulation","primitive","gl","TRIANGLES","depth","enable","blend","getBlend","p1","mapService","lngLatToPixel","p2","Math","floor","x","y","initModels","destroy","properties","opacity","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","numParticles","reSize","updateWindDir","updateParticelNum","updateColorRampTexture","draw","d","w","h","setBaseState","uniforms","u_opacity","u_texture","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n Point,\n} from '@antv/l7-core';\nimport { FrequencyController } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IWindLayerStyleOptions } from '../../core/interface';\nimport { RasterImageTriangulation } from '../../core/triangulation';\nimport WindFrag from '../shaders/wind_frag.glsl';\nimport WindVert from '../shaders/wind_vert.glsl';\nimport { IWind, IWindProps, Wind } from './windRender';\n\nconst defaultRampColors = {\n 0.0: '#3288bd',\n 0.1: '#66c2a5',\n 0.2: '#abdda4',\n 0.3: '#e6f598',\n 0.4: '#fee08b',\n 0.5: '#fdae61',\n 0.6: '#f46d43',\n 1.0: '#d53e4f',\n};\n\nexport default class WindModel extends BaseModel {\n protected texture: ITexture2D;\n\n private colorModel: IModel;\n private wind: IWind;\n private imageCoords: [Point, Point];\n private sizeScale: number = 0.5;\n // https://mapbox.github.io/webgl-wind/demo/\n // source: 'http://nomads.ncep.noaa.gov',\n\n private frequency = new FrequencyController(7.2);\n\n public render() {\n // TODO: 控制风场的平均更新频率\n this.frequency.run(() => {\n this.drawWind();\n });\n this.drawColorMode();\n }\n\n public getUninforms(): IModelUniform {\n throw new Error('Method not implemented.');\n }\n\n public initModels() {\n const { createTexture2D } = this.rendererService;\n\n const source = this.layer.getSource();\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n const glContext = this.rendererService.getGLContext();\n this.imageCoords = source.data.dataArray[0].coordinates as [Point, Point];\n\n source.data.images.then((imageData: HTMLImageElement[]) => {\n const {\n uMin = -21.32,\n uMax = 26.8,\n vMin = -21.57,\n vMax = 21.42,\n fadeOpacity = 0.996,\n speedFactor = 0.25,\n dropRate = 0.003,\n dropRateBump = 0.01,\n rampColors = defaultRampColors,\n sizeScale = 0.5,\n } = this.layer.getLayerConfig() as IWindLayerStyleOptions;\n this.sizeScale = sizeScale;\n\n const { imageWidth, imageHeight } = this.getWindSize();\n\n const options: IWindProps = {\n glContext,\n imageWidth,\n imageHeight,\n fadeOpacity,\n speedFactor,\n dropRate,\n dropRateBump,\n rampColors,\n };\n\n this.wind = new Wind(options);\n\n // imageData[0] 风场图\n this.wind.setWind({\n uMin,\n uMax,\n vMin,\n vMax,\n image: imageData[0],\n });\n\n this.texture = createTexture2D({\n data: imageData[0],\n width: imageData[0].width,\n height: imageData[0].height,\n });\n\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n });\n\n this.colorModel = this.layer.buildLayerModel({\n moduleName: 'WindLayer',\n vertexShader: WindVert,\n fragmentShader: WindFrag,\n triangulation: RasterImageTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n blend: this.getBlend(),\n });\n\n return [this.colorModel];\n }\n\n public getWindSize() {\n const p1 = this.mapService.lngLatToPixel(this.imageCoords[0]);\n const p2 = this.mapService.lngLatToPixel(this.imageCoords[1]);\n\n const imageWidth = Math.floor((p2.x - p1.x) * this.sizeScale);\n const imageHeight = Math.floor((p1.y - p2.y) * this.sizeScale);\n return { imageWidth, imageHeight };\n }\n\n public buildModels() {\n return this.initModels();\n }\n\n public clearModels(): void {\n this.texture?.destroy();\n this.wind?.destroy();\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n\n private drawWind() {\n if (this.wind) {\n const {\n uMin = -21.32,\n uMax = 26.8,\n vMin = -21.57,\n vMax = 21.42,\n numParticles = 65535,\n fadeOpacity = 0.996,\n speedFactor = 0.25,\n dropRate = 0.003,\n dropRateBump = 0.01,\n rampColors = defaultRampColors,\n sizeScale = 0.5,\n } = this.layer.getLayerConfig() as IWindLayerStyleOptions;\n if (typeof sizeScale === 'number' && sizeScale !== this.sizeScale) {\n this.sizeScale = sizeScale;\n const { imageWidth, imageHeight } = this.getWindSize();\n this.wind.reSize(imageWidth, imageHeight);\n }\n\n this.wind.updateWindDir(uMin, uMax, vMin, vMax);\n\n this.wind.updateParticelNum(numParticles);\n\n this.wind.updateColorRampTexture(rampColors);\n\n this.wind.fadeOpacity = fadeOpacity;\n this.wind.speedFactor = speedFactor;\n this.wind.dropRate = dropRate;\n this.wind.dropRateBump = dropRateBump;\n\n const { d, w, h } = this.wind.draw();\n // TODO: 恢复 L7 渲染流程中 gl 状态\n this.rendererService.setBaseState();\n this.texture.update({\n data: d,\n width: w,\n height: h,\n });\n }\n }\n\n private drawColorMode() {\n const { opacity } = this.layer.getLayerConfig() as IWindLayerStyleOptions;\n this.colorModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_texture: this.texture,\n },\n });\n }\n}\n"],"file":"wind.js"}
1
+ {"version":3,"sources":["../../../src/wind/models/wind.ts"],"names":["defaultRampColors","WindModel","FrequencyController","frequency","run","drawWind","drawColorMode","Error","layer","getLayerConfig","uMin","uMax","vMin","vMax","fadeOpacity","speedFactor","dropRate","dropRateBump","rampColors","sizeScale","mask","maskInside","createTexture2D","rendererService","source","getSource","texture","height","width","glContext","getGLContext","imageCoords","data","dataArray","coordinates","images","then","imageData","getWindSize","imageWidth","imageHeight","options","wind","Wind","setWind","image","layerService","updateLayerRenderList","renderLayers","colorModel","buildLayerModel","moduleName","vertexShader","WindVert","fragmentShader","WindFrag","triangulation","RasterImageTriangulation","primitive","gl","TRIANGLES","depth","enable","blend","getBlend","p1","mapService","lngLatToPixel","p2","Math","floor","x","y","initModels","destroy","properties","opacity","type","minimum","maximum","styleAttributeService","registerStyleAttribute","name","AttributeType","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","numParticles","reSize","updateWindDir","updateParticelNum","updateColorRampTexture","draw","d","w","h","setBaseState","uniforms","u_opacity","u_texture","BaseModel"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n Point,\n} from '@antv/l7-core';\nimport { FrequencyController, getMask } from '@antv/l7-utils';\nimport BaseModel from '../../core/BaseModel';\nimport { IWindLayerStyleOptions } from '../../core/interface';\nimport { RasterImageTriangulation } from '../../core/triangulation';\nimport WindFrag from '../shaders/wind_frag.glsl';\nimport WindVert from '../shaders/wind_vert.glsl';\nimport { IWind, IWindProps, Wind } from './windRender';\n\nconst defaultRampColors = {\n 0.0: '#3288bd',\n 0.1: '#66c2a5',\n 0.2: '#abdda4',\n 0.3: '#e6f598',\n 0.4: '#fee08b',\n 0.5: '#fdae61',\n 0.6: '#f46d43',\n 1.0: '#d53e4f',\n};\n\nexport default class WindModel extends BaseModel {\n protected texture: ITexture2D;\n private colorModel: IModel;\n private wind: IWind;\n private imageCoords: [Point, Point];\n private sizeScale: number = 0.5;\n // https://mapbox.github.io/webgl-wind/demo/\n // source: 'http://nomads.ncep.noaa.gov',\n\n private frequency = new FrequencyController(7.2);\n\n public render() {\n // TODO: 控制风场的平均更新频率\n this.frequency.run(() => {\n this.drawWind();\n });\n this.drawColorMode();\n }\n\n public getUninforms(): IModelUniform {\n throw new Error('Method not implemented.');\n }\n\n public initModels() {\n const {\n uMin = -21.32,\n uMax = 26.8,\n vMin = -21.57,\n vMax = 21.42,\n fadeOpacity = 0.996,\n speedFactor = 0.25,\n dropRate = 0.003,\n dropRateBump = 0.01,\n rampColors = defaultRampColors,\n sizeScale = 0.5,\n // mask\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IWindLayerStyleOptions;\n const { createTexture2D } = this.rendererService;\n const source = this.layer.getSource();\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n\n const glContext = this.rendererService.getGLContext();\n this.imageCoords = source.data.dataArray[0].coordinates as [Point, Point];\n\n source.data.images.then((imageData: HTMLImageElement[]) => {\n this.sizeScale = sizeScale;\n\n const { imageWidth, imageHeight } = this.getWindSize();\n\n const options: IWindProps = {\n glContext,\n imageWidth,\n imageHeight,\n fadeOpacity,\n speedFactor,\n dropRate,\n dropRateBump,\n rampColors,\n };\n\n this.wind = new Wind(options);\n\n // imageData[0] 风场图\n this.wind.setWind({\n uMin,\n uMax,\n vMin,\n vMax,\n image: imageData[0],\n });\n\n this.texture = createTexture2D({\n data: imageData[0],\n width: imageData[0].width,\n height: imageData[0].height,\n });\n\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n });\n\n this.colorModel = this.layer.buildLayerModel({\n moduleName: 'WindLayer',\n vertexShader: WindVert,\n fragmentShader: WindFrag,\n triangulation: RasterImageTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n blend: this.getBlend(),\n // stencil: getMask(mask, maskInside),\n });\n\n return [this.colorModel];\n }\n\n public getWindSize() {\n const p1 = this.mapService.lngLatToPixel(this.imageCoords[0]);\n const p2 = this.mapService.lngLatToPixel(this.imageCoords[1]);\n\n const imageWidth = Math.floor((p2.x - p1.x) * this.sizeScale);\n const imageHeight = Math.floor((p1.y - p2.y) * this.sizeScale);\n return { imageWidth, imageHeight };\n }\n\n public buildModels() {\n return this.initModels();\n }\n\n public clearModels(): void {\n this.texture?.destroy();\n this.wind?.destroy();\n }\n\n protected getConfigSchema() {\n return {\n properties: {\n opacity: {\n type: 'number',\n minimum: 0,\n maximum: 1,\n },\n },\n };\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'uv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Uv',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n\n private drawWind() {\n if (this.wind) {\n const {\n uMin = -21.32,\n uMax = 26.8,\n vMin = -21.57,\n vMax = 21.42,\n numParticles = 65535,\n fadeOpacity = 0.996,\n speedFactor = 0.25,\n dropRate = 0.003,\n dropRateBump = 0.01,\n rampColors = defaultRampColors,\n sizeScale = 0.5,\n } = this.layer.getLayerConfig() as IWindLayerStyleOptions;\n if (typeof sizeScale === 'number' && sizeScale !== this.sizeScale) {\n this.sizeScale = sizeScale;\n const { imageWidth, imageHeight } = this.getWindSize();\n this.wind.reSize(imageWidth, imageHeight);\n }\n\n this.wind.updateWindDir(uMin, uMax, vMin, vMax);\n\n this.wind.updateParticelNum(numParticles);\n\n this.wind.updateColorRampTexture(rampColors);\n\n this.wind.fadeOpacity = fadeOpacity;\n this.wind.speedFactor = speedFactor;\n this.wind.dropRate = dropRate;\n this.wind.dropRateBump = dropRateBump;\n\n const { d, w, h } = this.wind.draw();\n // TODO: 恢复 L7 渲染流程中 gl 状态\n this.rendererService.setBaseState();\n this.texture.update({\n data: d,\n width: w,\n height: h,\n });\n }\n }\n\n private drawColorMode() {\n const { opacity } = this.layer.getLayerConfig() as IWindLayerStyleOptions;\n this.colorModel.draw({\n uniforms: {\n u_opacity: opacity || 1.0,\n u_texture: this.texture,\n },\n });\n }\n}\n"],"file":"wind.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antv/l7-layers",
3
- "version": "2.9.15",
3
+ "version": "2.9.17",
4
4
  "description": "L7's collection of built-in layers",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -25,12 +25,14 @@
25
25
  "author": "xiaoiver",
26
26
  "license": "ISC",
27
27
  "dependencies": {
28
- "@antv/l7-core": "2.9.15",
29
- "@antv/l7-source": "2.9.15",
30
- "@antv/l7-utils": "2.9.15",
28
+ "@antv/l7-core": "2.9.17",
29
+ "@antv/l7-source": "2.9.17",
30
+ "@antv/l7-utils": "2.9.17",
31
31
  "@babel/runtime": "^7.7.7",
32
32
  "@mapbox/martini": "^0.2.0",
33
+ "@turf/helpers": "^6.1.4",
33
34
  "@turf/meta": "^6.0.2",
35
+ "@turf/union": "^6.5.0",
34
36
  "d3-array": "1",
35
37
  "d3-color": "^1.4.0",
36
38
  "d3-interpolate": "1.4.0",
@@ -49,13 +51,13 @@
49
51
  "devDependencies": {
50
52
  "@types/d3-array": "^2.0.0",
51
53
  "@types/d3-color": "^1.2.2",
52
- "@types/d3-interpolate": "1.4.0",
54
+ "@types/d3-interpolate": "1.1.6",
53
55
  "@types/d3-scale": "^2.1.1",
54
56
  "@types/earcut": "^2.1.0",
55
57
  "@types/gl-matrix": "^2.4.5",
56
58
  "@types/lodash": "^4.14.138"
57
59
  },
58
- "gitHead": "c49301900faaeb2be20978b861291500e5eaeda1",
60
+ "gitHead": "47d1b2e7fcd601a83e5270d19ceba9f18298377a",
59
61
  "publishConfig": {
60
62
  "access": "public"
61
63
  }
@@ -1,9 +0,0 @@
1
- import { ILayer, ILayerGroup } from '@antv/l7-core';
2
- import BaseLayer from './BaseLayer';
3
- export default class LayerGroup<ChildLayerStyleOptions = {}> extends BaseLayer<ChildLayerStyleOptions> implements ILayerGroup {
4
- isLayerGroup: boolean;
5
- addChild(layer: ILayer): void;
6
- removeChild(layer: ILayer): void;
7
- clearChild(): void;
8
- hasChild(layer: ILayer): boolean;
9
- }
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/core/LayerGroup.ts"],"names":["BaseLayer","LayerGroup","layer","layerChildren","push","layerIndex","indexOf","splice","destroy","forEach","includes"],"mappings":";;;;;;;;;;;;AACA,OAAOA,SAAP,MAAsB,aAAtB;;IAIqBC,U;;;;;;;;;;;;;;;;mEAGY,I;;;;;;;WAE/B,kBAAgBC,KAAhB,EAA+B;AAC7B,WAAKC,aAAL,CAAmBC,IAAnB,CAAwBF,KAAxB;AACD;;;WAED,qBAAmBA,KAAnB,EAAkC;AAChC,UAAMG,UAAU,GAAG,KAAKF,aAAL,CAAmBG,OAAnB,CAA2BJ,KAA3B,CAAnB;;AACA,UAAIG,UAAU,GAAG,CAAC,CAAlB,EAAqB;AACnB,aAAKF,aAAL,CAAmBI,MAAnB,CAA0BF,UAA1B,EAAsC,CAAtC;AACD;;AACDH,MAAAA,KAAK,CAACM,OAAN;AACD;;;WAED,sBAAoB;AAClB,WAAKL,aAAL,CAAmBM,OAAnB,CAA2B,UAACP,KAAD,EAAgB;AACzCA,QAAAA,KAAK,CAACM,OAAN;AACD,OAFD;AAIA,WAAKL,aAAL,GAAqB,EAArB;AACD;;;WAED,kBAAgBD,KAAhB,EAA+B;AAC7B,aAAO,KAAKC,aAAL,CAAmBO,QAAnB,CAA4BR,KAA5B,CAAP;AACD;;;;EA1BOF,S;;SADWC,U","sourcesContent":["import { ILayer, ILayerGroup } from '@antv/l7-core';\nimport BaseLayer from './BaseLayer';\n\n// 定义 LayerGroup 继承 Baselayer\n\nexport default class LayerGroup<ChildLayerStyleOptions = {}>\n extends BaseLayer<ChildLayerStyleOptions>\n implements ILayerGroup {\n public isLayerGroup: boolean = true;\n\n public addChild(layer: ILayer) {\n this.layerChildren.push(layer);\n }\n\n public removeChild(layer: ILayer) {\n const layerIndex = this.layerChildren.indexOf(layer);\n if (layerIndex > -1) {\n this.layerChildren.splice(layerIndex, 1);\n }\n layer.destroy();\n }\n\n public clearChild() {\n this.layerChildren.forEach((layer: any) => {\n layer.destroy();\n });\n\n this.layerChildren = [];\n }\n\n public hasChild(layer: ILayer) {\n return this.layerChildren.includes(layer);\n }\n}\n"],"file":"LayerGroup.js"}
@@ -1,23 +0,0 @@
1
- import { IModelUniform } from '@antv/l7-core';
2
- import { TilesetManager } from '@antv/l7-utils';
3
- import BaseModel from '../../core/BaseModel';
4
- export default class RasterTileModel extends BaseModel {
5
- initedTileset: boolean;
6
- tilesetManager: TilesetManager | undefined;
7
- showGrid: boolean;
8
- private subGridLayer;
9
- private subTextLayer;
10
- private lastViewStates;
11
- private timer;
12
- getUninforms(): IModelUniform;
13
- initModels(): never[];
14
- buildModels(): never[];
15
- clearModels(): void;
16
- renderSubGridLayer(): void;
17
- protected registerBuiltinAttributes(): void;
18
- private bindTilesetEvent;
19
- private creatSubLayer;
20
- private renderSubLayers;
21
- private destroySubLayer;
22
- private getCurrentView;
23
- }
@@ -1,285 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
- import _inherits from "@babel/runtime/helpers/inherits";
5
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
-
9
- 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); }; }
10
-
11
- 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; } }
12
-
13
- import { createLayerContainer } from '@antv/l7-core';
14
- import BaseModel from '../../core/BaseModel';
15
- import ImageLayer from '../../image';
16
- import LineLayer from '../../line';
17
- import PointLayer from '../../point';
18
-
19
- var RasterTileModel = function (_BaseModel) {
20
- _inherits(RasterTileModel, _BaseModel);
21
-
22
- var _super = _createSuper(RasterTileModel);
23
-
24
- function RasterTileModel() {
25
- var _this;
26
-
27
- _classCallCheck(this, RasterTileModel);
28
-
29
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
30
- args[_key] = arguments[_key];
31
- }
32
-
33
- _this = _super.call.apply(_super, [this].concat(args));
34
-
35
- _defineProperty(_assertThisInitialized(_this), "initedTileset", false);
36
-
37
- _defineProperty(_assertThisInitialized(_this), "tilesetManager", void 0);
38
-
39
- _defineProperty(_assertThisInitialized(_this), "showGrid", false);
40
-
41
- _defineProperty(_assertThisInitialized(_this), "subGridLayer", void 0);
42
-
43
- _defineProperty(_assertThisInitialized(_this), "subTextLayer", void 0);
44
-
45
- _defineProperty(_assertThisInitialized(_this), "lastViewStates", void 0);
46
-
47
- _defineProperty(_assertThisInitialized(_this), "timer", void 0);
48
-
49
- _defineProperty(_assertThisInitialized(_this), "renderSubLayers", function () {
50
- if (!_this.tilesetManager) {
51
- return;
52
- }
53
-
54
- var rasteTileLayer = _this.layer;
55
-
56
- _this.tilesetManager.tiles.filter(function (tile) {
57
- return tile.isLoaded;
58
- }).map(function (tile) {
59
- if (!tile.layer) {
60
- tile.layer = _this.creatSubLayer(tile);
61
- rasteTileLayer.addChild(tile.layer);
62
- } else {
63
- tile.layer.updateLayerConfig({
64
- visible: tile.isVisible
65
- });
66
- }
67
-
68
- return tile.layer;
69
- });
70
-
71
- if (_this.showGrid) {
72
- if (!rasteTileLayer.hasChild(_this.subGridLayer)) {
73
- rasteTileLayer.addChild(_this.subGridLayer);
74
- }
75
-
76
- if (!rasteTileLayer.hasChild(_this.subTextLayer)) {
77
- rasteTileLayer.addChild(_this.subTextLayer);
78
- }
79
- }
80
-
81
- _this.layerService.renderLayers();
82
-
83
- if (_this.tilesetManager.isLoaded) {
84
- rasteTileLayer.emit('tiles-loaded', _this.tilesetManager.currentTiles);
85
- }
86
- });
87
-
88
- return _this;
89
- }
90
-
91
- _createClass(RasterTileModel, [{
92
- key: "getUninforms",
93
- value: function getUninforms() {
94
- return {};
95
- }
96
- }, {
97
- key: "initModels",
98
- value: function initModels() {
99
- var _this$tilesetManager;
100
-
101
- var source = this.layer.getSource();
102
- this.tilesetManager = source.tileset;
103
-
104
- if (!this.initedTileset) {
105
- this.bindTilesetEvent();
106
- this.initedTileset = true;
107
- }
108
-
109
- var _this$getCurrentView = this.getCurrentView(),
110
- latLonBounds = _this$getCurrentView.latLonBounds,
111
- zoom = _this$getCurrentView.zoom;
112
-
113
- (_this$tilesetManager = this.tilesetManager) === null || _this$tilesetManager === void 0 ? void 0 : _this$tilesetManager.update(zoom, latLonBounds);
114
-
115
- if (this.showGrid) {
116
- this.renderSubGridLayer();
117
- }
118
-
119
- return this.buildModels();
120
- }
121
- }, {
122
- key: "buildModels",
123
- value: function buildModels() {
124
- return [];
125
- }
126
- }, {
127
- key: "clearModels",
128
- value: function clearModels() {}
129
- }, {
130
- key: "renderSubGridLayer",
131
- value: function renderSubGridLayer() {
132
- if (!this.tilesetManager) {
133
- return;
134
- }
135
-
136
- var features = this.tilesetManager.currentTiles.map(function (tile) {
137
- return tile.bboxPolygon;
138
- });
139
- var data = {
140
- type: 'FeatureCollection',
141
- features: features
142
- };
143
-
144
- if (this.subGridLayer) {
145
- this.subGridLayer.setData(data);
146
- this.subTextLayer.setData(data);
147
- return;
148
- }
149
-
150
- this.subGridLayer = new LineLayer({
151
- autoFit: false
152
- }).source(data).size(1).color('red').shape('simple').style({
153
- lineType: 'dash',
154
- dashArray: [1, 2]
155
- });
156
- this.subTextLayer = new PointLayer({
157
- autoFit: false
158
- }).source(data).size(14).color('red').shape('meta', 'text').style({
159
- opacity: 1,
160
- strokeWidth: 1,
161
- stroke: '#fff'
162
- });
163
- this.subGridLayer.setContainer(createLayerContainer(this.layer.sceneContainer), this.layer.sceneContainer);
164
- this.subTextLayer.setContainer(createLayerContainer(this.layer.sceneContainer), this.layer.sceneContainer);
165
- this.subGridLayer.init();
166
- this.subTextLayer.init();
167
- }
168
- }, {
169
- key: "registerBuiltinAttributes",
170
- value: function registerBuiltinAttributes() {}
171
- }, {
172
- key: "bindTilesetEvent",
173
- value: function bindTilesetEvent() {
174
- var _this2 = this;
175
-
176
- if (!this.tilesetManager) {
177
- return;
178
- }
179
-
180
- this.tilesetManager.on('tile-loaded', function (tile) {});
181
- this.tilesetManager.on('tile-unload', function (tile) {
182
- _this2.destroySubLayer(tile);
183
- });
184
- this.tilesetManager.on('tile-error', function (error, tile) {});
185
- this.tilesetManager.on('tile-update', this.renderSubLayers);
186
- this.mapService.on('mapchange', function (e) {
187
- var _this2$getCurrentView = _this2.getCurrentView(),
188
- latLonBounds = _this2$getCurrentView.latLonBounds,
189
- zoom = _this2$getCurrentView.zoom;
190
-
191
- if (_this2.mapService.version === 'GAODE1.x') {
192
- var _this2$layer$getLayer = _this2.layer.getLayerConfig(),
193
- visible = _this2$layer$getLayer.visible;
194
-
195
- if (zoom < 3 && visible) {
196
- _this2.layer.updateLayerConfig({
197
- visible: false
198
- });
199
-
200
- _this2.layerService.updateLayerRenderList();
201
- } else if (zoom >= 3 && !visible) {
202
- _this2.layer.updateLayerConfig({
203
- visible: true
204
- });
205
-
206
- _this2.layerService.updateLayerRenderList();
207
- }
208
- }
209
-
210
- if (_this2.lastViewStates && _this2.lastViewStates.zoom === zoom && _this2.lastViewStates.latLonBounds.toString() === latLonBounds.toString()) {
211
- return;
212
- }
213
-
214
- _this2.lastViewStates = {
215
- zoom: zoom,
216
- latLonBounds: latLonBounds
217
- };
218
-
219
- if (_this2.timer) {
220
- clearTimeout(_this2.timer);
221
- _this2.timer = null;
222
- }
223
-
224
- _this2.timer = setTimeout(function () {
225
- var _this2$tilesetManager;
226
-
227
- (_this2$tilesetManager = _this2.tilesetManager) === null || _this2$tilesetManager === void 0 ? void 0 : _this2$tilesetManager.update(zoom, latLonBounds);
228
-
229
- if (_this2.showGrid) {
230
- _this2.renderSubGridLayer();
231
- }
232
- }, 250);
233
- });
234
- }
235
- }, {
236
- key: "creatSubLayer",
237
- value: function creatSubLayer(tile) {
238
- var _ref = this.layer.getLayerConfig(),
239
- _ref$opacity = _ref.opacity,
240
- opacity = _ref$opacity === void 0 ? 1 : _ref$opacity,
241
- _ref$zIndex = _ref.zIndex,
242
- zIndex = _ref$zIndex === void 0 ? 0 : _ref$zIndex;
243
-
244
- var layer = new ImageLayer({
245
- visible: tile.isVisible,
246
- zIndex: zIndex
247
- }).source(tile.data, {
248
- parser: {
249
- type: 'image',
250
- extent: tile.bounds
251
- }
252
- }).style({
253
- opacity: opacity
254
- });
255
- var container = createLayerContainer(this.layer.sceneContainer);
256
- layer.setContainer(container, this.layer.sceneContainer);
257
- layer.init();
258
- return layer;
259
- }
260
- }, {
261
- key: "destroySubLayer",
262
- value: function destroySubLayer(tile) {
263
- if (tile.layer) {
264
- var layerGroup = this.layer;
265
- layerGroup.removeChild(tile.layer);
266
- }
267
- }
268
- }, {
269
- key: "getCurrentView",
270
- value: function getCurrentView() {
271
- var bounds = this.mapService.getBounds();
272
- var latLonBounds = [bounds[0][0], bounds[0][1], bounds[1][0], bounds[1][1]];
273
- var zoom = this.mapService.getZoom();
274
- return {
275
- latLonBounds: latLonBounds,
276
- zoom: zoom
277
- };
278
- }
279
- }]);
280
-
281
- return RasterTileModel;
282
- }(BaseModel);
283
-
284
- export { RasterTileModel as default };
285
- //# sourceMappingURL=raste-tile.js.map