@antv/l7-layers 2.5.34 → 2.5.37-mini10

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 (279) hide show
  1. package/lib/core/BaseLayer.js +10 -4
  2. package/lib/core/BaseLayer.js.map +1 -1
  3. package/lib/core/shape/Path.js +5 -4
  4. package/lib/core/shape/Path.js.map +1 -1
  5. package/lib/core/shape/extrude.js +1 -1
  6. package/lib/core/triangulation.js +13 -9
  7. package/lib/core/triangulation.js.map +1 -1
  8. package/lib/earth/utils.js +1 -1
  9. package/lib/heatmap/models/heatmap.js +1 -1
  10. package/lib/imagetile/index.js +95 -0
  11. package/lib/imagetile/index.js.map +1 -0
  12. package/lib/imagetile/models/imagetile.js +177 -0
  13. package/lib/imagetile/models/imagetile.js.map +1 -0
  14. package/lib/imagetile/models/index.js +17 -0
  15. package/lib/imagetile/models/index.js.map +1 -0
  16. package/lib/imagetile/utils/ImageTile.js +99 -0
  17. package/lib/imagetile/utils/ImageTile.js.map +1 -0
  18. package/lib/imagetile/utils/Tile.js +324 -0
  19. package/lib/imagetile/utils/Tile.js.map +1 -0
  20. package/lib/imagetile/utils/lruCache.js +109 -0
  21. package/lib/imagetile/utils/lruCache.js.map +1 -0
  22. package/lib/imagetile/utils/tileCache.js +58 -0
  23. package/lib/imagetile/utils/tileCache.js.map +1 -0
  24. package/lib/index.js +16 -8
  25. package/lib/index.js.map +1 -1
  26. package/lib/line/index.js +3 -0
  27. package/lib/line/index.js.map +1 -1
  28. package/lib/line/models/arc.js +2 -2
  29. package/lib/line/models/arc_3d.js +2 -2
  30. package/lib/line/models/arcmini.js +160 -0
  31. package/lib/line/models/arcmini.js.map +1 -0
  32. package/lib/line/models/great_circle.js +2 -2
  33. package/lib/line/models/index.js +3 -0
  34. package/lib/line/models/index.js.map +1 -1
  35. package/lib/line/models/line.js +2 -2
  36. package/lib/plugins/DataMappingPlugin.js +1 -1
  37. package/lib/plugins/DataSourcePlugin.js +5 -1
  38. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  39. package/lib/plugins/FeatureScalePlugin.js +5 -1
  40. package/lib/plugins/FeatureScalePlugin.js.map +1 -1
  41. package/lib/plugins/LayerAnimateStylePlugin.js +1 -1
  42. package/lib/plugins/LightingPlugin.js +5 -3
  43. package/lib/plugins/LightingPlugin.js.map +1 -1
  44. package/lib/plugins/MultiPassRendererPlugin.js +1 -1
  45. package/lib/plugins/ShaderUniformPlugin.js +1 -1
  46. package/lib/plugins/ShaderUniformPlugin.js.map +1 -1
  47. package/lib/plugins/UpdateStyleAttributePlugin.js +6 -6
  48. package/lib/plugins/UpdateStyleAttributePlugin.js.map +1 -1
  49. package/lib/point/shape/Path.js +5 -4
  50. package/lib/point/shape/Path.js.map +1 -1
  51. package/lib/raster/raster.js +1 -1
  52. package/lib/utils/dataMappingStyle.js +1 -1
  53. package/lib/utils/extrude_polyline.js +1 -1
  54. package/lib/utils/polylineNormal.js +1 -1
  55. package/lib/utils/symbol-layout.js +1 -1
  56. package/package.json +6 -5
  57. package/CHANGELOG.md +0 -492
  58. package/LICENSE.md +0 -21
  59. package/es/citybuliding/building.d.ts +0 -17
  60. package/es/citybuliding/building.js +0 -79
  61. package/es/citybuliding/building.js.map +0 -1
  62. package/es/citybuliding/models/build.d.ts +0 -13
  63. package/es/citybuliding/models/build.js +0 -124
  64. package/es/citybuliding/models/build.js.map +0 -1
  65. package/es/core/BaseLayer.d.ts +0 -174
  66. package/es/core/BaseLayer.js +0 -974
  67. package/es/core/BaseLayer.js.map +0 -1
  68. package/es/core/BaseModel.d.ts +0 -135
  69. package/es/core/BaseModel.js +0 -412
  70. package/es/core/BaseModel.js.map +0 -1
  71. package/es/core/interface.d.ts +0 -19
  72. package/es/core/interface.js +0 -7
  73. package/es/core/interface.js.map +0 -1
  74. package/es/core/schema.d.ts +0 -27
  75. package/es/core/schema.js +0 -23
  76. package/es/core/schema.js.map +0 -1
  77. package/es/core/shape/Path.d.ts +0 -39
  78. package/es/core/shape/Path.js +0 -57
  79. package/es/core/shape/Path.js.map +0 -1
  80. package/es/core/shape/extrude.d.ts +0 -17
  81. package/es/core/shape/extrude.js +0 -143
  82. package/es/core/shape/extrude.js.map +0 -1
  83. package/es/core/triangulation.d.ts +0 -109
  84. package/es/core/triangulation.js +0 -328
  85. package/es/core/triangulation.js.map +0 -1
  86. package/es/earth/index.d.ts +0 -17
  87. package/es/earth/index.js +0 -81
  88. package/es/earth/index.js.map +0 -1
  89. package/es/earth/models/atmosphere.d.ts +0 -9
  90. package/es/earth/models/atmosphere.js +0 -125
  91. package/es/earth/models/atmosphere.js.map +0 -1
  92. package/es/earth/models/base.d.ts +0 -16
  93. package/es/earth/models/base.js +0 -193
  94. package/es/earth/models/base.js.map +0 -1
  95. package/es/earth/models/bloomsphere.d.ts +0 -9
  96. package/es/earth/models/bloomsphere.js +0 -125
  97. package/es/earth/models/bloomsphere.js.map +0 -1
  98. package/es/earth/utils.d.ts +0 -26
  99. package/es/earth/utils.js +0 -81
  100. package/es/earth/utils.js.map +0 -1
  101. package/es/glsl.d.js +0 -2
  102. package/es/glsl.d.js.map +0 -1
  103. package/es/heatmap/index.d.ts +0 -22
  104. package/es/heatmap/index.js +0 -123
  105. package/es/heatmap/index.js.map +0 -1
  106. package/es/heatmap/models/grid.d.ts +0 -8
  107. package/es/heatmap/models/grid.js +0 -90
  108. package/es/heatmap/models/grid.js.map +0 -1
  109. package/es/heatmap/models/grid3d.d.ts +0 -8
  110. package/es/heatmap/models/grid3d.js +0 -122
  111. package/es/heatmap/models/grid3d.js.map +0 -1
  112. package/es/heatmap/models/heatmap.d.ts +0 -24
  113. package/es/heatmap/models/heatmap.js +0 -399
  114. package/es/heatmap/models/heatmap.js.map +0 -1
  115. package/es/heatmap/models/hexagon.d.ts +0 -8
  116. package/es/heatmap/models/hexagon.js +0 -90
  117. package/es/heatmap/models/hexagon.js.map +0 -1
  118. package/es/heatmap/models/index.d.ts +0 -5
  119. package/es/heatmap/models/index.js +0 -13
  120. package/es/heatmap/models/index.js.map +0 -1
  121. package/es/heatmap/triangulation.d.ts +0 -5
  122. package/es/heatmap/triangulation.js +0 -38
  123. package/es/heatmap/triangulation.js.map +0 -1
  124. package/es/image/index.d.ts +0 -22
  125. package/es/image/index.js +0 -82
  126. package/es/image/index.js.map +0 -1
  127. package/es/image/models/image.d.ts +0 -18
  128. package/es/image/models/image.js +0 -127
  129. package/es/image/models/image.js.map +0 -1
  130. package/es/image/models/index.d.ts +0 -5
  131. package/es/image/models/index.js +0 -6
  132. package/es/image/models/index.js.map +0 -1
  133. package/es/index.d.ts +0 -11
  134. package/es/index.js +0 -39
  135. package/es/index.js.map +0 -1
  136. package/es/line/index.d.ts +0 -25
  137. package/es/line/index.js +0 -95
  138. package/es/line/index.js.map +0 -1
  139. package/es/line/models/arc.d.ts +0 -12
  140. package/es/line/models/arc.js +0 -281
  141. package/es/line/models/arc.js.map +0 -1
  142. package/es/line/models/arc_3d.d.ts +0 -12
  143. package/es/line/models/arc_3d.js +0 -277
  144. package/es/line/models/arc_3d.js.map +0 -1
  145. package/es/line/models/great_circle.d.ts +0 -12
  146. package/es/line/models/great_circle.js +0 -269
  147. package/es/line/models/great_circle.js.map +0 -1
  148. package/es/line/models/index.d.ts +0 -5
  149. package/es/line/models/index.js +0 -12
  150. package/es/line/models/index.js.map +0 -1
  151. package/es/line/models/line.d.ts +0 -13
  152. package/es/line/models/line.js +0 -342
  153. package/es/line/models/line.js.map +0 -1
  154. package/es/plugins/DataMappingPlugin.d.ts +0 -13
  155. package/es/plugins/DataMappingPlugin.js +0 -199
  156. package/es/plugins/DataMappingPlugin.js.map +0 -1
  157. package/es/plugins/DataSourcePlugin.d.ts +0 -7
  158. package/es/plugins/DataSourcePlugin.js +0 -73
  159. package/es/plugins/DataSourcePlugin.js.map +0 -1
  160. package/es/plugins/FeatureScalePlugin.d.ts +0 -26
  161. package/es/plugins/FeatureScalePlugin.js +0 -270
  162. package/es/plugins/FeatureScalePlugin.js.map +0 -1
  163. package/es/plugins/LayerAnimateStylePlugin.d.ts +0 -7
  164. package/es/plugins/LayerAnimateStylePlugin.js +0 -50
  165. package/es/plugins/LayerAnimateStylePlugin.js.map +0 -1
  166. package/es/plugins/LayerModelPlugin.d.ts +0 -8
  167. package/es/plugins/LayerModelPlugin.js +0 -34
  168. package/es/plugins/LayerModelPlugin.js.map +0 -1
  169. package/es/plugins/LayerStylePlugin.d.ts +0 -8
  170. package/es/plugins/LayerStylePlugin.js +0 -35
  171. package/es/plugins/LayerStylePlugin.js.map +0 -1
  172. package/es/plugins/LightingPlugin.d.ts +0 -36
  173. package/es/plugins/LightingPlugin.js +0 -100
  174. package/es/plugins/LightingPlugin.js.map +0 -1
  175. package/es/plugins/MultiPassRendererPlugin.d.ts +0 -37
  176. package/es/plugins/MultiPassRendererPlugin.js +0 -79
  177. package/es/plugins/MultiPassRendererPlugin.js.map +0 -1
  178. package/es/plugins/PixelPickingPlugin.d.ts +0 -8
  179. package/es/plugins/PixelPickingPlugin.js +0 -112
  180. package/es/plugins/PixelPickingPlugin.js.map +0 -1
  181. package/es/plugins/RegisterStyleAttributePlugin.d.ts +0 -11
  182. package/es/plugins/RegisterStyleAttributePlugin.js +0 -98
  183. package/es/plugins/RegisterStyleAttributePlugin.js.map +0 -1
  184. package/es/plugins/ShaderUniformPlugin.d.ts +0 -16
  185. package/es/plugins/ShaderUniformPlugin.js +0 -78
  186. package/es/plugins/ShaderUniformPlugin.js.map +0 -1
  187. package/es/plugins/UpdateModelPlugin.d.ts +0 -8
  188. package/es/plugins/UpdateModelPlugin.js +0 -27
  189. package/es/plugins/UpdateModelPlugin.js.map +0 -1
  190. package/es/plugins/UpdateStyleAttributePlugin.d.ts +0 -12
  191. package/es/plugins/UpdateStyleAttributePlugin.js +0 -74
  192. package/es/plugins/UpdateStyleAttributePlugin.js.map +0 -1
  193. package/es/point/index.d.ts +0 -30
  194. package/es/point/index.js +0 -130
  195. package/es/point/index.js.map +0 -1
  196. package/es/point/models/extrude.d.ts +0 -14
  197. package/es/point/models/extrude.js +0 -180
  198. package/es/point/models/extrude.js.map +0 -1
  199. package/es/point/models/fill.d.ts +0 -17
  200. package/es/point/models/fill.js +0 -247
  201. package/es/point/models/fill.js.map +0 -1
  202. package/es/point/models/icon-font.d.ts +0 -11
  203. package/es/point/models/icon-font.js +0 -181
  204. package/es/point/models/icon-font.js.map +0 -1
  205. package/es/point/models/image.d.ts +0 -11
  206. package/es/point/models/image.js +0 -207
  207. package/es/point/models/image.js.map +0 -1
  208. package/es/point/models/index.d.ts +0 -5
  209. package/es/point/models/index.js +0 -16
  210. package/es/point/models/index.js.map +0 -1
  211. package/es/point/models/normal.d.ts +0 -21
  212. package/es/point/models/normal.js +0 -155
  213. package/es/point/models/normal.js.map +0 -1
  214. package/es/point/models/text.d.ts +0 -56
  215. package/es/point/models/text.js +0 -522
  216. package/es/point/models/text.js.map +0 -1
  217. package/es/point/shape/Path.d.ts +0 -40
  218. package/es/point/shape/Path.js +0 -57
  219. package/es/point/shape/Path.js.map +0 -1
  220. package/es/point/shape/extrude.d.ts +0 -15
  221. package/es/point/shape/extrude.js +0 -58
  222. package/es/point/shape/extrude.js.map +0 -1
  223. package/es/polygon/index.d.ts +0 -22
  224. package/es/polygon/index.js +0 -124
  225. package/es/polygon/index.js.map +0 -1
  226. package/es/polygon/models/extrude.d.ts +0 -13
  227. package/es/polygon/models/extrude.js +0 -139
  228. package/es/polygon/models/extrude.js.map +0 -1
  229. package/es/polygon/models/fill.d.ts +0 -13
  230. package/es/polygon/models/fill.js +0 -108
  231. package/es/polygon/models/fill.js.map +0 -1
  232. package/es/polygon/models/index.d.ts +0 -5
  233. package/es/polygon/models/index.js +0 -20
  234. package/es/polygon/models/index.js.map +0 -1
  235. package/es/raster/buffers/triangulation.d.ts +0 -6
  236. package/es/raster/buffers/triangulation.js +0 -28
  237. package/es/raster/buffers/triangulation.js.map +0 -1
  238. package/es/raster/image.d.ts +0 -0
  239. package/es/raster/image.js +0 -2
  240. package/es/raster/image.js.map +0 -1
  241. package/es/raster/index.d.ts +0 -28
  242. package/es/raster/index.js +0 -83
  243. package/es/raster/index.js.map +0 -1
  244. package/es/raster/models/index.d.ts +0 -5
  245. package/es/raster/models/index.js +0 -7
  246. package/es/raster/models/index.js.map +0 -1
  247. package/es/raster/models/raster.d.ts +0 -19
  248. package/es/raster/models/raster.js +0 -152
  249. package/es/raster/models/raster.js.map +0 -1
  250. package/es/raster/raster.d.ts +0 -30
  251. package/es/raster/raster.js +0 -178
  252. package/es/raster/raster.js.map +0 -1
  253. package/es/raster/raster2d.d.ts +0 -27
  254. package/es/raster/raster2d.js +0 -158
  255. package/es/raster/raster2d.js.map +0 -1
  256. package/es/utils/blend.d.ts +0 -2
  257. package/es/utils/blend.js +0 -55
  258. package/es/utils/blend.js.map +0 -1
  259. package/es/utils/collision-index.d.ts +0 -47
  260. package/es/utils/collision-index.js +0 -87
  261. package/es/utils/collision-index.js.map +0 -1
  262. package/es/utils/dataMappingStyle.d.ts +0 -30
  263. package/es/utils/dataMappingStyle.js +0 -88
  264. package/es/utils/dataMappingStyle.js.map +0 -1
  265. package/es/utils/extrude_polyline.d.ts +0 -48
  266. package/es/utils/extrude_polyline.js +0 -405
  267. package/es/utils/extrude_polyline.js.map +0 -1
  268. package/es/utils/geo.d.ts +0 -3
  269. package/es/utils/geo.js +0 -24
  270. package/es/utils/geo.js.map +0 -1
  271. package/es/utils/grid-index.d.ts +0 -28
  272. package/es/utils/grid-index.js +0 -193
  273. package/es/utils/grid-index.js.map +0 -1
  274. package/es/utils/polylineNormal.d.ts +0 -9
  275. package/es/utils/polylineNormal.js +0 -171
  276. package/es/utils/polylineNormal.js.map +0 -1
  277. package/es/utils/symbol-layout.d.ts +0 -43
  278. package/es/utils/symbol-layout.js +0 -260
  279. package/es/utils/symbol-layout.js.map +0 -1
@@ -1,27 +0,0 @@
1
- import { ITexture2D } from '@antv/l7-core';
2
- import { IColorRamp } from '@antv/l7-utils';
3
- import BaseLayer from '../core/BaseLayer';
4
- interface IRasterLayerStyleOptions {
5
- opacity: number;
6
- min: number;
7
- max: number;
8
- rampColors: IColorRamp;
9
- }
10
- export default class Raster2dLayer extends BaseLayer<IRasterLayerStyleOptions> {
11
- type: string;
12
- protected rasterTexture: ITexture2D;
13
- protected colorTexture: ITexture2D;
14
- buildModels(): void;
15
- renderModels(): this;
16
- protected getConfigSchema(): {
17
- properties: {
18
- opacity: {
19
- type: string;
20
- minimum: number;
21
- maximum: number;
22
- };
23
- };
24
- };
25
- private registerBuiltinAttributes;
26
- }
27
- export {};
@@ -1,158 +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 { AttributeType, gl } from '@antv/l7-core';
14
- import { generateColorRamp } from '@antv/l7-utils';
15
- import BaseLayer from '../core/BaseLayer';
16
- import { RasterImageTriangulation } from '../core/triangulation';
17
- var rasterImageFrag = "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 rasterImageVert = "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";
19
-
20
- var Raster2dLayer = function (_BaseLayer) {
21
- _inherits(Raster2dLayer, _BaseLayer);
22
-
23
- var _super = _createSuper(Raster2dLayer);
24
-
25
- function Raster2dLayer() {
26
- var _this;
27
-
28
- _classCallCheck(this, Raster2dLayer);
29
-
30
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
31
- args[_key] = arguments[_key];
32
- }
33
-
34
- _this = _super.call.apply(_super, [this].concat(args));
35
-
36
- _defineProperty(_assertThisInitialized(_this), "type", 'RasterLayer');
37
-
38
- _defineProperty(_assertThisInitialized(_this), "rasterTexture", void 0);
39
-
40
- _defineProperty(_assertThisInitialized(_this), "colorTexture", void 0);
41
-
42
- return _this;
43
- }
44
-
45
- _createClass(Raster2dLayer, [{
46
- key: "buildModels",
47
- value: function buildModels() {
48
- this.registerBuiltinAttributes();
49
- var source = this.getSource();
50
- var createTexture2D = this.rendererService.createTexture2D;
51
- var parserDataItem = this.getSource().data.dataArray[0];
52
- this.rasterTexture = createTexture2D({
53
- data: parserDataItem.data,
54
- width: parserDataItem.width,
55
- height: parserDataItem.height,
56
- format: gl.LUMINANCE,
57
- type: gl.FLOAT,
58
- aniso: 4
59
- });
60
-
61
- var _this$getLayerConfig = this.getLayerConfig(),
62
- rampColors = _this$getLayerConfig.rampColors;
63
-
64
- var imageData = generateColorRamp(rampColors);
65
- this.colorTexture = createTexture2D({
66
- data: imageData.data,
67
- width: imageData.width,
68
- height: imageData.height,
69
- flipY: false
70
- });
71
- this.models = [this.buildLayerModel({
72
- moduleName: 'Raster3DImage',
73
- vertexShader: rasterImageVert,
74
- fragmentShader: rasterImageFrag,
75
- triangulation: RasterImageTriangulation,
76
- primitive: gl.TRIANGLES,
77
- depth: {
78
- enable: false
79
- },
80
- blend: {
81
- enable: true,
82
- func: {
83
- srcRGB: gl.SRC_ALPHA,
84
- srcAlpha: 1,
85
- dstRGB: gl.ONE_MINUS_SRC_ALPHA,
86
- dstAlpha: 1
87
- }
88
- }
89
- })];
90
- }
91
- }, {
92
- key: "renderModels",
93
- value: function renderModels() {
94
- var _this2 = this;
95
-
96
- var _this$getLayerConfig2 = this.getLayerConfig(),
97
- opacity = _this$getLayerConfig2.opacity;
98
-
99
- var parserDataItem = this.getSource().data.dataArray[0];
100
- var min = parserDataItem.min,
101
- max = parserDataItem.max;
102
-
103
- if (this.rasterTexture) {
104
- this.models.forEach(function (model) {
105
- return model.draw({
106
- uniforms: {
107
- u_opacity: opacity || 1,
108
- u_texture: _this2.rasterTexture,
109
- u_min: min,
110
- u_max: max,
111
- u_colorTexture: _this2.colorTexture
112
- }
113
- });
114
- });
115
- }
116
-
117
- return this;
118
- }
119
- }, {
120
- key: "getConfigSchema",
121
- value: function getConfigSchema() {
122
- return {
123
- properties: {
124
- opacity: {
125
- type: 'number',
126
- minimum: 0,
127
- maximum: 1
128
- }
129
- }
130
- };
131
- }
132
- }, {
133
- key: "registerBuiltinAttributes",
134
- value: function registerBuiltinAttributes() {
135
- this.styleAttributeService.registerStyleAttribute({
136
- name: 'uv',
137
- type: AttributeType.Attribute,
138
- descriptor: {
139
- name: 'a_Uv',
140
- buffer: {
141
- usage: gl.DYNAMIC_DRAW,
142
- data: [],
143
- type: gl.FLOAT
144
- },
145
- size: 2,
146
- update: function update(feature, featureIdx, vertex, attributeIdx) {
147
- return [vertex[3], vertex[4]];
148
- }
149
- }
150
- });
151
- }
152
- }]);
153
-
154
- return Raster2dLayer;
155
- }(BaseLayer);
156
-
157
- export { Raster2dLayer as default };
158
- //# sourceMappingURL=raster2d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/raster/raster2d.ts"],"names":["AttributeType","gl","generateColorRamp","BaseLayer","RasterImageTriangulation","Raster2dLayer","registerBuiltinAttributes","source","getSource","createTexture2D","rendererService","parserDataItem","data","dataArray","rasterTexture","width","height","format","LUMINANCE","type","FLOAT","aniso","getLayerConfig","rampColors","imageData","colorTexture","flipY","models","buildLayerModel","moduleName","vertexShader","rasterImageVert","fragmentShader","rasterImageFrag","triangulation","primitive","TRIANGLES","depth","enable","blend","func","srcRGB","SRC_ALPHA","srcAlpha","dstRGB","ONE_MINUS_SRC_ALPHA","dstAlpha","opacity","min","max","forEach","model","draw","uniforms","u_opacity","u_texture","u_min","u_max","u_colorTexture","properties","minimum","maximum","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","size","update","feature","featureIdx","vertex","attributeIdx"],"mappings":"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","sourcesContent":["import { AttributeType, gl, IEncodeFeature, ITexture2D } from '@antv/l7-core';\nimport { generateColorRamp, IColorRamp } from '@antv/l7-utils';\nimport BaseLayer from '../core/BaseLayer';\nimport { RasterImageTriangulation } from '../core/triangulation';\nimport rasterImageFrag from './shaders/raster_2d_frag.glsl';\nimport rasterImageVert from './shaders/raster_2d_vert.glsl';\ninterface IRasterLayerStyleOptions {\n opacity: number;\n min: number;\n max: number;\n rampColors: IColorRamp;\n}\n\nexport default class Raster2dLayer extends BaseLayer<IRasterLayerStyleOptions> {\n public type: string = 'RasterLayer';\n protected rasterTexture: ITexture2D;\n protected colorTexture: ITexture2D;\n\n public buildModels() {\n this.registerBuiltinAttributes();\n const source = this.getSource();\n const { createTexture2D } = this.rendererService;\n const parserDataItem = this.getSource().data.dataArray[0];\n this.rasterTexture = createTexture2D({\n data: parserDataItem.data,\n width: parserDataItem.width,\n height: parserDataItem.height,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n aniso: 4,\n });\n const { rampColors } = this.getLayerConfig();\n const imageData = generateColorRamp(rampColors as IColorRamp);\n this.colorTexture = createTexture2D({\n data: imageData.data,\n width: imageData.width,\n height: imageData.height,\n flipY: false,\n });\n this.models = [\n this.buildLayerModel({\n moduleName: 'Raster3DImage',\n vertexShader: rasterImageVert,\n fragmentShader: rasterImageFrag,\n triangulation: RasterImageTriangulation,\n primitive: gl.TRIANGLES,\n depth: { enable: false },\n blend: {\n enable: true,\n func: {\n srcRGB: gl.SRC_ALPHA,\n srcAlpha: 1,\n dstRGB: gl.ONE_MINUS_SRC_ALPHA,\n dstAlpha: 1,\n },\n },\n }),\n ];\n }\n public renderModels() {\n const { opacity } = this.getLayerConfig();\n const parserDataItem = this.getSource().data.dataArray[0];\n const { min, max } = parserDataItem;\n if (this.rasterTexture) {\n this.models.forEach((model) =>\n model.draw({\n uniforms: {\n u_opacity: opacity || 1,\n u_texture: this.rasterTexture,\n u_min: min,\n u_max: max,\n u_colorTexture: this.colorTexture,\n },\n }),\n );\n }\n\n return this;\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 private 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"],"file":"raster2d.js"}
@@ -1,2 +0,0 @@
1
- import { IBlendTypes } from '@antv/l7-core';
2
- export declare const BlendTypes: IBlendTypes;
package/es/utils/blend.js DELETED
@@ -1,55 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
- var _BlendTypes;
4
-
5
- import { BlendType, gl } from '@antv/l7-core';
6
- export var BlendTypes = (_BlendTypes = {}, _defineProperty(_BlendTypes, BlendType.additive, {
7
- enable: true,
8
- func: {
9
- srcRGB: gl.ONE,
10
- dstRGB: gl.ONE,
11
- srcAlpha: 1,
12
- dstAlpha: 1
13
- }
14
- }), _defineProperty(_BlendTypes, BlendType.none, {
15
- enable: false
16
- }), _defineProperty(_BlendTypes, BlendType.normal, {
17
- enable: true,
18
- func: {
19
- srcRGB: gl.SRC_ALPHA,
20
- dstRGB: gl.ONE_MINUS_SRC_ALPHA,
21
- srcAlpha: 1,
22
- dstAlpha: 1
23
- }
24
- }), _defineProperty(_BlendTypes, BlendType.subtractive, {
25
- enable: true,
26
- func: {
27
- srcRGB: gl.ONE,
28
- dstRGB: gl.ONE,
29
- srcAlpha: gl.ZERO,
30
- dstAlpha: gl.ONE_MINUS_SRC_COLOR
31
- },
32
- equation: {
33
- rgb: gl.FUNC_SUBTRACT,
34
- alpha: gl.FUNC_SUBTRACT
35
- }
36
- }), _defineProperty(_BlendTypes, BlendType.max, {
37
- enable: true,
38
- func: {
39
- srcRGB: gl.ONE,
40
- dstRGB: gl.ONE
41
- },
42
- equation: {
43
- rgb: gl.MAX_EXT
44
- }
45
- }), _defineProperty(_BlendTypes, BlendType.min, {
46
- enable: true,
47
- func: {
48
- srcRGB: gl.ONE,
49
- dstRGB: gl.ONE
50
- },
51
- equation: {
52
- rgb: gl.MIN_EXT
53
- }
54
- }), _BlendTypes);
55
- //# sourceMappingURL=blend.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/blend.ts"],"names":["BlendType","gl","BlendTypes","additive","enable","func","srcRGB","ONE","dstRGB","srcAlpha","dstAlpha","none","normal","SRC_ALPHA","ONE_MINUS_SRC_ALPHA","subtractive","ZERO","ONE_MINUS_SRC_COLOR","equation","rgb","FUNC_SUBTRACT","alpha","max","MAX_EXT","min","MIN_EXT"],"mappings":";;;;AAAA,SAASA,SAAT,EAAoBC,EAApB,QAA0D,eAA1D;AACA,OAAO,IAAMC,UAAuB,mDACjCF,SAAS,CAACG,QADuB,EACZ;AACpBC,EAAAA,MAAM,EAAE,IADY;AAEpBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAEL,EAAE,CAACM,GADP;AAEJC,IAAAA,MAAM,EAAEP,EAAE,CAACM,GAFP;AAGJE,IAAAA,QAAQ,EAAE,CAHN;AAIJC,IAAAA,QAAQ,EAAE;AAJN;AAFc,CADY,gCAUjCV,SAAS,CAACW,IAVuB,EAUhB;AAChBP,EAAAA,MAAM,EAAE;AADQ,CAVgB,gCAajCJ,SAAS,CAACY,MAbuB,EAad;AAClBR,EAAAA,MAAM,EAAE,IADU;AAElBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAEL,EAAE,CAACY,SADP;AAEJL,IAAAA,MAAM,EAAEP,EAAE,CAACa,mBAFP;AAGJL,IAAAA,QAAQ,EAAE,CAHN;AAIJC,IAAAA,QAAQ,EAAE;AAJN;AAFY,CAbc,gCAsBjCV,SAAS,CAACe,WAtBuB,EAsBT;AACvBX,EAAAA,MAAM,EAAE,IADe;AAEvBC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAEL,EAAE,CAACM,GADP;AAEJC,IAAAA,MAAM,EAAEP,EAAE,CAACM,GAFP;AAGJE,IAAAA,QAAQ,EAAER,EAAE,CAACe,IAHT;AAIJN,IAAAA,QAAQ,EAAET,EAAE,CAACgB;AAJT,GAFiB;AAQvBC,EAAAA,QAAQ,EAAE;AACRC,IAAAA,GAAG,EAAElB,EAAE,CAACmB,aADA;AAERC,IAAAA,KAAK,EAAEpB,EAAE,CAACmB;AAFF;AARa,CAtBS,gCAmCjCpB,SAAS,CAACsB,GAnCuB,EAmCjB;AACflB,EAAAA,MAAM,EAAE,IADO;AAEfC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAEL,EAAE,CAACM,GADP;AAEJC,IAAAA,MAAM,EAAEP,EAAE,CAACM;AAFP,GAFS;AAMfW,EAAAA,QAAQ,EAAE;AACRC,IAAAA,GAAG,EAAElB,EAAE,CAACsB;AADA;AANK,CAnCiB,gCA6CjCvB,SAAS,CAACwB,GA7CuB,EA6CjB;AACfpB,EAAAA,MAAM,EAAE,IADO;AAEfC,EAAAA,IAAI,EAAE;AACJC,IAAAA,MAAM,EAAEL,EAAE,CAACM,GADP;AAEJC,IAAAA,MAAM,EAAEP,EAAE,CAACM;AAFP,GAFS;AAMfW,EAAAA,QAAQ,EAAE;AACRC,IAAAA,GAAG,EAAElB,EAAE,CAACwB;AADA;AANK,CA7CiB,eAA7B","sourcesContent":["import { BlendType, gl, IBlendOptions, IBlendTypes } from '@antv/l7-core';\nexport const BlendTypes: IBlendTypes = {\n [BlendType.additive]: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n dstRGB: gl.ONE,\n srcAlpha: 1,\n dstAlpha: 1,\n },\n },\n [BlendType.none]: {\n enable: false,\n },\n [BlendType.normal]: {\n enable: true,\n func: {\n srcRGB: gl.SRC_ALPHA,\n dstRGB: gl.ONE_MINUS_SRC_ALPHA,\n srcAlpha: 1,\n dstAlpha: 1,\n },\n },\n [BlendType.subtractive]: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n dstRGB: gl.ONE,\n srcAlpha: gl.ZERO,\n dstAlpha: gl.ONE_MINUS_SRC_COLOR,\n },\n equation: {\n rgb: gl.FUNC_SUBTRACT,\n alpha: gl.FUNC_SUBTRACT,\n },\n },\n [BlendType.max]: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n dstRGB: gl.ONE,\n },\n equation: {\n rgb: gl.MAX_EXT,\n },\n },\n [BlendType.min]: {\n enable: true,\n func: {\n srcRGB: gl.ONE,\n dstRGB: gl.ONE,\n },\n equation: {\n rgb: gl.MIN_EXT,\n },\n },\n};\n"],"file":"blend.js"}
@@ -1,47 +0,0 @@
1
- export interface ICollisionBox {
2
- x1: number;
3
- y1: number;
4
- x2: number;
5
- y2: number;
6
- anchorPointX: number;
7
- anchorPointY: number;
8
- }
9
- /**
10
- * 基于网格实现文本避让,大幅提升包围盒碰撞检测效率
11
- * @see https://zhuanlan.zhihu.com/p/74373214
12
- */
13
- export default class CollisionIndex {
14
- private width;
15
- private height;
16
- private grid;
17
- private viewportPadding;
18
- private screenRightBoundary;
19
- private screenBottomBoundary;
20
- private gridRightBoundary;
21
- private gridBottomBoundary;
22
- constructor(width: number, height: number);
23
- placeCollisionBox(collisionBox: ICollisionBox): {
24
- box: number[];
25
- };
26
- insertCollisionBox(box: number[], featureIndex: number): void;
27
- /**
28
- * 后续碰撞检测都需要投影到 viewport 坐标系
29
- * @param {THREE.Matrix4} mvpMatrix mvp矩阵
30
- * @param {number} x P20 平面坐标X
31
- * @param {number} y P20 平面坐标Y
32
- * @return {Point} projectedPoint
33
- */
34
- project(mvpMatrix: number[], x: number, y: number): {
35
- x: number;
36
- y: number;
37
- };
38
- /**
39
- * 判断包围盒是否在整个网格内,需要加上 buffer
40
- * @param {number} x1 x1
41
- * @param {number} y1 y1
42
- * @param {number} x2 x2
43
- * @param {number} y2 y2
44
- * @return {Point} isInside
45
- */
46
- isInsideGrid(x1: number, y1: number, x2: number, y2: number): boolean;
47
- }
@@ -1,87 +0,0 @@
1
- import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
2
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
3
- import _createClass from "@babel/runtime/helpers/createClass";
4
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
- import { mat4, vec4 } from 'gl-matrix';
6
- import GridIndex from './grid-index';
7
-
8
- var CollisionIndex = function () {
9
- function CollisionIndex(width, height) {
10
- _classCallCheck(this, CollisionIndex);
11
-
12
- _defineProperty(this, "width", void 0);
13
-
14
- _defineProperty(this, "height", void 0);
15
-
16
- _defineProperty(this, "grid", void 0);
17
-
18
- _defineProperty(this, "viewportPadding", 100);
19
-
20
- _defineProperty(this, "screenRightBoundary", void 0);
21
-
22
- _defineProperty(this, "screenBottomBoundary", void 0);
23
-
24
- _defineProperty(this, "gridRightBoundary", void 0);
25
-
26
- _defineProperty(this, "gridBottomBoundary", void 0);
27
-
28
- this.width = width;
29
- this.height = height;
30
- this.viewportPadding = Math.max(width, height);
31
- this.grid = new GridIndex(width + this.viewportPadding, height + this.viewportPadding, 25);
32
- this.screenRightBoundary = width + this.viewportPadding;
33
- this.screenBottomBoundary = height + this.viewportPadding;
34
- this.gridRightBoundary = width + 2 * this.viewportPadding;
35
- this.gridBottomBoundary = height + 2 * this.viewportPadding;
36
- }
37
-
38
- _createClass(CollisionIndex, [{
39
- key: "placeCollisionBox",
40
- value: function placeCollisionBox(collisionBox) {
41
- var tlX = collisionBox.x1 + collisionBox.anchorPointX + this.viewportPadding;
42
- var tlY = collisionBox.y1 + collisionBox.anchorPointY + this.viewportPadding;
43
- var brX = collisionBox.x2 + collisionBox.anchorPointX + this.viewportPadding;
44
- var brY = collisionBox.y2 + collisionBox.anchorPointY + this.viewportPadding;
45
-
46
- if (!this.isInsideGrid(tlX, tlY, brX, brY) || this.grid.hitTest(tlX, tlY, brX, brY)) {
47
- return {
48
- box: []
49
- };
50
- }
51
-
52
- return {
53
- box: [tlX, tlY, brX, brY]
54
- };
55
- }
56
- }, {
57
- key: "insertCollisionBox",
58
- value: function insertCollisionBox(box, featureIndex) {
59
- var key = {
60
- featureIndex: featureIndex
61
- };
62
- this.grid.insert(key, box[0], box[1], box[2], box[3]);
63
- }
64
- }, {
65
- key: "project",
66
- value: function project(mvpMatrix, x, y) {
67
- var point = vec4.fromValues(x, y, 0, 1);
68
- var out = vec4.create();
69
- var mat = mat4.fromValues.apply(mat4, _toConsumableArray(mvpMatrix));
70
- vec4.transformMat4(out, point, mat);
71
- return {
72
- x: (out[0] / out[3] + 1) / 2 * this.width + this.viewportPadding,
73
- y: (-out[1] / out[3] + 1) / 2 * this.height + this.viewportPadding
74
- };
75
- }
76
- }, {
77
- key: "isInsideGrid",
78
- value: function isInsideGrid(x1, y1, x2, y2) {
79
- return x2 >= 0 && x1 < this.gridRightBoundary && y2 >= 0 && y1 < this.gridBottomBoundary;
80
- }
81
- }]);
82
-
83
- return CollisionIndex;
84
- }();
85
-
86
- export { CollisionIndex as default };
87
- //# sourceMappingURL=collision-index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/collision-index.ts"],"names":["mat4","vec4","GridIndex","CollisionIndex","width","height","viewportPadding","Math","max","grid","screenRightBoundary","screenBottomBoundary","gridRightBoundary","gridBottomBoundary","collisionBox","tlX","x1","anchorPointX","tlY","y1","anchorPointY","brX","x2","brY","y2","isInsideGrid","hitTest","box","featureIndex","key","insert","mvpMatrix","x","y","point","fromValues","out","create","mat","transformMat4"],"mappings":";;;;AASA,SAASA,IAAT,EAAeC,IAAf,QAA2B,WAA3B;AACA,OAAOC,SAAP,MAAsB,cAAtB;;IAKqBC,c;AASnB,0BAAYC,KAAZ,EAA2BC,MAA3B,EAA2C;AAAA;;AAAA;;AAAA;;AAAA;;AAAA,6CALT,GAKS;;AAAA;;AAAA;;AAAA;;AAAA;;AACzC,SAAKD,KAAL,GAAaA,KAAb;AACA,SAAKC,MAAL,GAAcA,MAAd;AACA,SAAKC,eAAL,GAAuBC,IAAI,CAACC,GAAL,CAASJ,KAAT,EAAgBC,MAAhB,CAAvB;AAEA,SAAKI,IAAL,GAAY,IAAIP,SAAJ,CACVE,KAAK,GAAG,KAAKE,eADH,EAEVD,MAAM,GAAG,KAAKC,eAFJ,EAGV,EAHU,CAAZ;AAMA,SAAKI,mBAAL,GAA2BN,KAAK,GAAG,KAAKE,eAAxC;AACA,SAAKK,oBAAL,GAA4BN,MAAM,GAAG,KAAKC,eAA1C;AACA,SAAKM,iBAAL,GAAyBR,KAAK,GAAG,IAAI,KAAKE,eAA1C;AACA,SAAKO,kBAAL,GAA0BR,MAAM,GAAG,IAAI,KAAKC,eAA5C;AACD;;;;WAED,2BAAyBQ,YAAzB,EAAsD;AAOpD,UAAMC,GAAG,GACPD,YAAY,CAACE,EAAb,GAAkBF,YAAY,CAACG,YAA/B,GAA8C,KAAKX,eADrD;AAEA,UAAMY,GAAG,GACPJ,YAAY,CAACK,EAAb,GAAkBL,YAAY,CAACM,YAA/B,GAA8C,KAAKd,eADrD;AAEA,UAAMe,GAAG,GACPP,YAAY,CAACQ,EAAb,GAAkBR,YAAY,CAACG,YAA/B,GAA8C,KAAKX,eADrD;AAEA,UAAMiB,GAAG,GACPT,YAAY,CAACU,EAAb,GAAkBV,YAAY,CAACM,YAA/B,GAA8C,KAAKd,eADrD;;AAGA,UACE,CAAC,KAAKmB,YAAL,CAAkBV,GAAlB,EAAuBG,GAAvB,EAA4BG,GAA5B,EAAiCE,GAAjC,CAAD,IACA,KAAKd,IAAL,CAAUiB,OAAV,CAAkBX,GAAlB,EAAuBG,GAAvB,EAA4BG,GAA5B,EAAiCE,GAAjC,CAFF,EAGE;AACA,eAAO;AACLI,UAAAA,GAAG,EAAE;AADA,SAAP;AAGD;;AAED,aAAO;AACLA,QAAAA,GAAG,EAAE,CAACZ,GAAD,EAAMG,GAAN,EAAWG,GAAX,EAAgBE,GAAhB;AADA,OAAP;AAGD;;;WAED,4BAA0BI,GAA1B,EAAyCC,YAAzC,EAA+D;AAC7D,UAAMC,GAAG,GAAG;AAAED,QAAAA,YAAY,EAAZA;AAAF,OAAZ;AACA,WAAKnB,IAAL,CAAUqB,MAAV,CAAiBD,GAAjB,EAAsBF,GAAG,CAAC,CAAD,CAAzB,EAA8BA,GAAG,CAAC,CAAD,CAAjC,EAAsCA,GAAG,CAAC,CAAD,CAAzC,EAA8CA,GAAG,CAAC,CAAD,CAAjD;AACD;;;WASD,iBAAeI,SAAf,EAAoCC,CAApC,EAA+CC,CAA/C,EAA0D;AACxD,UAAMC,KAAK,GAAGjC,IAAI,CAACkC,UAAL,CAAgBH,CAAhB,EAAmBC,CAAnB,EAAsB,CAAtB,EAAyB,CAAzB,CAAd;AACA,UAAMG,GAAG,GAAGnC,IAAI,CAACoC,MAAL,EAAZ;AAEA,UAAMC,GAAG,GAAGtC,IAAI,CAACmC,UAAL,OAAAnC,IAAI,qBAAe+B,SAAf,EAAhB;AACA9B,MAAAA,IAAI,CAACsC,aAAL,CAAmBH,GAAnB,EAAwBF,KAAxB,EAA+BI,GAA/B;AAEA,aAAO;AACLN,QAAAA,CAAC,EAAG,CAACI,GAAG,CAAC,CAAD,CAAH,GAASA,GAAG,CAAC,CAAD,CAAZ,GAAkB,CAAnB,IAAwB,CAAzB,GAA8B,KAAKhC,KAAnC,GAA2C,KAAKE,eAD9C;AAEL2B,QAAAA,CAAC,EAAG,CAAC,CAACG,GAAG,CAAC,CAAD,CAAJ,GAAUA,GAAG,CAAC,CAAD,CAAb,GAAmB,CAApB,IAAyB,CAA1B,GAA+B,KAAK/B,MAApC,GAA6C,KAAKC;AAFhD,OAAP;AAID;;;WAUD,sBAAoBU,EAApB,EAAgCG,EAAhC,EAA4CG,EAA5C,EAAwDE,EAAxD,EAAoE;AAClE,aACEF,EAAE,IAAI,CAAN,IACAN,EAAE,GAAG,KAAKJ,iBADV,IAEAY,EAAE,IAAI,CAFN,IAGAL,EAAE,GAAG,KAAKN,kBAJZ;AAMD;;;;;;SAhGkBV,c","sourcesContent":["export interface ICollisionBox {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n anchorPointX: number;\n anchorPointY: number;\n}\n// @mapbox/grid-index 并没有类似 hitTest 的单纯获取碰撞检测结果的方法,query 将导致计算大量多余的包围盒结果,因此使用改良版\nimport { mat4, vec4 } from 'gl-matrix';\nimport GridIndex from './grid-index';\n/**\n * 基于网格实现文本避让,大幅提升包围盒碰撞检测效率\n * @see https://zhuanlan.zhihu.com/p/74373214\n */\nexport default class CollisionIndex {\n private width: number;\n private height: number;\n private grid: GridIndex;\n private viewportPadding: number = 100;\n private screenRightBoundary: number;\n private screenBottomBoundary: number;\n private gridRightBoundary: number;\n private gridBottomBoundary: number;\n constructor(width: number, height: number) {\n this.width = width;\n this.height = height;\n this.viewportPadding = Math.max(width, height);\n // 创建网格索引\n this.grid = new GridIndex(\n width + this.viewportPadding,\n height + this.viewportPadding,\n 25,\n );\n\n this.screenRightBoundary = width + this.viewportPadding;\n this.screenBottomBoundary = height + this.viewportPadding;\n this.gridRightBoundary = width + 2 * this.viewportPadding;\n this.gridBottomBoundary = height + 2 * this.viewportPadding;\n }\n\n public placeCollisionBox(collisionBox: ICollisionBox) {\n // const projectedPoint = this.project(\n // mvpMatrix,\n // collisionBox.anchorPointX,\n // collisionBox.anchorPointY,\n // );\n\n const tlX =\n collisionBox.x1 + collisionBox.anchorPointX + this.viewportPadding;\n const tlY =\n collisionBox.y1 + collisionBox.anchorPointY + this.viewportPadding;\n const brX =\n collisionBox.x2 + collisionBox.anchorPointX + this.viewportPadding;\n const brY =\n collisionBox.y2 + collisionBox.anchorPointY + this.viewportPadding;\n\n if (\n !this.isInsideGrid(tlX, tlY, brX, brY) ||\n this.grid.hitTest(tlX, tlY, brX, brY)\n ) {\n return {\n box: [],\n };\n }\n\n return {\n box: [tlX, tlY, brX, brY],\n };\n }\n\n public insertCollisionBox(box: number[], featureIndex: number) {\n const key = { featureIndex };\n this.grid.insert(key, box[0], box[1], box[2], box[3]);\n }\n\n /**\n * 后续碰撞检测都需要投影到 viewport 坐标系\n * @param {THREE.Matrix4} mvpMatrix mvp矩阵\n * @param {number} x P20 平面坐标X\n * @param {number} y P20 平面坐标Y\n * @return {Point} projectedPoint\n */\n public project(mvpMatrix: number[], x: number, y: number) {\n const point = vec4.fromValues(x, y, 0, 1);\n const out = vec4.create();\n // @ts-ignore\n const mat = mat4.fromValues(...mvpMatrix);\n vec4.transformMat4(out, point, mat);\n // GL 坐标系[-1, 1] -> viewport 坐标系[width, height]\n return {\n x: ((out[0] / out[3] + 1) / 2) * this.width + this.viewportPadding,\n y: ((-out[1] / out[3] + 1) / 2) * this.height + this.viewportPadding,\n };\n }\n\n /**\n * 判断包围盒是否在整个网格内,需要加上 buffer\n * @param {number} x1 x1\n * @param {number} y1 y1\n * @param {number} x2 x2\n * @param {number} y2 y2\n * @return {Point} isInside\n */\n public isInsideGrid(x1: number, y1: number, x2: number, y2: number) {\n return (\n x2 >= 0 &&\n x1 < this.gridRightBoundary &&\n y2 >= 0 &&\n y1 < this.gridBottomBoundary\n );\n }\n}\n"],"file":"collision-index.js"}
@@ -1,30 +0,0 @@
1
- import { ILayer } from '@antv/l7-core';
2
- /**
3
- * 该文件中的工具方法主要用于对 style 中的属性进行 数据映射
4
- */
5
- interface IConfigToUpdate {
6
- opacity?: any;
7
- strokeOpacity?: any;
8
- stroke?: any;
9
- strokeWidth?: any;
10
- offsets?: any;
11
- textOffset?: any;
12
- }
13
- /**
14
- * 当样式发生变化时判断是否需要进行数据映射
15
- * @param configToUpdate
16
- * @param layer
17
- */
18
- declare function handleStyleDataMapping(configToUpdate: IConfigToUpdate, layer: any): void;
19
- /**
20
- * 根据传入参数 float 的类型和值做相应的操作
21
- */
22
- declare function handleStyleFloat(fieldName: string, layer: ILayer, styleFloat: any): void;
23
- /**
24
- * 根据传入参数 stroke / color 的类型和值做相应的操作
25
- * @param fieldName
26
- * @param layer
27
- * @param styleColor
28
- */
29
- declare function handleStyleColor(fieldName: string, layer: ILayer, styleColor: any): void;
30
- export { handleStyleDataMapping, handleStyleFloat, handleStyleColor };
@@ -1,88 +0,0 @@
1
- import _isString from "lodash/isString";
2
- import _isNumber from "lodash/isNumber";
3
- import _isFunction from "lodash/isFunction";
4
- import _isArray from "lodash/isArray";
5
- var WIDTH = 1024;
6
-
7
- function registerStyleAttribute(fieldName, layer, field, values, updateOptions) {
8
- layer.updateStyleAttribute(fieldName, field, values, updateOptions);
9
- }
10
-
11
- function handleStyleDataMapping(configToUpdate, layer) {
12
- if (configToUpdate.opacity) {
13
- handleStyleFloat('opacity', layer, configToUpdate.opacity);
14
- }
15
-
16
- if (configToUpdate.strokeWidth) {
17
- handleStyleFloat('strokeWidth', layer, configToUpdate.strokeWidth);
18
- }
19
-
20
- if (configToUpdate.strokeOpacity) {
21
- handleStyleFloat('strokeOpacity', layer, configToUpdate.strokeOpacity);
22
- }
23
-
24
- if (configToUpdate.stroke) {
25
- handleStyleColor('stroke', layer, configToUpdate.stroke);
26
- }
27
-
28
- if (configToUpdate.offsets) {
29
- handleStyleOffsets('offsets', layer, configToUpdate.offsets);
30
- }
31
-
32
- if (configToUpdate.textOffset) {
33
- handleStyleOffsets('textOffset', layer, configToUpdate.textOffset);
34
- }
35
- }
36
-
37
- function handleStyleFloat(fieldName, layer, styleFloat) {
38
- if (_isString(styleFloat)) {
39
- registerStyleAttribute(fieldName, layer, styleFloat, function (value) {
40
- return value;
41
- });
42
- } else if (_isNumber(styleFloat)) {
43
- registerStyleAttribute(fieldName, layer, [styleFloat], undefined);
44
- } else if (_isArray(styleFloat) && styleFloat.length === 2) {
45
- if (_isString(styleFloat[0]) && _isFunction(styleFloat[1])) {
46
- registerStyleAttribute(fieldName, layer, styleFloat[0], styleFloat[1]);
47
- } else if (_isString(styleFloat[0]) && _isArray(styleFloat[1]) && _isNumber(styleFloat[1][0]) && _isNumber(styleFloat[1][1])) {
48
- registerStyleAttribute(fieldName, layer, styleFloat[0], styleFloat[1]);
49
- } else {
50
- registerStyleAttribute(fieldName, layer, [1.0], undefined);
51
- }
52
- } else {
53
- registerStyleAttribute(fieldName, layer, [1.0], undefined);
54
- }
55
- }
56
-
57
- function handleStyleOffsets(fieldName, layer, styleOffsets) {
58
- if (_isString(styleOffsets)) {
59
- registerStyleAttribute(fieldName, layer, styleOffsets, function (value) {
60
- return value;
61
- });
62
- } else if (_isArray(styleOffsets) && styleOffsets.length === 2 && _isString(styleOffsets[0]) && _isFunction(styleOffsets[1])) {
63
- registerStyleAttribute(fieldName, layer, styleOffsets[0], styleOffsets[1]);
64
- } else if (_isArray(styleOffsets) && styleOffsets.length === 2 && _isNumber(styleOffsets[0]) && _isNumber(styleOffsets[1])) {
65
- registerStyleAttribute(fieldName, layer, styleOffsets, undefined);
66
- } else {
67
- registerStyleAttribute(fieldName, layer, [0, 0], undefined);
68
- }
69
- }
70
-
71
- function handleStyleColor(fieldName, layer, styleColor) {
72
- if (_isString(styleColor)) {
73
- registerStyleAttribute(fieldName, layer, styleColor, undefined);
74
- } else if (_isArray(styleColor) && styleColor.length === 2) {
75
- if (_isString(styleColor[0]) && _isFunction(styleColor[1])) {
76
- registerStyleAttribute(fieldName, layer, styleColor[0], styleColor[1]);
77
- } else if (_isString(styleColor[0]) && _isArray(styleColor[1]) && styleColor[1].length > 0) {
78
- registerStyleAttribute(fieldName, layer, styleColor[0], styleColor[1]);
79
- } else {
80
- registerStyleAttribute(fieldName, layer, '#fff', undefined);
81
- }
82
- } else {
83
- registerStyleAttribute(fieldName, layer, '#fff', undefined);
84
- }
85
- }
86
-
87
- export { handleStyleDataMapping, handleStyleFloat, handleStyleColor };
88
- //# sourceMappingURL=dataMappingStyle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/utils/dataMappingStyle.ts"],"names":["WIDTH","registerStyleAttribute","fieldName","layer","field","values","updateOptions","updateStyleAttribute","handleStyleDataMapping","configToUpdate","opacity","handleStyleFloat","strokeWidth","strokeOpacity","stroke","handleStyleColor","offsets","handleStyleOffsets","textOffset","styleFloat","value","undefined","length","styleOffsets","styleColor"],"mappings":"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","sourcesContent":["import {\n gl,\n ILayer,\n IStyleAttributeUpdateOptions,\n ITexture2D,\n StyleAttributeField,\n StyleAttributeOption,\n} from '@antv/l7-core';\nimport { rgb2arr } from '@antv/l7-utils';\nimport { isArray, isFunction, isNumber, isString } from 'lodash';\n/**\n * 该文件中的工具方法主要用于对 style 中的属性进行 数据映射\n */\n\ninterface IConfigToUpdate {\n opacity?: any;\n strokeOpacity?: any;\n stroke?: any;\n strokeWidth?: any;\n offsets?: any;\n textOffset?: any;\n}\n\n// 画布默认的宽度\nconst WIDTH = 1024;\n\n/**\n * 当 style 中使用的 opacity 不是常数的时候根据数据进行映射\n * @param field\n * @param values\n * @param updateOptions\n */\nfunction registerStyleAttribute(\n fieldName: string,\n layer: ILayer,\n field: StyleAttributeField,\n values?: StyleAttributeOption,\n updateOptions?: Partial<IStyleAttributeUpdateOptions>,\n) {\n layer.updateStyleAttribute(fieldName, field, values, updateOptions);\n}\n\n/**\n * 当样式发生变化时判断是否需要进行数据映射\n * @param configToUpdate\n * @param layer\n */\nfunction handleStyleDataMapping(configToUpdate: IConfigToUpdate, layer: any) {\n if (configToUpdate.opacity) {\n // 处理 style 中 opacity 属性的数据映射\n\n handleStyleFloat('opacity', layer, configToUpdate.opacity);\n }\n\n if (configToUpdate.strokeWidth) {\n // 处理 style 中 strokeWidth 属性的数据映射\n\n handleStyleFloat('strokeWidth', layer, configToUpdate.strokeWidth);\n }\n\n if (configToUpdate.strokeOpacity) {\n // 处理 style 中 strokeOpacity 属性的数据映射\n\n handleStyleFloat('strokeOpacity', layer, configToUpdate.strokeOpacity);\n }\n\n if (configToUpdate.stroke) {\n // 处理 style 中 stroke (strokeColor) 属性的数据映射\n handleStyleColor('stroke', layer, configToUpdate.stroke);\n }\n\n if (configToUpdate.offsets) {\n // 处理 style 中 offsets 属性的数据映射\n handleStyleOffsets('offsets', layer, configToUpdate.offsets);\n }\n\n if (configToUpdate.textOffset) {\n // 处理 style 中 textOffset 属性的数据映射\n handleStyleOffsets('textOffset', layer, configToUpdate.textOffset);\n }\n}\n\n/**\n * 根据传入参数 float 的类型和值做相应的操作\n */\nfunction handleStyleFloat(fieldName: string, layer: ILayer, styleFloat: any) {\n if (isString(styleFloat)) {\n // 如果传入的 styleFloat 是 string 类型,那么就认为其对应的是传入数据的字段\n registerStyleAttribute(fieldName, layer, styleFloat, (value: any) => {\n return value;\n });\n } else if (isNumber(styleFloat)) {\n // 传入 number、默认值处理\n registerStyleAttribute(fieldName, layer, [styleFloat], undefined);\n } else if (isArray(styleFloat) && styleFloat.length === 2) {\n // 传入的 styleFloat 是长度为 2 的数组\n if (isString(styleFloat[0]) && isFunction(styleFloat[1])) {\n // 字段回调函数 [string, callback]\n registerStyleAttribute(fieldName, layer, styleFloat[0], styleFloat[1]);\n } else if (\n isString(styleFloat[0]) &&\n isArray(styleFloat[1]) &&\n isNumber(styleFloat[1][0]) &&\n isNumber(styleFloat[1][1])\n ) {\n // 字段映射 [string, [start: number, end: number]]\n registerStyleAttribute(fieldName, layer, styleFloat[0], styleFloat[1]);\n } else {\n // 兼容\n registerStyleAttribute(fieldName, layer, [1.0], undefined);\n }\n } else {\n // 兼容\n registerStyleAttribute(fieldName, layer, [1.0], undefined);\n }\n}\n/**\n * 根据传入参数 offsets 的类型和值做相应的操作\n * @param fieldName\n * @param layer\n * @param styleOffsets\n */\nfunction handleStyleOffsets(\n fieldName: string,\n layer: ILayer,\n styleOffsets: any,\n) {\n if (isString(styleOffsets)) {\n // 如果传入的 styleOffsets 是 string 类型,那么就认为其对应的是传入数据的字段\n registerStyleAttribute(fieldName, layer, styleOffsets, (value: any) => {\n return value;\n });\n } else if (\n isArray(styleOffsets) &&\n styleOffsets.length === 2 &&\n isString(styleOffsets[0]) &&\n isFunction(styleOffsets[1])\n ) {\n // 字段回调函数 [string, callback]\n registerStyleAttribute(fieldName, layer, styleOffsets[0], styleOffsets[1]);\n } else if (\n isArray(styleOffsets) &&\n styleOffsets.length === 2 &&\n isNumber(styleOffsets[0]) &&\n isNumber(styleOffsets[1])\n ) {\n // 字段映射 [string, [start: number, end: number]]\n registerStyleAttribute(fieldName, layer, styleOffsets, undefined);\n } else {\n // 兼容\n registerStyleAttribute(fieldName, layer, [0, 0], undefined);\n }\n}\n\n/**\n * 根据传入参数 stroke / color 的类型和值做相应的操作\n * @param fieldName\n * @param layer\n * @param styleColor\n */\nfunction handleStyleColor(fieldName: string, layer: ILayer, styleColor: any) {\n if (isString(styleColor)) {\n // 如果传入的 styleColor 是 string 类型,那么就认为其是颜色值\n registerStyleAttribute(fieldName, layer, styleColor, undefined);\n } else if (isArray(styleColor) && styleColor.length === 2) {\n // 传入的 styleColor 是长度为 2 的数组\n if (isString(styleColor[0]) && isFunction(styleColor[1])) {\n // 字段回调函数 [string, callback]\n registerStyleAttribute(fieldName, layer, styleColor[0], styleColor[1]);\n } else if (\n isString(styleColor[0]) &&\n isArray(styleColor[1]) &&\n styleColor[1].length > 0\n ) {\n // 字段映射 [string, [start: string, end: string]]\n registerStyleAttribute(fieldName, layer, styleColor[0], styleColor[1]);\n } else {\n // 兼容\n registerStyleAttribute(fieldName, layer, '#fff', undefined);\n }\n } else {\n // 兼容\n registerStyleAttribute(fieldName, layer, '#fff', undefined);\n }\n}\n\nexport { handleStyleDataMapping, handleStyleFloat, handleStyleColor };\n"],"file":"dataMappingStyle.js"}
@@ -1,48 +0,0 @@
1
- import { vec2 } from 'gl-matrix';
2
- export declare function computeMiter(lineTangent: vec2, miter: vec2, start: vec2, end: vec2, halfThick: number): [number, vec2];
3
- export declare function computeNormal(out: vec2, dir: vec2): vec2;
4
- export declare function direction(out: vec2, a: vec2, b: vec2): vec2;
5
- export interface IExtrudeLineOption {
6
- join: string;
7
- cap: string;
8
- dash: boolean;
9
- closed: boolean;
10
- indexOffset: number;
11
- miterLimit: number;
12
- thickness: number;
13
- }
14
- export default class ExtrudePolyline {
15
- complex: {
16
- positions: number[];
17
- indices: number[];
18
- normals: number[];
19
- startIndex: number;
20
- };
21
- private join;
22
- private cap;
23
- private miterLimit;
24
- private thickness;
25
- private normal;
26
- private lastFlip;
27
- private miter;
28
- private started;
29
- private dash;
30
- private totalDistance;
31
- constructor(opts?: Partial<IExtrudeLineOption>);
32
- extrude_gaode2(points: number[][], originPoints: number[][]): {
33
- positions: number[];
34
- indices: number[];
35
- normals: number[];
36
- startIndex: number;
37
- };
38
- extrude(points: number[][]): {
39
- positions: number[];
40
- indices: number[];
41
- normals: number[];
42
- startIndex: number;
43
- };
44
- private segment_gaode2;
45
- private segment;
46
- private extrusions;
47
- private lineSegmentDistance;
48
- }