@antv/l7-layers 2.9.17-alpha.0 → 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 (367) hide show
  1. package/es/Geometry/index.js +2 -12
  2. package/es/Geometry/index.js.map +1 -1
  3. package/es/Geometry/models/billboard.d.ts +3 -3
  4. package/es/Geometry/models/billboard.js +6 -11
  5. package/es/Geometry/models/billboard.js.map +1 -1
  6. package/es/Geometry/models/plane.d.ts +3 -3
  7. package/es/Geometry/models/plane.js +7 -12
  8. package/es/Geometry/models/plane.js.map +1 -1
  9. package/es/Geometry/models/sprite.d.ts +3 -3
  10. package/es/Geometry/models/sprite.js +6 -11
  11. package/es/Geometry/models/sprite.js.map +1 -1
  12. package/es/canvas/index.js +2 -12
  13. package/es/canvas/index.js.map +1 -1
  14. package/es/citybuliding/building.js +2 -12
  15. package/es/citybuliding/building.js.map +1 -1
  16. package/es/citybuliding/models/build.d.ts +1 -2
  17. package/es/citybuliding/models/build.js +3 -16
  18. package/es/citybuliding/models/build.js.map +1 -1
  19. package/es/core/BaseLayer.d.ts +1 -1
  20. package/es/core/BaseLayer.js +58 -97
  21. package/es/core/BaseLayer.js.map +1 -1
  22. package/es/core/BaseModel.d.ts +2 -2
  23. package/es/core/BaseModel.js +2 -2
  24. package/es/core/BaseModel.js.map +1 -1
  25. package/es/core/interface.d.ts +13 -2
  26. package/es/core/interface.js.map +1 -1
  27. package/es/core/triangulation.d.ts +0 -1
  28. package/es/core/triangulation.js +11 -37
  29. package/es/core/triangulation.js.map +1 -1
  30. package/es/earth/index.js +2 -8
  31. package/es/earth/index.js.map +1 -1
  32. package/es/earth/models/atmosphere.d.ts +2 -2
  33. package/es/earth/models/atmosphere.js +6 -11
  34. package/es/earth/models/atmosphere.js.map +1 -1
  35. package/es/earth/models/base.d.ts +2 -2
  36. package/es/earth/models/base.js +6 -11
  37. package/es/earth/models/base.js.map +1 -1
  38. package/es/earth/models/bloomsphere.d.ts +2 -2
  39. package/es/earth/models/bloomsphere.js +6 -11
  40. package/es/earth/models/bloomsphere.js.map +1 -1
  41. package/es/heatmap/index.js +5 -17
  42. package/es/heatmap/index.js.map +1 -1
  43. package/es/heatmap/models/grid.d.ts +2 -2
  44. package/es/heatmap/models/grid.js +8 -12
  45. package/es/heatmap/models/grid.js.map +1 -1
  46. package/es/heatmap/models/grid3d.d.ts +2 -2
  47. package/es/heatmap/models/grid3d.js +6 -12
  48. package/es/heatmap/models/grid3d.js.map +1 -1
  49. package/es/heatmap/models/heatmap.d.ts +2 -2
  50. package/es/heatmap/models/heatmap.js +62 -112
  51. package/es/heatmap/models/heatmap.js.map +1 -1
  52. package/es/heatmap/models/hexagon.d.ts +2 -2
  53. package/es/heatmap/models/hexagon.js +6 -11
  54. package/es/heatmap/models/hexagon.js.map +1 -1
  55. package/es/image/index.d.ts +1 -1
  56. package/es/image/index.js +16 -14
  57. package/es/image/index.js.map +1 -1
  58. package/es/image/models/dataImage.d.ts +22 -0
  59. package/es/image/models/dataImage.js +230 -0
  60. package/es/image/models/dataImage.js.map +1 -0
  61. package/es/image/models/image.d.ts +4 -3
  62. package/es/image/models/image.js +14 -11
  63. package/es/image/models/image.js.map +1 -1
  64. package/es/image/models/index.d.ts +1 -1
  65. package/es/image/models/index.js +3 -1
  66. package/es/image/models/index.js.map +1 -1
  67. package/es/line/index.d.ts +2 -0
  68. package/es/line/index.js +5 -12
  69. package/es/line/index.js.map +1 -1
  70. package/es/line/models/arc.d.ts +2 -2
  71. package/es/line/models/arc.js +10 -15
  72. package/es/line/models/arc.js.map +1 -1
  73. package/es/line/models/arc_3d.d.ts +2 -2
  74. package/es/line/models/arc_3d.js +8 -13
  75. package/es/line/models/arc_3d.js.map +1 -1
  76. package/es/line/models/arcmini.d.ts +9 -0
  77. package/es/line/models/arcmini.js +145 -0
  78. package/es/line/models/arcmini.js.map +1 -0
  79. package/es/line/models/earthArc_3d.d.ts +2 -2
  80. package/es/line/models/earthArc_3d.js +9 -17
  81. package/es/line/models/earthArc_3d.js.map +1 -1
  82. package/es/line/models/great_circle.d.ts +2 -2
  83. package/es/line/models/great_circle.js +8 -13
  84. package/es/line/models/great_circle.js.map +1 -1
  85. package/es/line/models/half.d.ts +2 -2
  86. package/es/line/models/half.js +29 -46
  87. package/es/line/models/half.js.map +1 -1
  88. package/es/line/models/index.d.ts +1 -1
  89. package/es/line/models/index.js +2 -0
  90. package/es/line/models/index.js.map +1 -1
  91. package/es/line/models/line.d.ts +2 -2
  92. package/es/line/models/line.js +16 -28
  93. package/es/line/models/line.js.map +1 -1
  94. package/es/line/models/linearline.d.ts +11 -2
  95. package/es/line/models/linearline.js +24 -14
  96. package/es/line/models/linearline.js.map +1 -1
  97. package/es/line/models/simpleLine.d.ts +2 -3
  98. package/es/line/models/simpleLine.js +18 -66
  99. package/es/line/models/simpleLine.js.map +1 -1
  100. package/es/line/models/tile.d.ts +11 -2
  101. package/es/line/models/tile.js +39 -45
  102. package/es/line/models/tile.js.map +1 -1
  103. package/es/line/models/wall.d.ts +2 -2
  104. package/es/line/models/wall.js +9 -13
  105. package/es/line/models/wall.js.map +1 -1
  106. package/es/mask/index.js +2 -12
  107. package/es/mask/index.js.map +1 -1
  108. package/es/mask/models/fill.d.ts +2 -2
  109. package/es/mask/models/fill.js +27 -53
  110. package/es/mask/models/fill.js.map +1 -1
  111. package/es/plugins/DataMappingPlugin.js +8 -29
  112. package/es/plugins/DataMappingPlugin.js.map +1 -1
  113. package/es/plugins/DataSourcePlugin.js +5 -14
  114. package/es/plugins/DataSourcePlugin.js.map +1 -1
  115. package/es/plugins/LayerModelPlugin.d.ts +0 -2
  116. package/es/plugins/LayerModelPlugin.js +7 -33
  117. package/es/plugins/LayerModelPlugin.js.map +1 -1
  118. package/es/plugins/PixelPickingPlugin.js +13 -16
  119. package/es/plugins/PixelPickingPlugin.js.map +1 -1
  120. package/es/point/index.d.ts +1 -1
  121. package/es/point/index.js +8 -15
  122. package/es/point/index.js.map +1 -1
  123. package/es/point/models/earthExtrude.d.ts +2 -2
  124. package/es/point/models/earthExtrude.js +14 -16
  125. package/es/point/models/earthExtrude.js.map +1 -1
  126. package/es/point/models/earthFill.d.ts +11 -2
  127. package/es/point/models/earthFill.js +22 -13
  128. package/es/point/models/earthFill.js.map +1 -1
  129. package/es/point/models/extrude.d.ts +2 -2
  130. package/es/point/models/extrude.js +27 -49
  131. package/es/point/models/extrude.js.map +1 -1
  132. package/es/point/models/fill.d.ts +2 -2
  133. package/es/point/models/fill.js +41 -59
  134. package/es/point/models/fill.js.map +1 -1
  135. package/es/point/models/fillmage.d.ts +7 -2
  136. package/es/point/models/fillmage.js +22 -13
  137. package/es/point/models/fillmage.js.map +1 -1
  138. package/es/point/models/icon-font.d.ts +11 -0
  139. package/es/point/models/icon-font.js +181 -0
  140. package/es/point/models/icon-font.js.map +1 -0
  141. package/es/point/models/image.d.ts +2 -2
  142. package/es/point/models/image.js +6 -11
  143. package/es/point/models/image.js.map +1 -1
  144. package/es/point/models/index.d.ts +1 -1
  145. package/es/point/models/index.js +2 -0
  146. package/es/point/models/index.js.map +1 -1
  147. package/es/point/models/normal.d.ts +2 -2
  148. package/es/point/models/normal.js +6 -11
  149. package/es/point/models/normal.js.map +1 -1
  150. package/es/point/models/radar.d.ts +11 -2
  151. package/es/point/models/radar.js +22 -13
  152. package/es/point/models/radar.js.map +1 -1
  153. package/es/point/models/simplePoint.d.ts +2 -2
  154. package/es/point/models/simplePoint.js +6 -11
  155. package/es/point/models/simplePoint.js.map +1 -1
  156. package/es/point/models/text.d.ts +2 -3
  157. package/es/point/models/text.js +75 -108
  158. package/es/point/models/text.js.map +1 -1
  159. package/es/point/models/tile.d.ts +11 -2
  160. package/es/point/models/tile.js +25 -22
  161. package/es/point/models/tile.js.map +1 -1
  162. package/es/polygon/index.js +2 -12
  163. package/es/polygon/index.js.map +1 -1
  164. package/es/polygon/models/extrude.d.ts +2 -2
  165. package/es/polygon/models/extrude.js +5 -10
  166. package/es/polygon/models/extrude.js.map +1 -1
  167. package/es/polygon/models/fill.d.ts +2 -2
  168. package/es/polygon/models/fill.js +13 -27
  169. package/es/polygon/models/fill.js.map +1 -1
  170. package/es/polygon/models/ocean.d.ts +2 -2
  171. package/es/polygon/models/ocean.js +6 -12
  172. package/es/polygon/models/ocean.js.map +1 -1
  173. package/es/polygon/models/tile.d.ts +3 -2
  174. package/es/polygon/models/tile.js +27 -17
  175. package/es/polygon/models/tile.js.map +1 -1
  176. package/es/polygon/models/water.d.ts +2 -2
  177. package/es/polygon/models/water.js +6 -12
  178. package/es/polygon/models/water.js.map +1 -1
  179. package/es/raster/image.d.ts +0 -0
  180. package/es/raster/image.js +2 -0
  181. package/es/raster/image.js.map +1 -0
  182. package/es/raster/index.js +2 -12
  183. package/es/raster/index.js.map +1 -1
  184. package/es/raster/models/raster.d.ts +3 -3
  185. package/es/raster/models/raster.js +7 -11
  186. package/es/raster/models/raster.js.map +1 -1
  187. package/es/raster/raster2d.d.ts +27 -0
  188. package/es/raster/raster2d.js +158 -0
  189. package/es/raster/raster2d.js.map +1 -0
  190. package/es/tile/manager/tileLayerManager.js +21 -4
  191. package/es/tile/manager/tileLayerManager.js.map +1 -1
  192. package/es/tile/manager/tilePickerManager.js +0 -1
  193. package/es/tile/manager/tilePickerManager.js.map +1 -1
  194. package/es/tile/tileFactory/base.js.map +1 -1
  195. package/es/tile/tileFactory/point.js.map +1 -1
  196. package/es/tile/tileFactory/rasterDataLayer.js +2 -12
  197. package/es/tile/tileFactory/rasterDataLayer.js.map +1 -1
  198. package/es/tile/tileFactory/vectorLayer.js +2 -12
  199. package/es/tile/tileFactory/vectorLayer.js.map +1 -1
  200. package/es/utils/extrude_polyline.d.ts +0 -15
  201. package/es/utils/extrude_polyline.js +6 -138
  202. package/es/utils/extrude_polyline.js.map +1 -1
  203. package/es/utils/geo.d.ts +12 -0
  204. package/es/utils/geo.js +53 -0
  205. package/es/utils/geo.js.map +1 -0
  206. package/es/utils/simpleLine.d.ts +23 -0
  207. package/es/utils/simpleLine.js +105 -0
  208. package/es/utils/simpleLine.js.map +1 -0
  209. package/es/wind/index.js +2 -12
  210. package/es/wind/index.js.map +1 -1
  211. package/es/wind/models/wind.d.ts +2 -2
  212. package/es/wind/models/wind.js +33 -36
  213. package/es/wind/models/wind.js.map +1 -1
  214. package/lib/Geometry/index.js +2 -12
  215. package/lib/Geometry/index.js.map +1 -1
  216. package/lib/Geometry/models/billboard.js +6 -11
  217. package/lib/Geometry/models/billboard.js.map +1 -1
  218. package/lib/Geometry/models/plane.js +7 -12
  219. package/lib/Geometry/models/plane.js.map +1 -1
  220. package/lib/Geometry/models/sprite.js +6 -11
  221. package/lib/Geometry/models/sprite.js.map +1 -1
  222. package/lib/canvas/index.js +2 -12
  223. package/lib/canvas/index.js.map +1 -1
  224. package/lib/citybuliding/building.js +2 -12
  225. package/lib/citybuliding/building.js.map +1 -1
  226. package/lib/citybuliding/models/build.js +3 -16
  227. package/lib/citybuliding/models/build.js.map +1 -1
  228. package/lib/core/BaseLayer.js +57 -96
  229. package/lib/core/BaseLayer.js.map +1 -1
  230. package/lib/core/BaseModel.js +2 -2
  231. package/lib/core/BaseModel.js.map +1 -1
  232. package/lib/core/interface.js.map +1 -1
  233. package/lib/core/triangulation.js +16 -40
  234. package/lib/core/triangulation.js.map +1 -1
  235. package/lib/earth/index.js +2 -8
  236. package/lib/earth/index.js.map +1 -1
  237. package/lib/earth/models/atmosphere.js +6 -11
  238. package/lib/earth/models/atmosphere.js.map +1 -1
  239. package/lib/earth/models/base.js +6 -11
  240. package/lib/earth/models/base.js.map +1 -1
  241. package/lib/earth/models/bloomsphere.js +6 -11
  242. package/lib/earth/models/bloomsphere.js.map +1 -1
  243. package/lib/heatmap/index.js +5 -17
  244. package/lib/heatmap/index.js.map +1 -1
  245. package/lib/heatmap/models/grid.js +8 -12
  246. package/lib/heatmap/models/grid.js.map +1 -1
  247. package/lib/heatmap/models/grid3d.js +6 -12
  248. package/lib/heatmap/models/grid3d.js.map +1 -1
  249. package/lib/heatmap/models/heatmap.js +62 -113
  250. package/lib/heatmap/models/heatmap.js.map +1 -1
  251. package/lib/heatmap/models/hexagon.js +6 -11
  252. package/lib/heatmap/models/hexagon.js.map +1 -1
  253. package/lib/image/index.js +16 -14
  254. package/lib/image/index.js.map +1 -1
  255. package/lib/image/models/dataImage.js +245 -0
  256. package/lib/image/models/dataImage.js.map +1 -0
  257. package/lib/image/models/image.js +14 -11
  258. package/lib/image/models/image.js.map +1 -1
  259. package/lib/image/models/index.js +4 -1
  260. package/lib/image/models/index.js.map +1 -1
  261. package/lib/line/index.js +5 -12
  262. package/lib/line/index.js.map +1 -1
  263. package/lib/line/models/arc.js +10 -15
  264. package/lib/line/models/arc.js.map +1 -1
  265. package/lib/line/models/arc_3d.js +8 -13
  266. package/lib/line/models/arc_3d.js.map +1 -1
  267. package/lib/line/models/arcmini.js +161 -0
  268. package/lib/line/models/arcmini.js.map +1 -0
  269. package/lib/line/models/earthArc_3d.js +9 -17
  270. package/lib/line/models/earthArc_3d.js.map +1 -1
  271. package/lib/line/models/great_circle.js +8 -13
  272. package/lib/line/models/great_circle.js.map +1 -1
  273. package/lib/line/models/half.js +29 -48
  274. package/lib/line/models/half.js.map +1 -1
  275. package/lib/line/models/index.js +3 -0
  276. package/lib/line/models/index.js.map +1 -1
  277. package/lib/line/models/line.js +18 -29
  278. package/lib/line/models/line.js.map +1 -1
  279. package/lib/line/models/linearline.js +24 -14
  280. package/lib/line/models/linearline.js.map +1 -1
  281. package/lib/line/models/simpleLine.js +18 -66
  282. package/lib/line/models/simpleLine.js.map +1 -1
  283. package/lib/line/models/tile.js +39 -47
  284. package/lib/line/models/tile.js.map +1 -1
  285. package/lib/line/models/wall.js +9 -13
  286. package/lib/line/models/wall.js.map +1 -1
  287. package/lib/mask/index.js +2 -12
  288. package/lib/mask/index.js.map +1 -1
  289. package/lib/mask/models/fill.js +27 -55
  290. package/lib/mask/models/fill.js.map +1 -1
  291. package/lib/plugins/DataMappingPlugin.js +8 -29
  292. package/lib/plugins/DataMappingPlugin.js.map +1 -1
  293. package/lib/plugins/DataSourcePlugin.js +4 -13
  294. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  295. package/lib/plugins/LayerModelPlugin.js +7 -33
  296. package/lib/plugins/LayerModelPlugin.js.map +1 -1
  297. package/lib/plugins/PixelPickingPlugin.js +13 -16
  298. package/lib/plugins/PixelPickingPlugin.js.map +1 -1
  299. package/lib/point/index.js +8 -15
  300. package/lib/point/index.js.map +1 -1
  301. package/lib/point/models/earthExtrude.js +15 -16
  302. package/lib/point/models/earthExtrude.js.map +1 -1
  303. package/lib/point/models/earthFill.js +22 -13
  304. package/lib/point/models/earthFill.js.map +1 -1
  305. package/lib/point/models/extrude.js +28 -51
  306. package/lib/point/models/extrude.js.map +1 -1
  307. package/lib/point/models/fill.js +42 -61
  308. package/lib/point/models/fill.js.map +1 -1
  309. package/lib/point/models/fillmage.js +22 -13
  310. package/lib/point/models/fillmage.js.map +1 -1
  311. package/lib/point/models/icon-font.js +196 -0
  312. package/lib/point/models/icon-font.js.map +1 -0
  313. package/lib/point/models/image.js +6 -11
  314. package/lib/point/models/image.js.map +1 -1
  315. package/lib/point/models/index.js +3 -0
  316. package/lib/point/models/index.js.map +1 -1
  317. package/lib/point/models/normal.js +6 -11
  318. package/lib/point/models/normal.js.map +1 -1
  319. package/lib/point/models/radar.js +22 -13
  320. package/lib/point/models/radar.js.map +1 -1
  321. package/lib/point/models/simplePoint.js +6 -11
  322. package/lib/point/models/simplePoint.js.map +1 -1
  323. package/lib/point/models/text.js +78 -110
  324. package/lib/point/models/text.js.map +1 -1
  325. package/lib/point/models/tile.js +25 -22
  326. package/lib/point/models/tile.js.map +1 -1
  327. package/lib/polygon/index.js +2 -12
  328. package/lib/polygon/index.js.map +1 -1
  329. package/lib/polygon/models/extrude.js +5 -10
  330. package/lib/polygon/models/extrude.js.map +1 -1
  331. package/lib/polygon/models/fill.js +11 -25
  332. package/lib/polygon/models/fill.js.map +1 -1
  333. package/lib/polygon/models/ocean.js +6 -12
  334. package/lib/polygon/models/ocean.js.map +1 -1
  335. package/lib/polygon/models/tile.js +27 -17
  336. package/lib/polygon/models/tile.js.map +1 -1
  337. package/lib/polygon/models/water.js +6 -12
  338. package/lib/polygon/models/water.js.map +1 -1
  339. package/lib/raster/image.js +2 -0
  340. package/lib/raster/image.js.map +1 -0
  341. package/lib/raster/index.js +2 -12
  342. package/lib/raster/index.js.map +1 -1
  343. package/lib/raster/models/raster.js +7 -11
  344. package/lib/raster/models/raster.js.map +1 -1
  345. package/lib/raster/raster2d.js +172 -0
  346. package/lib/raster/raster2d.js.map +1 -0
  347. package/lib/tile/manager/tileLayerManager.js +21 -4
  348. package/lib/tile/manager/tileLayerManager.js.map +1 -1
  349. package/lib/tile/manager/tilePickerManager.js +0 -1
  350. package/lib/tile/manager/tilePickerManager.js.map +1 -1
  351. package/lib/tile/tileFactory/base.js.map +1 -1
  352. package/lib/tile/tileFactory/point.js.map +1 -1
  353. package/lib/tile/tileFactory/rasterDataLayer.js +2 -12
  354. package/lib/tile/tileFactory/rasterDataLayer.js.map +1 -1
  355. package/lib/tile/tileFactory/vectorLayer.js +2 -12
  356. package/lib/tile/tileFactory/vectorLayer.js.map +1 -1
  357. package/lib/utils/extrude_polyline.js +6 -140
  358. package/lib/utils/extrude_polyline.js.map +1 -1
  359. package/lib/utils/geo.js +65 -0
  360. package/lib/utils/geo.js.map +1 -0
  361. package/lib/utils/simpleLine.js +117 -0
  362. package/lib/utils/simpleLine.js.map +1 -0
  363. package/lib/wind/index.js +2 -12
  364. package/lib/wind/index.js.map +1 -1
  365. package/lib/wind/models/wind.js +33 -36
  366. package/lib/wind/models/wind.js.map +1 -1
  367. package/package.json +8 -9
@@ -1,10 +1,12 @@
1
1
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
2
  import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
3
- import { calculateCentroid, calculatePointsCenterAndRadius, lngLatToMeters } from '@antv/l7-utils';
3
+ import { lngLatToMeters } from '@antv/l7-utils';
4
4
  import earcut from 'earcut';
5
5
  import { vec3 } from 'gl-matrix';
6
6
  import { EARTH_RADIUS, EARTH_RADIUS_OUTER, EARTH_SEGMENTS, lglt2xyz, primitiveSphere } from '../earth/utils';
7
7
  import ExtrudePolyline from '../utils/extrude_polyline';
8
+ import { calculateCentroid, calculatePointsCenterAndRadius } from '../utils/geo';
9
+ import SimpleLine from '../utils/simpleLine';
8
10
  import extrudePolygon, { extrude_PolygonNormal, fillPolygon } from './shape/extrude';
9
11
  import { geometryShape } from './shape/Path';
10
12
  var GeometryCache = {};
@@ -97,49 +99,21 @@ export function LineTriangulation(feature) {
97
99
  };
98
100
  }
99
101
  export function SimpleLineTriangulation(feature) {
100
- var coordinates = feature.coordinates,
101
- originCoordinates = feature.originCoordinates,
102
- version = feature.version;
103
- var line = new ExtrudePolyline({
104
- dash: true,
105
- join: 'bevel'
106
- });
107
-
108
- if (version === 'GAODE2.x') {
109
- var path1 = coordinates;
110
-
111
- if (!Array.isArray(path1[0][0])) {
112
- path1 = [coordinates];
113
- }
114
-
115
- var path2 = originCoordinates;
116
-
117
- if (!Array.isArray(path2[0][0])) {
118
- path2 = [originCoordinates];
119
- }
120
-
121
- for (var i = 0; i < path1.length; i++) {
122
- var item1 = path1[i];
123
- var item2 = path2[i];
124
- line.simpleExtrude_gaode2(item1, item2);
125
- }
126
- } else {
127
- var path = coordinates;
128
-
129
- if (path[0] && !Array.isArray(path[0][0])) {
130
- path = [coordinates];
131
- }
102
+ var coordinates = feature.coordinates;
103
+ var line = new SimpleLine();
104
+ var path = coordinates;
132
105
 
133
- path.forEach(function (item) {
134
- line.simpleExtrude(item);
135
- });
106
+ if (path[0] && !Array.isArray(path[0][0])) {
107
+ path = [coordinates];
136
108
  }
137
109
 
110
+ path.forEach(function (item) {
111
+ line.simpleExtrude(item);
112
+ });
138
113
  var linebuffer = line.complex;
139
114
  return {
140
115
  vertices: linebuffer.positions,
141
116
  indices: linebuffer.indices,
142
- normals: linebuffer.normals,
143
117
  size: 6
144
118
  };
145
119
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/core/triangulation.ts"],"names":["calculateCentroid","calculatePointsCenterAndRadius","lngLatToMeters","earcut","vec3","EARTH_RADIUS","EARTH_RADIUS_OUTER","EARTH_SEGMENTS","lglt2xyz","primitiveSphere","ExtrudePolyline","extrudePolygon","extrude_PolygonNormal","fillPolygon","geometryShape","GeometryCache","PointFillTriangulation","feature","coordinates","vertices","indices","size","length","GlobelPointFillTriangulation","xyz","PointExtrudeTriangulation","shape","getGeometry","positions","index","normals","PointImageTriangulation","LineTriangulation","originCoordinates","version","line","dash","join","path1","Array","isArray","path2","i","item1","item2","extrude_gaode2","path","forEach","item","extrude","linebuffer","complex","indexes","SimpleLineTriangulation","simpleExtrude_gaode2","simpleExtrude","polygonTriangulation","flattengeo","flatten","dimensions","holes","polygonTriangulationWithCenter","getVerticesWithCenter","verticesWithCenter","center","radius","lng","lat","push","PolygonExtrudeTriangulation","HeatmapGridTriangulation","getHeatmapGeometry","RasterImageTriangulation","indexs","LineArcTriangulation","segmentNumber","segNum","indexArray","map","v","HeatmapTriangulation","dir","addDir","dir1","dir2","dir3","needFlat","cylinder","geometry","computeVertexNormals","dim","Float32Array","vA","vB","vC","cb","create","ab","normal","li","p1","p2","p3","ax","ay","pA","fromValues","bx","by","pB","cx","cy","pC","sub","cross","normalizeNormals","newNormal","normalize","set","checkIsClosed","points","shape3d","circle","indexOf","dirX","dirY","x","y","earthTriangulation","earthmesh","segments","positionsArr","indicesArr","normalArr","earthOuterTriangulation"],"mappings":";;AACA,SAEEA,iBAFF,EAGEC,8BAHF,EAIEC,cAJF,QAKO,gBALP;AAMA,OAAOC,MAAP,MAAmB,QAAnB;AAEA,SAAeC,IAAf,QAA2B,WAA3B;AACA,SACEC,YADF,EAEEC,kBAFF,EAGEC,cAHF,EAIEC,QAJF,EAKEC,eALF,QAMO,gBANP;AAOA,OAAOC,eAAP,MAA4B,2BAA5B;AACA,OAAOC,cAAP,IACEC,qBADF,EAEEC,WAFF,QAIO,iBAJP;AAKA,SACEC,aADF,QAKO,cALP;AAUA,IAAMC,aAA6B,GAAG,EAAtC;AAOA,OAAO,SAASC,sBAAT,CAAgCC,OAAhC,EAAyD;AAC9D,MAAMC,WAAW,GAAGlB,iBAAiB,CAACiB,OAAO,CAACC,WAAT,CAArC;AACA,SAAO;AACLC,IAAAA,QAAQ,+BAAMD,WAAN,sBAAsBA,WAAtB,sBAAsCA,WAAtC,sBAAsDA,WAAtD,EADH;AAELE,IAAAA,OAAO,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAFJ;AAGLC,IAAAA,IAAI,EAAEH,WAAW,CAACI;AAHb,GAAP;AAKD;AAKD,OAAO,SAASC,4BAAT,CAAsCN,OAAtC,EAA+D;AACpE,MAAMC,WAAW,GAAGlB,iBAAiB,CAACiB,OAAO,CAACC,WAAT,CAArC;AACA,MAAMM,GAAG,GAAGhB,QAAQ,CAACU,WAAD,CAApB;AACA,SAAO;AACLC,IAAAA,QAAQ,+BAAMK,GAAN,sBAAcA,GAAd,sBAAsBA,GAAtB,sBAA8BA,GAA9B,EADH;AAELJ,IAAAA,OAAO,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAFJ;AAGLC,IAAAA,IAAI,EAAEG,GAAG,CAACF;AAHL,GAAP;AAKD;AAMD,OAAO,SAASG,yBAAT,CAAmCR,OAAnC,EAA4D;AACjE,MAAQS,KAAR,GAAkBT,OAAlB,CAAQS,KAAR;;AACA,qBAAsCC,WAAW,CAC/CD,KAD+C,EAE/C,KAF+C,CAAjD;AAAA,MAAQE,SAAR,gBAAQA,SAAR;AAAA,MAAmBC,KAAnB,gBAAmBA,KAAnB;AAAA,MAA0BC,OAA1B,gBAA0BA,OAA1B;;AAIA,SAAO;AACLX,IAAAA,QAAQ,EAAES,SADL;AAELR,IAAAA,OAAO,EAAES,KAFJ;AAGLC,IAAAA,OAAO,EAAPA,OAHK;AAILT,IAAAA,IAAI,EAAE;AAJD,GAAP;AAMD;AAMD,OAAO,SAASU,uBAAT,CAAiCd,OAAjC,EAA0D;AAC/D,MAAMC,WAAW,GAAGlB,iBAAiB,CAACiB,OAAO,CAACC,WAAT,CAArC;AACA,SAAO;AACLC,IAAAA,QAAQ,qBAAMD,WAAN,CADH;AAELE,IAAAA,OAAO,EAAE,CAAC,CAAD,CAFJ;AAGLC,IAAAA,IAAI,EAAEH,WAAW,CAACI;AAHb,GAAP;AAKD;AAMD,OAAO,SAASU,iBAAT,CAA2Bf,OAA3B,EAAoD;AACzD,MAAQC,WAAR,GAAoDD,OAApD,CAAQC,WAAR;AAAA,MAAqBe,iBAArB,GAAoDhB,OAApD,CAAqBgB,iBAArB;AAAA,MAAwCC,OAAxC,GAAoDjB,OAApD,CAAwCiB,OAAxC;AAMA,MAAMC,IAAI,GAAG,IAAIzB,eAAJ,CAAoB;AAC/B0B,IAAAA,IAAI,EAAE,IADyB;AAE/BC,IAAAA,IAAI,EAAE;AAFyB,GAApB,CAAb;;AAKA,MAAIH,OAAO,KAAK,UAAhB,EAA4B;AAE1B,QAAII,KAAK,GAAGpB,WAAZ;;AACA,QAAI,CAACqB,KAAK,CAACC,OAAN,CAAcF,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,CAAd,CAAL,EAAiC;AAC/BA,MAAAA,KAAK,GAAG,CAACpB,WAAD,CAAR;AACD;;AACD,QAAIuB,KAAK,GAAGR,iBAAZ;;AACA,QAAI,CAACM,KAAK,CAACC,OAAN,CAAcC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,CAAd,CAAL,EAAiC;AAC/BA,MAAAA,KAAK,GAAG,CAACR,iBAAD,CAAR;AACD;;AAED,SAAK,IAAIS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,KAAK,CAAChB,MAA1B,EAAkCoB,CAAC,EAAnC,EAAuC;AAErC,UAAMC,KAAK,GAAGL,KAAK,CAACI,CAAD,CAAnB;AACA,UAAME,KAAK,GAAGH,KAAK,CAACC,CAAD,CAAnB;AACAP,MAAAA,IAAI,CAACU,cAAL,CAAoBF,KAApB,EAAyCC,KAAzC;AACD;AACF,GAjBD,MAiBO;AAEL,QAAIE,IAAI,GAAG5B,WAAX;;AACA,QAAI4B,IAAI,CAAC,CAAD,CAAJ,IAAW,CAACP,KAAK,CAACC,OAAN,CAAcM,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAd,CAAhB,EAA2C;AACzCA,MAAAA,IAAI,GAAG,CAAC5B,WAAD,CAAP;AACD;;AACD4B,IAAAA,IAAI,CAACC,OAAL,CAAa,UAACC,IAAD,EAAe;AAC1Bb,MAAAA,IAAI,CAACc,OAAL,CAAaD,IAAb;AACD,KAFD;AAGD;;AAED,MAAME,UAAU,GAAGf,IAAI,CAACgB,OAAxB;AACA,SAAO;AACLhC,IAAAA,QAAQ,EAAE+B,UAAU,CAACtB,SADhB;AAELR,IAAAA,OAAO,EAAE8B,UAAU,CAAC9B,OAFf;AAGLU,IAAAA,OAAO,EAAEoB,UAAU,CAACpB,OAHf;AAILsB,IAAAA,OAAO,EAAEF,UAAU,CAACE,OAJf;AAKL/B,IAAAA,IAAI,EAAE;AALD,GAAP;AAOD;AAED,OAAO,SAASgC,uBAAT,CAAiCpC,OAAjC,EAA0D;AAC/D,MAAQC,WAAR,GAAoDD,OAApD,CAAQC,WAAR;AAAA,MAAqBe,iBAArB,GAAoDhB,OAApD,CAAqBgB,iBAArB;AAAA,MAAwCC,OAAxC,GAAoDjB,OAApD,CAAwCiB,OAAxC;AAEA,MAAMC,IAAI,GAAG,IAAIzB,eAAJ,CAAoB;AAC/B0B,IAAAA,IAAI,EAAE,IADyB;AAE/BC,IAAAA,IAAI,EAAE;AAFyB,GAApB,CAAb;;AAKA,MAAIH,OAAO,KAAK,UAAhB,EAA4B;AAE1B,QAAII,KAAK,GAAGpB,WAAZ;;AACA,QAAI,CAACqB,KAAK,CAACC,OAAN,CAAcF,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,CAAd,CAAL,EAAiC;AAC/BA,MAAAA,KAAK,GAAG,CAACpB,WAAD,CAAR;AACD;;AACD,QAAIuB,KAAK,GAAGR,iBAAZ;;AACA,QAAI,CAACM,KAAK,CAACC,OAAN,CAAcC,KAAK,CAAC,CAAD,CAAL,CAAS,CAAT,CAAd,CAAL,EAAiC;AAC/BA,MAAAA,KAAK,GAAG,CAACR,iBAAD,CAAR;AACD;;AAED,SAAK,IAAIS,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,KAAK,CAAChB,MAA1B,EAAkCoB,CAAC,EAAnC,EAAuC;AAErC,UAAMC,KAAK,GAAGL,KAAK,CAACI,CAAD,CAAnB;AACA,UAAME,KAAK,GAAGH,KAAK,CAACC,CAAD,CAAnB;AACAP,MAAAA,IAAI,CAACmB,oBAAL,CAA0BX,KAA1B,EAA+CC,KAA/C;AACD;AACF,GAjBD,MAiBO;AAEL,QAAIE,IAAI,GAAG5B,WAAX;;AACA,QAAI4B,IAAI,CAAC,CAAD,CAAJ,IAAW,CAACP,KAAK,CAACC,OAAN,CAAcM,IAAI,CAAC,CAAD,CAAJ,CAAQ,CAAR,CAAd,CAAhB,EAA2C;AACzCA,MAAAA,IAAI,GAAG,CAAC5B,WAAD,CAAP;AACD;;AACD4B,IAAAA,IAAI,CAACC,OAAL,CAAa,UAACC,IAAD,EAAe;AAC1Bb,MAAAA,IAAI,CAACoB,aAAL,CAAmBP,IAAnB;AACD,KAFD;AAGD;;AAED,MAAME,UAAU,GAAGf,IAAI,CAACgB,OAAxB;AACA,SAAO;AACLhC,IAAAA,QAAQ,EAAE+B,UAAU,CAACtB,SADhB;AAELR,IAAAA,OAAO,EAAE8B,UAAU,CAAC9B,OAFf;AAGLU,IAAAA,OAAO,EAAEoB,UAAU,CAACpB,OAHf;AAILT,IAAAA,IAAI,EAAE;AAJD,GAAP;AAMD;AAED,OAAO,SAASmC,oBAAT,CAA8BvC,OAA9B,EAAuD;AAC5D,MAAQC,WAAR,GAAwBD,OAAxB,CAAQC,WAAR;AACA,MAAMuC,UAAU,GAAGtD,MAAM,CAACuD,OAAP,CAAexC,WAAf,CAAnB;AACA,MAAQC,QAAR,GAAwCsC,UAAxC,CAAQtC,QAAR;AAAA,MAAkBwC,UAAlB,GAAwCF,UAAxC,CAAkBE,UAAlB;AAAA,MAA8BC,KAA9B,GAAwCH,UAAxC,CAA8BG,KAA9B;AACA,SAAO;AACLxC,IAAAA,OAAO,EAAEjB,MAAM,CAACgB,QAAD,EAAWyC,KAAX,EAAkBD,UAAlB,CADV;AAELxC,IAAAA,QAAQ,EAARA,QAFK;AAGLE,IAAAA,IAAI,EAAEsC;AAHD,GAAP;AAKD;AAGD,OAAO,SAASE,8BAAT,CAAwC5C,OAAxC,EAAiE;AACtE,MAAQC,WAAR,GAAwBD,OAAxB,CAAQC,WAAR;AACA,MAAMuC,UAAU,GAAGtD,MAAM,CAACuD,OAAP,CAAexC,WAAf,CAAnB;AACA,MAAQC,QAAR,GAAwCsC,UAAxC,CAAQtC,QAAR;AAAA,MAAkBwC,UAAlB,GAAwCF,UAAxC,CAAkBE,UAAlB;AAAA,MAA8BC,KAA9B,GAAwCH,UAAxC,CAA8BG,KAA9B;AAEA,SAAO;AACLxC,IAAAA,OAAO,EAAEjB,MAAM,CAACgB,QAAD,EAAWyC,KAAX,EAAkBD,UAAlB,CADV;AAELxC,IAAAA,QAAQ,EAAE2C,qBAAqB,CAAC3C,QAAD,CAF1B;AAGLE,IAAAA,IAAI,EAAEsC,UAAU,GAAG;AAHd,GAAP;AAKD;;AAED,SAASG,qBAAT,CAA+B3C,QAA/B,EAAmD;AACjD,MAAM4C,kBAAkB,GAAG,EAA3B;;AACA,8BAA2B9D,8BAA8B,CAACkB,QAAD,CAAzD;AAAA,MAAQ6C,MAAR,yBAAQA,MAAR;AAAA,MAAgBC,MAAhB,yBAAgBA,MAAhB;;AACA,OAAK,IAAIvB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGvB,QAAQ,CAACG,MAA7B,EAAqCoB,CAAC,IAAI,CAA1C,EAA6C;AAC3C,QAAMwB,GAAG,GAAG/C,QAAQ,CAACuB,CAAD,CAApB;AACA,QAAMyB,GAAG,GAAGhD,QAAQ,CAACuB,CAAC,GAAG,CAAL,CAApB;AACAqB,IAAAA,kBAAkB,CAACK,IAAnB,OAAAL,kBAAkB,GAAMG,GAAN,EAAWC,GAAX,EAAgB,CAAhB,4BAAsBH,MAAtB,IAA8BC,MAA9B,GAAlB;AACD;;AACD,SAAOF,kBAAP;AACD;;AAED,OAAO,SAASM,2BAAT,CAAqCpD,OAArC,EAA8D;AACnE,MAAMC,WAAW,GAAGD,OAAO,CAACC,WAA5B;;AACA,8BAAsCN,qBAAqB,CACzDM,WADyD,EAEzD,IAFyD,CAA3D;AAAA,MAAQU,SAAR,yBAAQA,SAAR;AAAA,MAAmBC,KAAnB,yBAAmBA,KAAnB;AAAA,MAA0BC,OAA1B,yBAA0BA,OAA1B;;AAIA,SAAO;AACLX,IAAAA,QAAQ,EAAES,SADL;AAELR,IAAAA,OAAO,EAAES,KAFJ;AAGLC,IAAAA,OAAO,EAAPA,OAHK;AAILT,IAAAA,IAAI,EAAE;AAJD,GAAP;AAMD;AAED,OAAO,SAASiD,wBAAT,CAAkCrD,OAAlC,EAA2D;AAChE,MAAQS,KAAR,GAAkBT,OAAlB,CAAQS,KAAR;;AACA,4BAA6B6C,kBAAkB,CAAC7C,KAAD,CAA/C;AAAA,MAAQE,SAAR,uBAAQA,SAAR;AAAA,MAAmBC,KAAnB,uBAAmBA,KAAnB;;AACA,SAAO;AACLV,IAAAA,QAAQ,EAAES,SADL;AAELR,IAAAA,OAAO,EAAES,KAFJ;AAGLR,IAAAA,IAAI,EAAE;AAHD,GAAP;AAKD;AAMD,OAAO,SAASmD,wBAAT,CAAkCvD,OAAlC,EAA2D;AAChE,MAAMC,WAAW,GAAGD,OAAO,CAACC,WAA5B;AAEA,MAAMU,SAAmB,gCACpBV,WAAW,CAAC,CAAD,CADS,IAEvB,CAFuB,EAGvB,CAHuB,EAIvB,CAJuB,EAKvBA,WAAW,CAAC,CAAD,CAAX,CAAe,CAAf,CALuB,EAMvBA,WAAW,CAAC,CAAD,CAAX,CAAe,CAAf,CANuB,EAOvB,CAPuB,EAQvB,CARuB,EASvB,CATuB,sBAUpBA,WAAW,CAAC,CAAD,CAVS,IAWvB,CAXuB,EAYvB,CAZuB,EAavB,CAbuB,sBAcpBA,WAAW,CAAC,CAAD,CAdS,IAevB,CAfuB,EAgBvB,CAhBuB,EAiBvB,CAjBuB,sBAkBpBA,WAAW,CAAC,CAAD,CAlBS,IAmBvB,CAnBuB,EAoBvB,CApBuB,EAqBvB,CArBuB,EAsBvBA,WAAW,CAAC,CAAD,CAAX,CAAe,CAAf,CAtBuB,EAuBvBA,WAAW,CAAC,CAAD,CAAX,CAAe,CAAf,CAvBuB,EAwBvB,CAxBuB,EAyBvB,CAzBuB,EA0BvB,CA1BuB,EAAzB;AA4BA,MAAMuD,MAAM,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAf;AACA,SAAO;AACLtD,IAAAA,QAAQ,EAAES,SADL;AAELR,IAAAA,OAAO,EAAEqD,MAFJ;AAGLpD,IAAAA,IAAI,EAAE;AAHD,GAAP;AAKD;AAOD,OAAO,SAASqD,oBAAT,CACLzD,OADK,EAEL0D,aAFK,EAGL;AACA,MAAMC,MAAM,GAAGD,aAAa,GAAGA,aAAH,GAAmB,EAA/C;AACA,MAAMzD,WAAW,GAAGD,OAAO,CAACC,WAA5B;AACA,MAAMU,SAAS,GAAG,EAAlB;AACA,MAAMiD,UAAU,GAAG,EAAnB;;AAJA,6BAKSnC,CALT;AAQEd,IAAAA,SAAS,CAACwC,IAAV,CACE1B,CADF,EAEE,CAFF,EAGEA,CAHF,EAIExB,WAAW,CAAC,CAAD,CAAX,CAAe,CAAf,CAJF,EAKEA,WAAW,CAAC,CAAD,CAAX,CAAe,CAAf,CALF,EAMEA,WAAW,CAAC,CAAD,CAAX,CAAe,CAAf,CANF,EAOEA,WAAW,CAAC,CAAD,CAAX,CAAe,CAAf,CAPF,EAQEwB,CARF,EASE,CAAC,CATH,EAUEA,CAVF,EAWExB,WAAW,CAAC,CAAD,CAAX,CAAe,CAAf,CAXF,EAYEA,WAAW,CAAC,CAAD,CAAX,CAAe,CAAf,CAZF,EAaEA,WAAW,CAAC,CAAD,CAAX,CAAe,CAAf,CAbF,EAcEA,WAAW,CAAC,CAAD,CAAX,CAAe,CAAf,CAdF;;AAiBA,QAAIwB,CAAC,KAAKkC,MAAM,GAAG,CAAnB,EAAsB;AACpBC,MAAAA,UAAU,CAACT,IAAX,OAAAS,UAAU,qBACL,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,EAAmBC,GAAnB,CAAuB,UAACC,CAAD,EAAO;AAC/B,eAAOrC,CAAC,GAAG,CAAJ,GAAQqC,CAAf;AACD,OAFE,CADK,EAAV;AAKD;AA/BH;;AAKA,OAAK,IAAIrC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkC,MAApB,EAA4BlC,CAAC,EAA7B,EAAiC;AAAA,UAAxBA,CAAwB;AA2BhC;;AACD,SAAO;AACLvB,IAAAA,QAAQ,EAAES,SADL;AAELR,IAAAA,OAAO,EAAEyD,UAFJ;AAGLxD,IAAAA,IAAI,EAAE;AAHD,GAAP;AAKD;AAOD,OAAO,SAAS2D,oBAAT,CAA8B/D,OAA9B,EAAuD;AAC5D,MAAMC,WAAW,GAAGD,OAAO,CAACC,WAA5B;;AACA,MAAIA,WAAW,CAACI,MAAZ,KAAuB,CAA3B,EAA8B;AAC5BJ,IAAAA,WAAW,CAACkD,IAAZ,CAAiB,CAAjB;AACD;;AACD,MAAM/C,IAAI,GAAGJ,OAAO,CAACI,IAArB;AACA,MAAM4D,GAAG,GAAGC,MAAM,CAAC,CAAC,CAAF,EAAK,CAAL,CAAlB;AACA,MAAMC,IAAI,GAAGD,MAAM,CAAC,CAAD,EAAI,CAAJ,CAAnB;AACA,MAAME,IAAI,GAAGF,MAAM,CAAC,CAAC,CAAF,EAAK,CAAC,CAAN,CAAnB;AACA,MAAMG,IAAI,GAAGH,MAAM,CAAC,CAAD,EAAI,CAAC,CAAL,CAAnB;AAEA,MAAMtD,SAAS,gCACVV,WADU,sBAEV+D,GAFU,sBAGV/D,WAHU,sBAIVkE,IAJU,sBAKVlE,WALU,sBAMVmE,IANU,sBAOVnE,WAPU,sBAQViE,IARU,EAAf;AAUA,MAAMN,UAAU,GAAG,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAnB;AACA,SAAO;AACL1D,IAAAA,QAAQ,EAAES,SADL;AAELR,IAAAA,OAAO,EAAEyD,UAFJ;AAGLxD,IAAAA,IAAI,EAAE;AAHD,GAAP;AAKD;;AAMD,SAASM,WAAT,CAAqBD,KAArB,EAA4E;AAAA,MAAnC4D,QAAmC,uEAAxB,KAAwB;;AAC1E,MAAIvE,aAAa,IAAIA,aAAa,CAACW,KAAD,CAAlC,EAA2C;AACzC,WAAOX,aAAa,CAACW,KAAD,CAApB;AACD;;AACD,MAAMoB,IAAI,GAAGhC,aAAa,CAACY,KAAD,CAAb,GACTZ,aAAa,CAACY,KAAD,CAAb,EADS,GAETZ,aAAa,CAACyE,QAAd,EAFJ;AAGA,MAAMC,QAAQ,GAAG5E,qBAAqB,CAAC,CAACkC,IAAD,CAAD,EAASwC,QAAT,CAAtC;AACAvE,EAAAA,aAAa,CAACW,KAAD,CAAb,GAAuB8D,QAAvB;AACA,SAAOA,QAAP;AACD;;AAED,SAASC,oBAAT,CACE7D,SADF,EAEEiD,UAFF,EAKE;AAAA,MAFAa,GAEA,uEAFc,CAEd;AAAA,MADAJ,QACA,uEADoB,KACpB;AACA,MAAMxD,OAAO,GAAG,IAAI6D,YAAJ,CAAkB/D,SAAS,CAACN,MAAV,GAAmBoE,GAApB,GAA2B,CAA5C,CAAhB;AACA,MAAIE,EAAJ;AACA,MAAIC,EAAJ;AACA,MAAIC,EAAJ;AACA,MAAMC,EAAE,GAAG3F,IAAI,CAAC4F,MAAL,EAAX;AACA,MAAMC,EAAE,GAAG7F,IAAI,CAAC4F,MAAL,EAAX;AACA,MAAME,MAAM,GAAG9F,IAAI,CAAC4F,MAAL,EAAf;;AACA,OAAK,IAAItD,CAAC,GAAG,CAAR,EAAWyD,EAAE,GAAGtB,UAAU,CAACvD,MAAhC,EAAwCoB,CAAC,GAAGyD,EAA5C,EAAgDzD,CAAC,IAAI,CAArD,EAAwD;AACtDkD,IAAAA,EAAE,GAAGf,UAAU,CAACnC,CAAC,GAAG,CAAL,CAAV,GAAoB,CAAzB;AACAmD,IAAAA,EAAE,GAAGhB,UAAU,CAACnC,CAAC,GAAG,CAAL,CAAV,GAAoB,CAAzB;AACAoD,IAAAA,EAAE,GAAGjB,UAAU,CAACnC,CAAC,GAAG,CAAL,CAAV,GAAoB,CAAzB;AACA,QAAI0D,EAAE,GAAG,CAACxE,SAAS,CAACgE,EAAD,CAAV,EAAgBhE,SAAS,CAACgE,EAAE,GAAG,CAAN,CAAzB,CAAT;AACA,QAAIS,EAAE,GAAG,CAACzE,SAAS,CAACiE,EAAD,CAAV,EAAgBjE,SAAS,CAACiE,EAAE,GAAG,CAAN,CAAzB,CAAT;AACA,QAAIS,EAAE,GAAG,CAAC1E,SAAS,CAACkE,EAAD,CAAV,EAAgBlE,SAAS,CAACkE,EAAE,GAAG,CAAN,CAAzB,CAAT;;AACA,QAAIR,QAAJ,EAAc;AACZc,MAAAA,EAAE,GAAGlG,cAAc,CAACkG,EAAD,CAAnB;AACAC,MAAAA,EAAE,GAAGnG,cAAc,CAACmG,EAAD,CAAnB;AACAC,MAAAA,EAAE,GAAGpG,cAAc,CAACoG,EAAD,CAAnB;AACD;;AACD,aAAiBF,EAAjB;AAAA;AAAA,QAAOG,EAAP;AAAA,QAAWC,EAAX;;AACA,QAAMC,EAAE,GAAGrG,IAAI,CAACsG,UAAL,CAAgBH,EAAhB,EAAoBC,EAApB,EAAwB5E,SAAS,CAACgE,EAAE,GAAG,CAAN,CAAjC,CAAX;;AACA,cAAiBS,EAAjB;AAAA;AAAA,QAAOM,EAAP;AAAA,QAAWC,EAAX;;AACA,QAAMC,EAAE,GAAGzG,IAAI,CAACsG,UAAL,CAAgBC,EAAhB,EAAoBC,EAApB,EAAwBhF,SAAS,CAACiE,EAAE,GAAG,CAAN,CAAjC,CAAX;;AACA,cAAiBS,EAAjB;AAAA;AAAA,QAAOQ,EAAP;AAAA,QAAWC,EAAX;;AACA,QAAMC,EAAE,GAAG5G,IAAI,CAACsG,UAAL,CAAgBI,EAAhB,EAAoBC,EAApB,EAAwBnF,SAAS,CAACkE,EAAE,GAAG,CAAN,CAAjC,CAAX;AACA1F,IAAAA,IAAI,CAAC6G,GAAL,CAASlB,EAAT,EAAaiB,EAAb,EAAiBH,EAAjB;AACAzG,IAAAA,IAAI,CAAC6G,GAAL,CAAShB,EAAT,EAAaQ,EAAb,EAAiBI,EAAjB;AACAzG,IAAAA,IAAI,CAAC8G,KAAL,CAAWhB,MAAX,EAAmBH,EAAnB,EAAuBE,EAAvB;AACAnE,IAAAA,OAAO,CAAC8D,EAAD,CAAP,IAAeG,EAAE,CAAC,CAAD,CAAjB;AACAjE,IAAAA,OAAO,CAAC8D,EAAE,GAAG,CAAN,CAAP,IAAmBG,EAAE,CAAC,CAAD,CAArB;AACAjE,IAAAA,OAAO,CAAC8D,EAAE,GAAG,CAAN,CAAP,IAAmBG,EAAE,CAAC,CAAD,CAArB;AACAjE,IAAAA,OAAO,CAAC+D,EAAD,CAAP,IAAeE,EAAE,CAAC,CAAD,CAAjB;AACAjE,IAAAA,OAAO,CAAC+D,EAAE,GAAG,CAAN,CAAP,IAAmBE,EAAE,CAAC,CAAD,CAArB;AACAjE,IAAAA,OAAO,CAAC+D,EAAE,GAAG,CAAN,CAAP,IAAmBE,EAAE,CAAC,CAAD,CAArB;AACAjE,IAAAA,OAAO,CAACgE,EAAD,CAAP,IAAeC,EAAE,CAAC,CAAD,CAAjB;AACAjE,IAAAA,OAAO,CAACgE,EAAE,GAAG,CAAN,CAAP,IAAmBC,EAAE,CAAC,CAAD,CAArB;AACAjE,IAAAA,OAAO,CAACgE,EAAE,GAAG,CAAN,CAAP,IAAmBC,EAAE,CAAC,CAAD,CAArB;AACD;;AACDoB,EAAAA,gBAAgB,CAACrF,OAAD,CAAhB;AACA,SAAOA,OAAP;AACD;;AAED,SAASqF,gBAAT,CAA0BrF,OAA1B,EAAiD;AAC/C,OAAK,IAAIY,CAAC,GAAG,CAAR,EAAWyD,EAAE,GAAGrE,OAAO,CAACR,MAA7B,EAAqCoB,CAAC,GAAGyD,EAAzC,EAA6CzD,CAAC,IAAI,CAAlD,EAAqD;AACnD,QAAMwD,MAAM,GAAG9F,IAAI,CAACsG,UAAL,CAAgB5E,OAAO,CAACY,CAAD,CAAvB,EAA4BZ,OAAO,CAACY,CAAC,GAAG,CAAL,CAAnC,EAA4CZ,OAAO,CAACY,CAAC,GAAG,CAAL,CAAnD,CAAf;AACA,QAAM0E,SAAS,GAAGhH,IAAI,CAAC4F,MAAL,EAAlB;AACA5F,IAAAA,IAAI,CAACiH,SAAL,CAAeD,SAAf,EAA0BlB,MAA1B;AACApE,IAAAA,OAAO,CAACwF,GAAR,CAAYF,SAAZ,EAAuB1E,CAAvB;AACD;AACF;;AAED,SAAS6E,aAAT,CAAuBC,MAAvB,EAA6C;AAC3C,MAAMpB,EAAE,GAAGoB,MAAM,CAAC,CAAD,CAAN,CAAU,CAAV,CAAX;AACA,MAAMnB,EAAE,GAAGmB,MAAM,CAAC,CAAD,CAAN,CAAUA,MAAM,CAAC,CAAD,CAAN,CAAUlG,MAAV,GAAmB,CAA7B,CAAX;AACA,SAAO8E,EAAE,CAAC,CAAD,CAAF,KAAUC,EAAE,CAAC,CAAD,CAAZ,IAAmBD,EAAE,CAAC,CAAD,CAAF,KAAUC,EAAE,CAAC,CAAD,CAAtC;AACD;;AAED,SAAS9B,kBAAT,CAA4B7C,KAA5B,EAA+E;AAC7E,MAAM+F,OAAO,GAAG,CACd,UADc,EAEd,gBAFc,EAGd,eAHc,EAId,cAJc,CAAhB;AAMA,MAAM3E,IAAI,GAAGhC,aAAa,CAACY,KAAD,CAAb,GACTZ,aAAa,CAACY,KAAD,CAAb,EADS,GAETZ,aAAa,CAAC4G,MAAd,EAFJ;AAGA,MAAMlC,QAAQ,GACZiC,OAAO,CAACE,OAAR,CAAgBjG,KAAhB,MAA2B,CAAC,CAA5B,GACIb,WAAW,CAAC,CAACiC,IAAD,CAAD,CADf,GAEInC,cAAc,CAAC,CAACmC,IAAD,CAAD,CAHpB;AAKA,SAAO0C,QAAP;AACD;;AAED,SAASN,MAAT,CAAgB0C,IAAhB,EAA8BC,IAA9B,EAA4C;AAC1C,MAAMC,CAAC,GAAG,CAACF,IAAI,GAAG,CAAR,IAAa,CAAvB;AACA,MAAMG,CAAC,GAAG,CAACF,IAAI,GAAG,CAAR,IAAa,CAAvB;AACA,SAAO,CAACC,CAAD,EAAIC,CAAJ,CAAP;AACD;;AAMD,OAAO,SAASC,kBAAT,GAA8B;AACnC,MAAMC,SAAS,GAAGxH,eAAe,CAACJ,YAAD,EAAe;AAAE6H,IAAAA,QAAQ,EAAE3H;AAAZ,GAAf,CAAjC;AACA,MAAQ4H,YAAR,GAAgDF,SAAhD,CAAQE,YAAR;AAAA,MAAsBC,UAAtB,GAAgDH,SAAhD,CAAsBG,UAAtB;AAAA,MAAkCC,SAAlC,GAAgDJ,SAAhD,CAAkCI,SAAlC;AACA,SAAO;AACLlH,IAAAA,QAAQ,EAAEgH,YADL;AAEL/G,IAAAA,OAAO,EAAEgH,UAFJ;AAGL/G,IAAAA,IAAI,EAAE,CAHD;AAILS,IAAAA,OAAO,EAAEuG;AAJJ,GAAP;AAMD;AAED,OAAO,SAASC,uBAAT,GAAmC;AACxC,MAAML,SAAS,GAAGxH,eAAe,CAACJ,YAAY,GAAGC,kBAAhB,EAAoC;AACnE4H,IAAAA,QAAQ,EAAE3H;AADyD,GAApC,CAAjC;AAGA,MAAQ4H,YAAR,GAAgDF,SAAhD,CAAQE,YAAR;AAAA,MAAsBC,UAAtB,GAAgDH,SAAhD,CAAsBG,UAAtB;AAAA,MAAkCC,SAAlC,GAAgDJ,SAAhD,CAAkCI,SAAlC;AACA,SAAO;AACLlH,IAAAA,QAAQ,EAAEgH,YADL;AAEL/G,IAAAA,OAAO,EAAEgH,UAFJ;AAGL/G,IAAAA,IAAI,EAAE,CAHD;AAILS,IAAAA,OAAO,EAAEuG;AAJJ,GAAP;AAMD","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport {\n aProjectFlat,\n calculateCentroid,\n calculatePointsCenterAndRadius,\n lngLatToMeters,\n} from '@antv/l7-utils';\nimport earcut from 'earcut';\n// @ts-ignore\nimport { mat4, vec3 } from 'gl-matrix';\nimport {\n EARTH_RADIUS,\n EARTH_RADIUS_OUTER,\n EARTH_SEGMENTS,\n lglt2xyz,\n primitiveSphere,\n} from '../earth/utils';\nimport ExtrudePolyline from '../utils/extrude_polyline';\nimport extrudePolygon, {\n extrude_PolygonNormal,\n fillPolygon,\n IExtrudeGeomety,\n} from './shape/extrude';\nimport {\n geometryShape,\n IPosition,\n ShapeType2D,\n ShapeType3D,\n} from './shape/Path';\ntype IShape = ShapeType2D & ShapeType3D;\ninterface IGeometryCache {\n [key: string]: IExtrudeGeomety;\n}\nconst GeometryCache: IGeometryCache = {};\n\n/**\n * 计算2D 填充点图顶点\n * @param feature 映射feature\n */\n\nexport function PointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates, ...coordinates, ...coordinates, ...coordinates],\n indices: [0, 1, 2, 2, 3, 0],\n size: coordinates.length,\n };\n}\n/**\n * 计算2D 填充点图顶点 (地球模式)\n * @param feature 映射feature\n */\nexport function GlobelPointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n const xyz = lglt2xyz(coordinates as [number, number]);\n return {\n vertices: [...xyz, ...xyz, ...xyz, ...xyz],\n indices: [0, 1, 2, 2, 3, 0],\n size: xyz.length,\n };\n}\n\n/**\n * 计算3D 拉伸点图\n * @param feature 映射feature\n */\nexport function PointExtrudeTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index, normals } = getGeometry(\n shape as ShapeType3D,\n false,\n );\n return {\n vertices: positions,\n indices: index,\n normals,\n size: 5,\n };\n}\n\n/**\n * 计算图片标注\n * @param feature 映射feature\n */\nexport function PointImageTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates],\n indices: [0],\n size: coordinates.length,\n };\n}\n\n/**\n * 线三角化\n * @param feature 映射feature\n */\nexport function LineTriangulation(feature: IEncodeFeature) {\n const { coordinates, originCoordinates, version } = feature;\n // let path = coordinates as number[][][] | number[][];\n // if (!Array.isArray(path[0][0])) {\n // path = [coordinates] as number[][][];\n // }\n\n const line = new ExtrudePolyline({\n dash: true,\n join: 'bevel',\n });\n\n if (version === 'GAODE2.x') {\n // 处理高德2.0几何体构建\n let path1 = coordinates as number[][][] | number[][]; // 计算位置\n if (!Array.isArray(path1[0][0])) {\n path1 = [coordinates] as number[][][];\n }\n let path2 = originCoordinates as number[][][] | number[][]; // 计算法线\n if (!Array.isArray(path2[0][0])) {\n path2 = [originCoordinates] as number[][][];\n }\n\n for (let i = 0; i < path1.length; i++) {\n // 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置\n const item1 = path1[i];\n const item2 = path2[i];\n line.extrude_gaode2(item1 as number[][], item2 as number[][]);\n }\n } else {\n // 处理非高德2.0的几何体构建\n let path = coordinates as number[][][] | number[][];\n if (path[0] && !Array.isArray(path[0][0])) {\n path = [coordinates] as number[][][];\n }\n path.forEach((item: any) => {\n line.extrude(item as number[][]);\n });\n }\n\n const linebuffer = line.complex;\n return {\n vertices: linebuffer.positions, // [ x,y,z, distance, miter,total ]\n indices: linebuffer.indices,\n normals: linebuffer.normals,\n indexes: linebuffer.indexes,\n size: 6,\n };\n}\n\nexport function SimpleLineTriangulation(feature: IEncodeFeature) {\n const { coordinates, originCoordinates, version } = feature;\n\n const line = new ExtrudePolyline({\n dash: true,\n join: 'bevel',\n });\n\n if (version === 'GAODE2.x') {\n // 处理高德2.0几何体构建\n let path1 = coordinates as number[][][] | number[][]; // 计算位置\n if (!Array.isArray(path1[0][0])) {\n path1 = [coordinates] as number[][][];\n }\n let path2 = originCoordinates as number[][][] | number[][]; // 计算法线\n if (!Array.isArray(path2[0][0])) {\n path2 = [originCoordinates] as number[][][];\n }\n\n for (let i = 0; i < path1.length; i++) {\n // 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置\n const item1 = path1[i];\n const item2 = path2[i];\n line.simpleExtrude_gaode2(item1 as number[][], item2 as number[][]);\n }\n } else {\n // 处理非高德2.0的几何体构建\n let path = coordinates as number[][][] | number[][];\n if (path[0] && !Array.isArray(path[0][0])) {\n path = [coordinates] as number[][][];\n }\n path.forEach((item: any) => {\n line.simpleExtrude(item as number[][]);\n });\n }\n\n const linebuffer = line.complex;\n return {\n vertices: linebuffer.positions, // [ x,y,z, distance, miter,total ]\n indices: linebuffer.indices,\n normals: linebuffer.normals,\n size: 6,\n };\n}\n\nexport function polygonTriangulation(feature: IEncodeFeature) {\n const { coordinates } = feature;\n const flattengeo = earcut.flatten(coordinates as number[][][]);\n const { vertices, dimensions, holes } = flattengeo;\n return {\n indices: earcut(vertices, holes, dimensions),\n vertices,\n size: dimensions,\n };\n}\n\n// TODO:构建几何图形(带有中心点和大小)\nexport function polygonTriangulationWithCenter(feature: IEncodeFeature) {\n const { coordinates } = feature;\n const flattengeo = earcut.flatten(coordinates as number[][][]);\n const { vertices, dimensions, holes } = flattengeo;\n\n return {\n indices: earcut(vertices, holes, dimensions),\n vertices: getVerticesWithCenter(vertices),\n size: dimensions + 4,\n };\n}\n\nfunction getVerticesWithCenter(vertices: number[]) {\n const verticesWithCenter = [];\n const { center, radius } = calculatePointsCenterAndRadius(vertices);\n for (let i = 0; i < vertices.length; i += 2) {\n const lng = vertices[i];\n const lat = vertices[i + 1];\n verticesWithCenter.push(lng, lat, 0, ...center, radius);\n }\n return verticesWithCenter;\n}\n\nexport function PolygonExtrudeTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[][];\n const { positions, index, normals } = extrude_PolygonNormal(\n coordinates,\n true,\n );\n return {\n vertices: positions, // [ x, y, z, uv.x,uv.y ]\n indices: index,\n normals,\n size: 5,\n };\n}\n\nexport function HeatmapGridTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index } = getHeatmapGeometry(shape as IShape);\n return {\n vertices: positions, // [ x, y, z ] 多边形顶点\n indices: index,\n size: 3,\n };\n}\n\n/**\n * 图片图层顶点构造\n * @param feature 数据\n */\nexport function RasterImageTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[];\n // [ x, y, z. uv.x, uv.y]\n const positions: number[] = [\n ...coordinates[0],\n 0,\n 0,\n 1,\n coordinates[1][0],\n coordinates[0][1],\n 0,\n 1,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n ...coordinates[0],\n 0,\n 0,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n coordinates[0][0],\n coordinates[1][1],\n 0,\n 0,\n 0,\n ];\n const indexs = [0, 1, 2, 3, 4, 5];\n return {\n vertices: positions,\n indices: indexs,\n size: 5,\n };\n}\n\n/**\n * 计算3D弧线顶点\n * @param feature 映射数据\n * @param segNum 弧线线段数\n */\nexport function LineArcTriangulation(\n feature: IEncodeFeature,\n segmentNumber?: number,\n) {\n const segNum = segmentNumber ? segmentNumber : 30;\n const coordinates = feature.coordinates as IPosition[];\n const positions = [];\n const indexArray = [];\n for (let i = 0; i < segNum; i++) {\n // 上线两个顶点\n // [ x, y, z, sx,sy, tx,ty]\n positions.push(\n i,\n 1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n i,\n -1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n );\n\n if (i !== segNum - 1) {\n indexArray.push(\n ...[0, 1, 2, 1, 3, 2].map((v) => {\n return i * 2 + v;\n }),\n );\n }\n }\n return {\n vertices: positions,\n indices: indexArray,\n size: 7,\n };\n}\n\n/**\n * 构建热力图密度图的顶点\n * @param feature\n * @returns\n */\nexport function HeatmapTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as number[];\n if (coordinates.length === 2) {\n coordinates.push(0);\n }\n const size = feature.size as number;\n const dir = addDir(-1, 1);\n const dir1 = addDir(1, 1);\n const dir2 = addDir(-1, -1);\n const dir3 = addDir(1, -1);\n // [x,y,z, dirx ,diry, weight]\n const positions = [\n ...coordinates,\n ...dir,\n ...coordinates,\n ...dir2,\n ...coordinates,\n ...dir3,\n ...coordinates,\n ...dir1,\n ];\n const indexArray = [0, 1, 2, 3, 0, 2];\n return {\n vertices: positions,\n indices: indexArray,\n size: 5,\n };\n}\n\n/**\n * 点图层3d geomerty\n * @param shape 3D形状\n */\nfunction getGeometry(shape: ShapeType3D, needFlat = false): IExtrudeGeomety {\n if (GeometryCache && GeometryCache[shape]) {\n return GeometryCache[shape];\n }\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.cylinder();\n const geometry = extrude_PolygonNormal([path], needFlat);\n GeometryCache[shape] = geometry;\n return geometry;\n}\n\nfunction computeVertexNormals(\n positions: number[],\n indexArray: number[],\n dim: number = 3,\n needFlat: boolean = false,\n) {\n const normals = new Float32Array((positions.length / dim) * 3);\n let vA: number;\n let vB: number;\n let vC: number;\n const cb = vec3.create();\n const ab = vec3.create();\n const normal = vec3.create();\n for (let i = 0, li = indexArray.length; i < li; i += 3) {\n vA = indexArray[i + 0] * 3;\n vB = indexArray[i + 1] * 3;\n vC = indexArray[i + 2] * 3;\n let p1 = [positions[vA], positions[vA + 1]];\n let p2 = [positions[vB], positions[vB + 1]];\n let p3 = [positions[vC], positions[vC + 1]];\n if (needFlat) {\n p1 = lngLatToMeters(p1);\n p2 = lngLatToMeters(p2);\n p3 = lngLatToMeters(p3);\n }\n const [ax, ay] = p1;\n const pA = vec3.fromValues(ax, ay, positions[vA + 2]);\n const [bx, by] = p2;\n const pB = vec3.fromValues(bx, by, positions[vB + 2]);\n const [cx, cy] = p3;\n const pC = vec3.fromValues(cx, cy, positions[vC + 2]);\n vec3.sub(cb, pC, pB);\n vec3.sub(ab, pA, pB);\n vec3.cross(normal, cb, ab);\n normals[vA] += cb[0];\n normals[vA + 1] += cb[1];\n normals[vA + 2] += cb[2];\n normals[vB] += cb[0];\n normals[vB + 1] += cb[1];\n normals[vB + 2] += cb[2];\n normals[vC] += cb[0];\n normals[vC + 1] += cb[1];\n normals[vC + 2] += cb[2];\n }\n normalizeNormals(normals);\n return normals;\n}\n\nfunction normalizeNormals(normals: Float32Array) {\n for (let i = 0, li = normals.length; i < li; i += 3) {\n const normal = vec3.fromValues(normals[i], normals[i + 1], normals[i + 2]);\n const newNormal = vec3.create();\n vec3.normalize(newNormal, normal);\n normals.set(newNormal, i);\n }\n}\n\nfunction checkIsClosed(points: number[][][]) {\n const p1 = points[0][0];\n const p2 = points[0][points[0].length - 1];\n return p1[0] === p2[0] && p1[1] === p2[1];\n}\n\nfunction getHeatmapGeometry(shape: ShapeType2D | ShapeType3D): IExtrudeGeomety {\n const shape3d = [\n 'cylinder',\n 'triangleColumn',\n 'hexagonColumn',\n 'squareColumn',\n ];\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.circle();\n const geometry =\n shape3d.indexOf(shape) === -1\n ? fillPolygon([path])\n : extrudePolygon([path]);\n // const geometry = fillPolygon([path]);\n return geometry;\n}\n// 热力图计算范围\nfunction addDir(dirX: number, dirY: number) {\n const x = (dirX + 1) / 2;\n const y = (dirY + 1) / 2;\n return [x, y];\n}\n\n/**\n * 构建地球三角网格\n * @returns\n */\nexport function earthTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS, { segments: EARTH_SEGMENTS });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n\nexport function earthOuterTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS + EARTH_RADIUS_OUTER, {\n segments: EARTH_SEGMENTS,\n });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n"],"file":"triangulation.js"}
1
+ {"version":3,"sources":["../../src/core/triangulation.ts"],"names":["lngLatToMeters","earcut","vec3","EARTH_RADIUS","EARTH_RADIUS_OUTER","EARTH_SEGMENTS","lglt2xyz","primitiveSphere","ExtrudePolyline","calculateCentroid","calculatePointsCenterAndRadius","SimpleLine","extrudePolygon","extrude_PolygonNormal","fillPolygon","geometryShape","GeometryCache","PointFillTriangulation","feature","coordinates","vertices","indices","size","length","GlobelPointFillTriangulation","xyz","PointExtrudeTriangulation","shape","getGeometry","positions","index","normals","PointImageTriangulation","LineTriangulation","originCoordinates","version","line","dash","join","path1","Array","isArray","path2","i","item1","item2","extrude_gaode2","path","forEach","item","extrude","linebuffer","complex","indexes","SimpleLineTriangulation","simpleExtrude","polygonTriangulation","flattengeo","flatten","dimensions","holes","polygonTriangulationWithCenter","getVerticesWithCenter","verticesWithCenter","center","radius","lng","lat","push","PolygonExtrudeTriangulation","HeatmapGridTriangulation","getHeatmapGeometry","RasterImageTriangulation","indexs","LineArcTriangulation","segmentNumber","segNum","indexArray","map","v","HeatmapTriangulation","dir","addDir","dir1","dir2","dir3","needFlat","cylinder","geometry","computeVertexNormals","dim","Float32Array","vA","vB","vC","cb","create","ab","normal","li","p1","p2","p3","ax","ay","pA","fromValues","bx","by","pB","cx","cy","pC","sub","cross","normalizeNormals","newNormal","normalize","set","checkIsClosed","points","shape3d","circle","indexOf","dirX","dirY","x","y","earthTriangulation","earthmesh","segments","positionsArr","indicesArr","normalArr","earthOuterTriangulation"],"mappings":"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","sourcesContent":["import { IEncodeFeature } from '@antv/l7-core';\nimport { aProjectFlat, lngLatToMeters } from '@antv/l7-utils';\nimport earcut from 'earcut';\n// @ts-ignore\nimport { mat4, vec3 } from 'gl-matrix';\nimport {\n EARTH_RADIUS,\n EARTH_RADIUS_OUTER,\n EARTH_SEGMENTS,\n lglt2xyz,\n primitiveSphere,\n} from '../earth/utils';\nimport ExtrudePolyline from '../utils/extrude_polyline';\nimport {\n calculateCentroid,\n calculatePointsCenterAndRadius,\n} from '../utils/geo';\nimport SimpleLine from '../utils/simpleLine';\nimport extrudePolygon, {\n extrude_PolygonNormal,\n fillPolygon,\n IExtrudeGeomety,\n} from './shape/extrude';\nimport {\n geometryShape,\n IPosition,\n ShapeType2D,\n ShapeType3D,\n} from './shape/Path';\ntype IShape = ShapeType2D & ShapeType3D;\ninterface IGeometryCache {\n [key: string]: IExtrudeGeomety;\n}\nconst GeometryCache: IGeometryCache = {};\n\n/**\n * 计算2D 填充点图顶点\n * @param feature 映射feature\n */\n\nexport function PointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates, ...coordinates, ...coordinates, ...coordinates],\n indices: [0, 1, 2, 2, 3, 0],\n size: coordinates.length,\n };\n}\n/**\n * 计算2D 填充点图顶点 (地球模式)\n * @param feature 映射feature\n */\nexport function GlobelPointFillTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n const xyz = lglt2xyz(coordinates as [number, number]);\n return {\n vertices: [...xyz, ...xyz, ...xyz, ...xyz],\n indices: [0, 1, 2, 2, 3, 0],\n size: xyz.length,\n };\n}\n\n/**\n * 计算3D 拉伸点图\n * @param feature 映射feature\n */\nexport function PointExtrudeTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index, normals } = getGeometry(\n shape as ShapeType3D,\n false,\n );\n return {\n vertices: positions,\n indices: index,\n normals,\n size: 5,\n };\n}\n\n/**\n * 计算图片标注\n * @param feature 映射feature\n */\nexport function PointImageTriangulation(feature: IEncodeFeature) {\n const coordinates = calculateCentroid(feature.coordinates);\n return {\n vertices: [...coordinates],\n indices: [0],\n size: coordinates.length,\n };\n}\n\n/**\n * 线三角化\n * @param feature 映射feature\n */\nexport function LineTriangulation(feature: IEncodeFeature) {\n const { coordinates, originCoordinates, version } = feature;\n // let path = coordinates as number[][][] | number[][];\n // if (!Array.isArray(path[0][0])) {\n // path = [coordinates] as number[][][];\n // }\n\n const line = new ExtrudePolyline({\n dash: true,\n join: 'bevel',\n });\n\n if (version === 'GAODE2.x') {\n // 处理高德2.0几何体构建\n let path1 = coordinates as number[][][] | number[][]; // 计算位置\n if (!Array.isArray(path1[0][0])) {\n path1 = [coordinates] as number[][][];\n }\n let path2 = originCoordinates as number[][][] | number[][]; // 计算法线\n if (!Array.isArray(path2[0][0])) {\n path2 = [originCoordinates] as number[][][];\n }\n\n for (let i = 0; i < path1.length; i++) {\n // 高德2.0在计算线时,需要使用经纬度计算发现,使用 customCoords.lnglatToCoords 计算的数据来计算顶点的位置\n const item1 = path1[i];\n const item2 = path2[i];\n line.extrude_gaode2(item1 as number[][], item2 as number[][]);\n }\n } else {\n // 处理非高德2.0的几何体构建\n let path = coordinates as number[][][] | number[][];\n if (path[0] && !Array.isArray(path[0][0])) {\n path = [coordinates] as number[][][];\n }\n path.forEach((item: any) => {\n line.extrude(item as number[][]);\n });\n }\n\n const linebuffer = line.complex;\n return {\n vertices: linebuffer.positions, // [ x,y,z, distance, miter,total ]\n indices: linebuffer.indices,\n normals: linebuffer.normals,\n indexes: linebuffer.indexes,\n size: 6,\n };\n}\n\nexport function SimpleLineTriangulation(feature: IEncodeFeature) {\n const { coordinates } = feature;\n\n const line = new SimpleLine();\n let path = coordinates as number[][][] | number[][];\n if (path[0] && !Array.isArray(path[0][0])) {\n path = [coordinates] as number[][][];\n }\n path.forEach((item: any) => {\n line.simpleExtrude(item as number[][]);\n });\n\n const linebuffer = line.complex;\n return {\n vertices: linebuffer.positions, // [ x,y,z, distance, miter, total ]\n indices: linebuffer.indices,\n size: 6,\n };\n}\n\nexport function polygonTriangulation(feature: IEncodeFeature) {\n const { coordinates } = feature;\n const flattengeo = earcut.flatten(coordinates as number[][][]);\n const { vertices, dimensions, holes } = flattengeo;\n return {\n indices: earcut(vertices, holes, dimensions),\n vertices,\n size: dimensions,\n };\n}\n\n// TODO:构建几何图形(带有中心点和大小)\nexport function polygonTriangulationWithCenter(feature: IEncodeFeature) {\n const { coordinates } = feature;\n const flattengeo = earcut.flatten(coordinates as number[][][]);\n const { vertices, dimensions, holes } = flattengeo;\n\n return {\n indices: earcut(vertices, holes, dimensions),\n vertices: getVerticesWithCenter(vertices),\n size: dimensions + 4,\n };\n}\n\nfunction getVerticesWithCenter(vertices: number[]) {\n const verticesWithCenter = [];\n const { center, radius } = calculatePointsCenterAndRadius(vertices);\n for (let i = 0; i < vertices.length; i += 2) {\n const lng = vertices[i];\n const lat = vertices[i + 1];\n verticesWithCenter.push(lng, lat, 0, ...center, radius);\n }\n return verticesWithCenter;\n}\n\nexport function PolygonExtrudeTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[][];\n const { positions, index, normals } = extrude_PolygonNormal(\n coordinates,\n true,\n );\n return {\n vertices: positions, // [ x, y, z, uv.x,uv.y ]\n indices: index,\n normals,\n size: 5,\n };\n}\n\nexport function HeatmapGridTriangulation(feature: IEncodeFeature) {\n const { shape } = feature;\n const { positions, index } = getHeatmapGeometry(shape as IShape);\n return {\n vertices: positions, // [ x, y, z ] 多边形顶点\n indices: index,\n size: 3,\n };\n}\n\n/**\n * 图片图层顶点构造\n * @param feature 数据\n */\nexport function RasterImageTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as IPosition[];\n // [ x, y, z. uv.x, uv.y]\n const positions: number[] = [\n ...coordinates[0],\n 0,\n 0,\n 1,\n coordinates[1][0],\n coordinates[0][1],\n 0,\n 1,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n ...coordinates[0],\n 0,\n 0,\n 1,\n ...coordinates[1],\n 0,\n 1,\n 0,\n coordinates[0][0],\n coordinates[1][1],\n 0,\n 0,\n 0,\n ];\n const indexs = [0, 1, 2, 3, 4, 5];\n return {\n vertices: positions,\n indices: indexs,\n size: 5,\n };\n}\n\n/**\n * 计算3D弧线顶点\n * @param feature 映射数据\n * @param segNum 弧线线段数\n */\nexport function LineArcTriangulation(\n feature: IEncodeFeature,\n segmentNumber?: number,\n) {\n const segNum = segmentNumber ? segmentNumber : 30;\n const coordinates = feature.coordinates as IPosition[];\n const positions = [];\n const indexArray = [];\n for (let i = 0; i < segNum; i++) {\n // 上线两个顶点\n // [ x, y, z, sx,sy, tx,ty]\n positions.push(\n i,\n 1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n i,\n -1,\n i,\n coordinates[0][0],\n coordinates[0][1],\n coordinates[1][0],\n coordinates[1][1],\n );\n\n if (i !== segNum - 1) {\n indexArray.push(\n ...[0, 1, 2, 1, 3, 2].map((v) => {\n return i * 2 + v;\n }),\n );\n }\n }\n return {\n vertices: positions,\n indices: indexArray,\n size: 7,\n };\n}\n\n/**\n * 构建热力图密度图的顶点\n * @param feature\n * @returns\n */\nexport function HeatmapTriangulation(feature: IEncodeFeature) {\n const coordinates = feature.coordinates as number[];\n if (coordinates.length === 2) {\n coordinates.push(0);\n }\n const size = feature.size as number;\n const dir = addDir(-1, 1);\n const dir1 = addDir(1, 1);\n const dir2 = addDir(-1, -1);\n const dir3 = addDir(1, -1);\n // [x,y,z, dirx ,diry, weight]\n const positions = [\n ...coordinates,\n ...dir,\n ...coordinates,\n ...dir2,\n ...coordinates,\n ...dir3,\n ...coordinates,\n ...dir1,\n ];\n const indexArray = [0, 1, 2, 3, 0, 2];\n return {\n vertices: positions,\n indices: indexArray,\n size: 5,\n };\n}\n\n/**\n * 点图层3d geomerty\n * @param shape 3D形状\n */\nfunction getGeometry(shape: ShapeType3D, needFlat = false): IExtrudeGeomety {\n if (GeometryCache && GeometryCache[shape]) {\n return GeometryCache[shape];\n }\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.cylinder();\n const geometry = extrude_PolygonNormal([path], needFlat);\n GeometryCache[shape] = geometry;\n return geometry;\n}\n\nfunction computeVertexNormals(\n positions: number[],\n indexArray: number[],\n dim: number = 3,\n needFlat: boolean = false,\n) {\n const normals = new Float32Array((positions.length / dim) * 3);\n let vA: number;\n let vB: number;\n let vC: number;\n const cb = vec3.create();\n const ab = vec3.create();\n const normal = vec3.create();\n for (let i = 0, li = indexArray.length; i < li; i += 3) {\n vA = indexArray[i + 0] * 3;\n vB = indexArray[i + 1] * 3;\n vC = indexArray[i + 2] * 3;\n let p1 = [positions[vA], positions[vA + 1]];\n let p2 = [positions[vB], positions[vB + 1]];\n let p3 = [positions[vC], positions[vC + 1]];\n if (needFlat) {\n p1 = lngLatToMeters(p1);\n p2 = lngLatToMeters(p2);\n p3 = lngLatToMeters(p3);\n }\n const [ax, ay] = p1;\n const pA = vec3.fromValues(ax, ay, positions[vA + 2]);\n const [bx, by] = p2;\n const pB = vec3.fromValues(bx, by, positions[vB + 2]);\n const [cx, cy] = p3;\n const pC = vec3.fromValues(cx, cy, positions[vC + 2]);\n vec3.sub(cb, pC, pB);\n vec3.sub(ab, pA, pB);\n vec3.cross(normal, cb, ab);\n normals[vA] += cb[0];\n normals[vA + 1] += cb[1];\n normals[vA + 2] += cb[2];\n normals[vB] += cb[0];\n normals[vB + 1] += cb[1];\n normals[vB + 2] += cb[2];\n normals[vC] += cb[0];\n normals[vC + 1] += cb[1];\n normals[vC + 2] += cb[2];\n }\n normalizeNormals(normals);\n return normals;\n}\n\nfunction normalizeNormals(normals: Float32Array) {\n for (let i = 0, li = normals.length; i < li; i += 3) {\n const normal = vec3.fromValues(normals[i], normals[i + 1], normals[i + 2]);\n const newNormal = vec3.create();\n vec3.normalize(newNormal, normal);\n normals.set(newNormal, i);\n }\n}\n\nfunction checkIsClosed(points: number[][][]) {\n const p1 = points[0][0];\n const p2 = points[0][points[0].length - 1];\n return p1[0] === p2[0] && p1[1] === p2[1];\n}\n\nfunction getHeatmapGeometry(shape: ShapeType2D | ShapeType3D): IExtrudeGeomety {\n const shape3d = [\n 'cylinder',\n 'triangleColumn',\n 'hexagonColumn',\n 'squareColumn',\n ];\n const path = geometryShape[shape]\n ? geometryShape[shape]()\n : geometryShape.circle();\n const geometry =\n shape3d.indexOf(shape) === -1\n ? fillPolygon([path])\n : extrudePolygon([path]);\n // const geometry = fillPolygon([path]);\n return geometry;\n}\n// 热力图计算范围\nfunction addDir(dirX: number, dirY: number) {\n const x = (dirX + 1) / 2;\n const y = (dirY + 1) / 2;\n return [x, y];\n}\n\n/**\n * 构建地球三角网格\n * @returns\n */\nexport function earthTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS, { segments: EARTH_SEGMENTS });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n\nexport function earthOuterTriangulation() {\n const earthmesh = primitiveSphere(EARTH_RADIUS + EARTH_RADIUS_OUTER, {\n segments: EARTH_SEGMENTS,\n });\n const { positionsArr, indicesArr, normalArr } = earthmesh;\n return {\n vertices: positionsArr,\n indices: indicesArr,\n size: 5,\n normals: normalArr,\n };\n}\n"],"file":"triangulation.js"}
package/es/earth/index.js CHANGED
@@ -45,15 +45,9 @@ var EarthLayer = function (_BaseLayer) {
45
45
  _createClass(EarthLayer, [{
46
46
  key: "buildModels",
47
47
  value: function buildModels() {
48
- var _this2 = this;
49
-
50
48
  var shape = this.getModelType();
51
49
  this.layerModel = new EarthModels[shape](this);
52
- this.layerModel.initModels(function (models) {
53
- _this2.models = models;
54
-
55
- _this2.renderLayers();
56
- });
50
+ this.models = this.layerModel.initModels();
57
51
  }
58
52
  }, {
59
53
  key: "setEarthTime",
@@ -61,7 +55,7 @@ var EarthLayer = function (_BaseLayer) {
61
55
  if (this.layerModel && this.layerModel.setEarthTime) {
62
56
  this.layerModel.setEarthTime(time);
63
57
  } else {
64
- console.warn('请在 scene loaded 之后执行该方法!');
58
+ console.error('请在 scene loaded 之后执行该方法!');
65
59
  }
66
60
  }
67
61
  }, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/earth/index.ts"],"names":["BaseLayer","EarthAtomSphereModel","BaseEarthModel","EarthBloomSphereModel","EarthModels","base","atomSphere","bloomSphere","earthLayerTypes","EarthLayer","shape","getModelType","layerModel","initModels","models","renderLayers","time","setEarthTime","console","warn","shapeAttribute","styleAttributeService","getLayerStyleAttribute","scale","field","indexOf"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AACA,OAAOC,oBAAP,MAAiC,qBAAjC;AACA,OAAOC,cAAP,MAA2B,eAA3B;AACA,OAAOC,qBAAP,MAAkC,sBAAlC;AASA,IAAMC,WAA6C,GAAG;AACpDC,EAAAA,IAAI,EAAEH,cAD8C;AAEpDI,EAAAA,UAAU,EAAEL,oBAFwC;AAGpDM,EAAAA,WAAW,EAAEJ;AAHuC,CAAtD;AAMA,IAAMK,eAAe,GAAG,CAAC,MAAD,EAAS,YAAT,EAAuB,aAAvB,CAAxB;;IAEqBC,U;;;;;;;;;;;;;;;;2DACG,Y;;;;;;;WAEtB,uBAAqB;AAAA;;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIR,WAAW,CAACM,KAAD,CAAf,CAAuB,IAAvB,CAAlB;AACA,WAAKE,UAAL,CAAgBC,UAAhB,CAA2B,UAACC,MAAD,EAAY;AACrC,QAAA,MAAI,CAACA,MAAL,GAAcA,MAAd;;AACA,QAAA,MAAI,CAACC,YAAL;AACD,OAHD;AAID;;;WAMD,sBAAoBC,IAApB,EAAkC;AAChC,UAAI,KAAKJ,UAAL,IAAmB,KAAKA,UAAL,CAAgBK,YAAvC,EAAqD;AACnD,aAAKL,UAAL,CAAgBK,YAAhB,CAA6BD,IAA7B;AACD,OAFD,MAEO;AACLE,QAAAA,OAAO,CAACC,IAAR,CAAa,0BAAb;AACD;AACF;;;WAED,wBAAyC;AAAA;;AACvC,UAAMC,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;AAGA,UAAIZ,KAAK,GAAI,CAAAU,cAAc,SAAd,IAAAA,cAAc,WAAd,qCAAAA,cAAc,CAAEG,KAAhB,gFAAuBC,KAAvB,KAAgC,MAA7C;;AACA,UAAIhB,eAAe,CAACiB,OAAhB,CAAwBf,KAAxB,IAAiC,CAArC,EAAwC;AACtCA,QAAAA,KAAK,GAAG,MAAR;AACD;;AACD,aAAOA,KAAP;AACD;;;;EAjCqCV,S;;SAAnBS,U","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport EarthAtomSphereModel from './models/atmosphere';\nimport BaseEarthModel from './models/base';\nimport EarthBloomSphereModel from './models/bloomsphere';\n\ninterface IEarthLayerStyleOptions {\n opacity: number;\n setEarthTime(time: number): void;\n}\n\nexport type EarthModelType = 'base' | 'atomSphere' | 'bloomSphere';\n\nconst EarthModels: { [key in EarthModelType]: any } = {\n base: BaseEarthModel,\n atomSphere: EarthAtomSphereModel,\n bloomSphere: EarthBloomSphereModel,\n};\n\nconst earthLayerTypes = ['base', 'atomSphere', 'bloomSphere'];\n\nexport default class EarthLayer extends BaseLayer<IEarthLayerStyleOptions> {\n public type: string = 'EarthLayer';\n\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new EarthModels[shape](this);\n this.layerModel.initModels((models) => {\n this.models = models;\n this.renderLayers();\n });\n }\n\n /**\n * 设置当前地球时间\n * @param time\n */\n public setEarthTime(time: number) {\n if (this.layerModel && this.layerModel.setEarthTime) {\n this.layerModel.setEarthTime(time);\n } else {\n console.warn('请在 scene loaded 之后执行该方法!');\n }\n }\n\n protected getModelType(): EarthModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n let shape = (shapeAttribute?.scale?.field || 'base') as string;\n if (earthLayerTypes.indexOf(shape) < 0) {\n shape = 'base';\n }\n return shape as EarthModelType;\n }\n}\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/earth/index.ts"],"names":["BaseLayer","EarthAtomSphereModel","BaseEarthModel","EarthBloomSphereModel","EarthModels","base","atomSphere","bloomSphere","earthLayerTypes","EarthLayer","shape","getModelType","layerModel","models","initModels","time","setEarthTime","console","error","shapeAttribute","styleAttributeService","getLayerStyleAttribute","scale","field","indexOf"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,SAAP,MAAsB,mBAAtB;AACA,OAAOC,oBAAP,MAAiC,qBAAjC;AACA,OAAOC,cAAP,MAA2B,eAA3B;AACA,OAAOC,qBAAP,MAAkC,sBAAlC;AASA,IAAMC,WAA6C,GAAG;AACpDC,EAAAA,IAAI,EAAEH,cAD8C;AAEpDI,EAAAA,UAAU,EAAEL,oBAFwC;AAGpDM,EAAAA,WAAW,EAAEJ;AAHuC,CAAtD;AAMA,IAAMK,eAAe,GAAG,CAAC,MAAD,EAAS,YAAT,EAAuB,aAAvB,CAAxB;;IAEqBC,U;;;;;;;;;;;;;;;;2DACG,Y;;;;;;;WAEtB,uBAAqB;AACnB,UAAMC,KAAK,GAAG,KAAKC,YAAL,EAAd;AACA,WAAKC,UAAL,GAAkB,IAAIR,WAAW,CAACM,KAAD,CAAf,CAAuB,IAAvB,CAAlB;AACA,WAAKG,MAAL,GAAc,KAAKD,UAAL,CAAgBE,UAAhB,EAAd;AACD;;;WAMD,sBAAoBC,IAApB,EAAkC;AAChC,UAAI,KAAKH,UAAL,IAAmB,KAAKA,UAAL,CAAgBI,YAAvC,EAAqD;AACnD,aAAKJ,UAAL,CAAgBI,YAAhB,CAA6BD,IAA7B;AACD,OAFD,MAEO;AACLE,QAAAA,OAAO,CAACC,KAAR,CAAc,0BAAd;AACD;AACF;;;WAED,wBAAyC;AAAA;;AACvC,UAAMC,cAAc,GAAG,KAAKC,qBAAL,CAA2BC,sBAA3B,CACrB,OADqB,CAAvB;AAGA,UAAIX,KAAK,GAAI,CAAAS,cAAc,SAAd,IAAAA,cAAc,WAAd,qCAAAA,cAAc,CAAEG,KAAhB,gFAAuBC,KAAvB,KAAgC,MAA7C;;AACA,UAAIf,eAAe,CAACgB,OAAhB,CAAwBd,KAAxB,IAAiC,CAArC,EAAwC;AACtCA,QAAAA,KAAK,GAAG,MAAR;AACD;;AACD,aAAOA,KAAP;AACD;;;;EA9BqCV,S;;SAAnBS,U","sourcesContent":["import BaseLayer from '../core/BaseLayer';\nimport EarthAtomSphereModel from './models/atmosphere';\nimport BaseEarthModel from './models/base';\nimport EarthBloomSphereModel from './models/bloomsphere';\n\ninterface IEarthLayerStyleOptions {\n opacity: number;\n setEarthTime(time: number): void;\n}\n\nexport type EarthModelType = 'base' | 'atomSphere' | 'bloomSphere';\n\nconst EarthModels: { [key in EarthModelType]: any } = {\n base: BaseEarthModel,\n atomSphere: EarthAtomSphereModel,\n bloomSphere: EarthBloomSphereModel,\n};\n\nconst earthLayerTypes = ['base', 'atomSphere', 'bloomSphere'];\n\nexport default class EarthLayer extends BaseLayer<IEarthLayerStyleOptions> {\n public type: string = 'EarthLayer';\n\n public buildModels() {\n const shape = this.getModelType();\n this.layerModel = new EarthModels[shape](this);\n this.models = this.layerModel.initModels();\n }\n\n /**\n * 设置当前地球时间\n * @param time\n */\n public setEarthTime(time: number) {\n if (this.layerModel && this.layerModel.setEarthTime) {\n this.layerModel.setEarthTime(time);\n } else {\n console.error('请在 scene loaded 之后执行该方法!');\n }\n }\n\n protected getModelType(): EarthModelType {\n const shapeAttribute = this.styleAttributeService.getLayerStyleAttribute(\n 'shape',\n );\n let shape = (shapeAttribute?.scale?.field || 'base') as string;\n if (earthLayerTypes.indexOf(shape) < 0) {\n shape = 'base';\n }\n return shape as EarthModelType;\n }\n}\n"],"file":"index.js"}
@@ -2,8 +2,8 @@ import { IModel, IModelUniform } from '@antv/l7-core';
2
2
  import BaseModel from '../../core/BaseModel';
3
3
  export default class EarthAtomSphereModel extends BaseModel {
4
4
  getUninforms(): IModelUniform;
5
- initModels(callbackModel: (models: IModel[]) => void): void;
5
+ initModels(): IModel[];
6
6
  clearModels(): string;
7
- buildModels(callbackModel: (models: IModel[]) => void): void;
7
+ buildModels(): IModel[];
8
8
  protected registerBuiltinAttributes(): void;
9
9
  }
@@ -39,8 +39,8 @@ var EarthAtomSphereModel = function (_BaseModel) {
39
39
  }
40
40
  }, {
41
41
  key: "initModels",
42
- value: function initModels(callbackModel) {
43
- this.buildModels(callbackModel);
42
+ value: function initModels() {
43
+ return this.buildModels();
44
44
  }
45
45
  }, {
46
46
  key: "clearModels",
@@ -49,10 +49,10 @@ var EarthAtomSphereModel = function (_BaseModel) {
49
49
  }
50
50
  }, {
51
51
  key: "buildModels",
52
- value: function buildModels(callbackModel) {
52
+ value: function buildModels() {
53
53
  this.layer.zIndex = -997;
54
- this.layer.buildLayerModel({
55
- moduleName: 'earthAtmo',
54
+ return [this.layer.buildLayerModel({
55
+ moduleName: 'earthAtmoSphere',
56
56
  vertexShader: atmoSphereVert,
57
57
  fragmentShader: atmoSphereFrag,
58
58
  triangulation: earthTriangulation,
@@ -60,12 +60,7 @@ var EarthAtomSphereModel = function (_BaseModel) {
60
60
  enable: false
61
61
  },
62
62
  blend: this.getBlend()
63
- }).then(function (model) {
64
- callbackModel([model]);
65
- }).catch(function (err) {
66
- console.warn(err);
67
- callbackModel([]);
68
- });
63
+ })];
69
64
  }
70
65
  }, {
71
66
  key: "registerBuiltinAttributes",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/earth/models/atmosphere.ts"],"names":["AttributeType","gl","BaseModel","earthTriangulation","EarthAtomSphereModel","layer","getLayerConfig","opacity","u_opacity","callbackModel","buildModels","zIndex","buildLayerModel","moduleName","vertexShader","atmoSphereVert","fragmentShader","atmoSphereFrag","triangulation","depth","enable","blend","getBlend","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","type","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { isNumber } from 'lodash';\n\nimport BaseModel from '../../core/BaseModel';\nimport { earthTriangulation } from '../../core/triangulation';\nimport atmoSphereFrag from '../shaders/atmosphere_frag.glsl';\nimport atmoSphereVert from '../shaders/atmosphere_vert.glsl';\ninterface IAtmoLayerStyleOptions {\n opacity: number;\n}\n\nexport default class EarthAtomSphereModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n } = this.layer.getLayerConfig() as IAtmoLayerStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n return '';\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n // TODO: 调整图层的绘制顺序 地球大气层\n this.layer.zIndex = -997;\n this.layer\n .buildLayerModel({\n moduleName: 'earthAtmo',\n vertexShader: atmoSphereVert,\n fragmentShader: atmoSphereFrag,\n triangulation: earthTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\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":"atmosphere.js"}
1
+ {"version":3,"sources":["../../../src/earth/models/atmosphere.ts"],"names":["AttributeType","gl","BaseModel","earthTriangulation","EarthAtomSphereModel","layer","getLayerConfig","opacity","u_opacity","buildModels","zIndex","buildLayerModel","moduleName","vertexShader","atmoSphereVert","fragmentShader","atmoSphereFrag","triangulation","depth","enable","blend","getBlend","styleAttributeService","registerStyleAttribute","name","type","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { isNumber } from 'lodash';\n\nimport BaseModel from '../../core/BaseModel';\nimport { earthTriangulation } from '../../core/triangulation';\nimport atmoSphereFrag from '../shaders/atmosphere_frag.glsl';\nimport atmoSphereVert from '../shaders/atmosphere_vert.glsl';\ninterface IAtmoLayerStyleOptions {\n opacity: number;\n}\n\nexport default class EarthAtomSphereModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n } = this.layer.getLayerConfig() as IAtmoLayerStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public clearModels() {\n return '';\n }\n\n public buildModels(): IModel[] {\n // TODO: 调整图层的绘制顺序 地球大气层\n this.layer.zIndex = -997;\n return [\n this.layer.buildLayerModel({\n moduleName: 'earthAtmoSphere',\n vertexShader: atmoSphereVert,\n fragmentShader: atmoSphereFrag,\n triangulation: earthTriangulation,\n depth: {\n enable: false,\n },\n blend: this.getBlend(),\n }),\n ];\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\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":"atmosphere.js"}
@@ -9,8 +9,8 @@ export default class BaseEarthModel extends BaseModel {
9
9
  private sunRadius;
10
10
  getUninforms(): IModelUniform;
11
11
  setEarthTime(time: number): void;
12
- initModels(callbackModel: (models: IModel[]) => void): void;
12
+ initModels(): IModel[];
13
13
  clearModels(): string;
14
- buildModels(callbackModel: (models: IModel[]) => void): void;
14
+ buildModels(): IModel[];
15
15
  protected registerBuiltinAttributes(): void;
16
16
  }
@@ -83,7 +83,7 @@ var BaseEarthModel = function (_BaseModel) {
83
83
  }
84
84
  }, {
85
85
  key: "initModels",
86
- value: function initModels(callbackModel) {
86
+ value: function initModels() {
87
87
  var _this2 = this;
88
88
 
89
89
  var _this$layer$getLayerC2 = this.layer.getLayerConfig(),
@@ -110,7 +110,7 @@ var BaseEarthModel = function (_BaseModel) {
110
110
 
111
111
  _this2.layerService.renderLayers();
112
112
  });
113
- this.buildModels(callbackModel);
113
+ return this.buildModels();
114
114
  }
115
115
  }, {
116
116
  key: "clearModels",
@@ -119,10 +119,10 @@ var BaseEarthModel = function (_BaseModel) {
119
119
  }
120
120
  }, {
121
121
  key: "buildModels",
122
- value: function buildModels(callbackModel) {
122
+ value: function buildModels() {
123
123
  this.layer.zIndex = -998;
124
- this.layer.buildLayerModel({
125
- moduleName: 'earthBase',
124
+ return [this.layer.buildLayerModel({
125
+ moduleName: 'baseEarth',
126
126
  vertexShader: baseVert,
127
127
  fragmentShader: baseFrag,
128
128
  triangulation: earthTriangulation,
@@ -130,12 +130,7 @@ var BaseEarthModel = function (_BaseModel) {
130
130
  enable: true
131
131
  },
132
132
  blend: this.getBlend()
133
- }).then(function (model) {
134
- callbackModel([model]);
135
- }).catch(function (err) {
136
- console.warn(err);
137
- callbackModel([]);
138
- });
133
+ })];
139
134
  }
140
135
  }, {
141
136
  key: "registerBuiltinAttributes",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/earth/models/base.ts"],"names":["AttributeType","gl","BaseModel","earthTriangulation","BaseEarthModel","Math","sqrt","sunX","sunY","sunZ","layer","getLayerConfig","animateOption","globelOtions","enable","mapService","rotateY","reg","earthTime","cos","sunRadius","sin","u_ambientRatio","ambientRatio","u_diffuseRatio","diffuseRatio","u_specularRatio","specularRatio","u_sunLight","u_texture","texture","time","layerService","renderLayers","callbackModel","undefined","setEarthTime","source","getSource","createTexture2D","rendererService","height","width","data","images","then","imageData","updateLayerRenderList","buildModels","zIndex","buildLayerModel","moduleName","vertexShader","baseVert","fragmentShader","baseFrag","triangulation","depth","blend","getBlend","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","type","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n BlendType,\n gl,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\n\nimport BaseModel, { styleOffset, styleSingle } from '../../core/BaseModel';\nimport { earthTriangulation } from '../../core/triangulation';\n\nimport baseFrag from '../shaders/base_frag.glsl';\nimport baseVert from '../shaders/base_vert.glsl';\n\nexport default class BaseEarthModel extends BaseModel {\n protected texture: ITexture2D;\n // T: 当前的地球时间 - 控制太阳的方位\n private earthTime: number = 3.4;\n private sunX = 1000;\n private sunY = 1000;\n private sunZ = 1000;\n private sunRadius = Math.sqrt(\n this.sunX * this.sunX + this.sunY * this.sunY + this.sunZ * this.sunZ,\n );\n\n public getUninforms(): IModelUniform {\n const { animateOption, globelOtions } = this.layer.getLayerConfig();\n if (animateOption?.enable) {\n // @ts-ignore\n // T: rotateY 方法只有在地球模式下存在\n this.mapService.rotateY({\n reg: 0.002,\n });\n this.earthTime += 0.02;\n\n this.sunY = 10;\n this.sunX = Math.cos(this.earthTime) * (this.sunRadius - this.sunY);\n this.sunZ = Math.sin(this.earthTime) * (this.sunRadius - this.sunY);\n }\n\n return {\n u_ambientRatio: globelOtions?.ambientRatio || 0.6, // 环境光\n u_diffuseRatio: globelOtions?.diffuseRatio || 0.4, // 漫反射\n u_specularRatio: globelOtions?.specularRatio || 0.1, // 高光反射\n // u_sunLight: [120, 120, 120],\n u_sunLight: [this.sunX, this.sunY, this.sunZ],\n\n u_texture: this.texture,\n };\n }\n\n public setEarthTime(time: number) {\n this.earthTime = time;\n\n this.sunY = 10;\n this.sunX = Math.cos(this.earthTime) * (this.sunRadius - this.sunY);\n this.sunZ = Math.sin(this.earthTime) * (this.sunRadius - this.sunY);\n\n this.layerService.renderLayers();\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n const { globelOtions } = this.layer.getLayerConfig();\n if (globelOtions?.earthTime !== undefined) {\n this.setEarthTime(globelOtions.earthTime);\n }\n\n const source = this.layer.getSource();\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n source.data.images.then((imageData: HTMLImageElement[]) => {\n this.texture = createTexture2D({\n data: imageData[0],\n width: imageData[0].width,\n height: imageData[0].height,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n });\n\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n return '';\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n // TODO: 调整图层的绘制顺序 地球大气层\n this.layer.zIndex = -998;\n\n this.layer\n .buildLayerModel({\n moduleName: 'earthBase',\n vertexShader: baseVert,\n fragmentShader: baseFrag,\n triangulation: earthTriangulation,\n depth: { enable: true },\n blend: this.getBlend(),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\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":"base.js"}
1
+ {"version":3,"sources":["../../../src/earth/models/base.ts"],"names":["AttributeType","gl","BaseModel","earthTriangulation","BaseEarthModel","Math","sqrt","sunX","sunY","sunZ","layer","getLayerConfig","animateOption","globelOtions","enable","mapService","rotateY","reg","earthTime","cos","sunRadius","sin","u_ambientRatio","ambientRatio","u_diffuseRatio","diffuseRatio","u_specularRatio","specularRatio","u_sunLight","u_texture","texture","time","layerService","renderLayers","undefined","setEarthTime","source","getSource","createTexture2D","rendererService","height","width","data","images","then","imageData","updateLayerRenderList","buildModels","zIndex","buildLayerModel","moduleName","vertexShader","baseVert","fragmentShader","baseFrag","triangulation","depth","blend","getBlend","styleAttributeService","registerStyleAttribute","name","type","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n BlendType,\n gl,\n IEncodeFeature,\n ILayerConfig,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\n\nimport BaseModel, { styleOffset, styleSingle } from '../../core/BaseModel';\nimport { earthTriangulation } from '../../core/triangulation';\n\nimport baseFrag from '../shaders/base_frag.glsl';\nimport baseVert from '../shaders/base_vert.glsl';\n\nexport default class BaseEarthModel extends BaseModel {\n protected texture: ITexture2D;\n // T: 当前的地球时间 - 控制太阳的方位\n private earthTime: number = 3.4;\n private sunX = 1000;\n private sunY = 1000;\n private sunZ = 1000;\n private sunRadius = Math.sqrt(\n this.sunX * this.sunX + this.sunY * this.sunY + this.sunZ * this.sunZ,\n );\n\n public getUninforms(): IModelUniform {\n const { animateOption, globelOtions } = this.layer.getLayerConfig();\n if (animateOption?.enable) {\n // @ts-ignore\n // T: rotateY 方法只有在地球模式下存在\n this.mapService.rotateY({\n reg: 0.002,\n });\n this.earthTime += 0.02;\n\n this.sunY = 10;\n this.sunX = Math.cos(this.earthTime) * (this.sunRadius - this.sunY);\n this.sunZ = Math.sin(this.earthTime) * (this.sunRadius - this.sunY);\n }\n\n return {\n u_ambientRatio: globelOtions?.ambientRatio || 0.6, // 环境光\n u_diffuseRatio: globelOtions?.diffuseRatio || 0.4, // 漫反射\n u_specularRatio: globelOtions?.specularRatio || 0.1, // 高光反射\n // u_sunLight: [120, 120, 120],\n u_sunLight: [this.sunX, this.sunY, this.sunZ],\n\n u_texture: this.texture,\n };\n }\n\n public setEarthTime(time: number) {\n this.earthTime = time;\n\n this.sunY = 10;\n this.sunX = Math.cos(this.earthTime) * (this.sunRadius - this.sunY);\n this.sunZ = Math.sin(this.earthTime) * (this.sunRadius - this.sunY);\n\n this.layerService.renderLayers();\n }\n\n public initModels(): IModel[] {\n const { globelOtions } = this.layer.getLayerConfig();\n if (globelOtions?.earthTime !== undefined) {\n this.setEarthTime(globelOtions.earthTime);\n }\n\n const source = this.layer.getSource();\n const { createTexture2D } = this.rendererService;\n this.texture = createTexture2D({\n height: 0,\n width: 0,\n });\n source.data.images.then((imageData: HTMLImageElement[]) => {\n this.texture = createTexture2D({\n data: imageData[0],\n width: imageData[0].width,\n height: imageData[0].height,\n });\n this.layerService.updateLayerRenderList();\n this.layerService.renderLayers();\n });\n\n return this.buildModels();\n }\n\n public clearModels() {\n return '';\n }\n\n public buildModels(): IModel[] {\n // TODO: 调整图层的绘制顺序 地球大气层\n this.layer.zIndex = -998;\n return [\n this.layer.buildLayerModel({\n moduleName: 'baseEarth',\n vertexShader: baseVert,\n fragmentShader: baseFrag,\n triangulation: earthTriangulation,\n depth: { enable: true },\n blend: this.getBlend(),\n }),\n ];\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\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":"base.js"}
@@ -2,8 +2,8 @@ import { IModel, IModelUniform } from '@antv/l7-core';
2
2
  import BaseModel from '../../core/BaseModel';
3
3
  export default class EarthBloomSphereModel extends BaseModel {
4
4
  getUninforms(): IModelUniform;
5
- initModels(callbackModel: (models: IModel[]) => void): void;
5
+ initModels(): IModel[];
6
6
  clearModels(): string;
7
- buildModels(callbackModel: (models: IModel[]) => void): void;
7
+ buildModels(): IModel[];
8
8
  protected registerBuiltinAttributes(): void;
9
9
  }
@@ -39,8 +39,8 @@ var EarthBloomSphereModel = function (_BaseModel) {
39
39
  }
40
40
  }, {
41
41
  key: "initModels",
42
- value: function initModels(callbackModel) {
43
- this.buildModels(callbackModel);
42
+ value: function initModels() {
43
+ return this.buildModels();
44
44
  }
45
45
  }, {
46
46
  key: "clearModels",
@@ -49,10 +49,10 @@ var EarthBloomSphereModel = function (_BaseModel) {
49
49
  }
50
50
  }, {
51
51
  key: "buildModels",
52
- value: function buildModels(callbackModel) {
52
+ value: function buildModels() {
53
53
  this.layer.zIndex = -999;
54
- this.layer.buildLayerModel({
55
- moduleName: 'earthBloom',
54
+ return [this.layer.buildLayerModel({
55
+ moduleName: 'earthBloomSphere',
56
56
  vertexShader: bloomSphereVert,
57
57
  fragmentShader: bloomSphereFrag,
58
58
  triangulation: earthOuterTriangulation,
@@ -60,12 +60,7 @@ var EarthBloomSphereModel = function (_BaseModel) {
60
60
  enable: false
61
61
  },
62
62
  blend: this.getBlend()
63
- }).then(function (model) {
64
- callbackModel([model]);
65
- }).catch(function (err) {
66
- console.warn(err);
67
- callbackModel([]);
68
- });
63
+ })];
69
64
  }
70
65
  }, {
71
66
  key: "registerBuiltinAttributes",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/earth/models/bloomsphere.ts"],"names":["AttributeType","gl","BaseModel","earthOuterTriangulation","EarthBloomSphereModel","layer","getLayerConfig","opacity","u_opacity","callbackModel","buildModels","zIndex","buildLayerModel","moduleName","vertexShader","bloomSphereVert","fragmentShader","bloomSphereFrag","triangulation","depth","enable","blend","getBlend","then","model","catch","err","console","warn","styleAttributeService","registerStyleAttribute","name","type","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { isNumber } from 'lodash';\n\nimport BaseModel from '../../core/BaseModel';\nimport { earthOuterTriangulation } from '../../core/triangulation';\nimport bloomSphereFrag from '../shaders/bloomsphere_frag.glsl';\nimport bloomSphereVert from '../shaders/bloomsphere_vert.glsl';\ninterface IBloomLayerStyleOptions {\n opacity: number;\n}\n\nexport default class EarthBloomSphereModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n } = this.layer.getLayerConfig() as IBloomLayerStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.buildModels(callbackModel);\n }\n\n public clearModels() {\n return '';\n }\n\n public buildModels(callbackModel: (models: IModel[]) => void) {\n // TODO: 调整图层的绘制顺序,让它保持在地球后面(减少锯齿现象)\n this.layer.zIndex = -999;\n this.layer\n .buildLayerModel({\n moduleName: 'earthBloom',\n vertexShader: bloomSphereVert,\n fragmentShader: bloomSphereFrag,\n triangulation: earthOuterTriangulation,\n depth: { enable: false },\n blend: this.getBlend(),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\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":"bloomsphere.js"}
1
+ {"version":3,"sources":["../../../src/earth/models/bloomsphere.ts"],"names":["AttributeType","gl","BaseModel","earthOuterTriangulation","EarthBloomSphereModel","layer","getLayerConfig","opacity","u_opacity","buildModels","zIndex","buildLayerModel","moduleName","vertexShader","bloomSphereVert","fragmentShader","bloomSphereFrag","triangulation","depth","enable","blend","getBlend","styleAttributeService","registerStyleAttribute","name","type","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","data","FLOAT","size","update","feature","featureIdx","vertex","attributeIdx","Array","isArray","STATIC_DRAW","normal"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n} from '@antv/l7-core';\nimport { isNumber } from 'lodash';\n\nimport BaseModel from '../../core/BaseModel';\nimport { earthOuterTriangulation } from '../../core/triangulation';\nimport bloomSphereFrag from '../shaders/bloomsphere_frag.glsl';\nimport bloomSphereVert from '../shaders/bloomsphere_vert.glsl';\ninterface IBloomLayerStyleOptions {\n opacity: number;\n}\n\nexport default class EarthBloomSphereModel extends BaseModel {\n public getUninforms(): IModelUniform {\n const {\n opacity = 1,\n } = this.layer.getLayerConfig() as IBloomLayerStyleOptions;\n return {\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n };\n }\n\n public initModels(): IModel[] {\n return this.buildModels();\n }\n\n public clearModels() {\n return '';\n }\n\n public buildModels(): IModel[] {\n // TODO: 调整图层的绘制顺序,让它保持在地球后面(减少锯齿现象)\n this.layer.zIndex = -999;\n return [\n this.layer.buildLayerModel({\n moduleName: 'earthBloomSphere',\n vertexShader: bloomSphereVert,\n fragmentShader: bloomSphereFrag,\n triangulation: earthOuterTriangulation,\n depth: {\n enable: false,\n },\n blend: this.getBlend(),\n }),\n ];\n }\n\n protected registerBuiltinAttributes() {\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'size',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Size',\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: 1,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n const { size = 1 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n this.styleAttributeService.registerStyleAttribute({\n name: 'normal',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Normal',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.STATIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 3,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n normal: number[],\n ) => {\n return normal;\n },\n },\n });\n\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":"bloomsphere.js"}
@@ -37,29 +37,19 @@ var HeatMapLayer = function (_BaseLayer) {
37
37
  _createClass(HeatMapLayer, [{
38
38
  key: "buildModels",
39
39
  value: function buildModels() {
40
- var _this2 = this;
41
-
42
40
  var shape = this.getModelType();
43
41
  this.layerModel = new HeatMapModels[shape](this);
44
- this.layerModel.initModels(function (models) {
45
- _this2.models = models;
46
-
47
- _this2.renderLayers();
48
- });
42
+ this.models = this.layerModel.initModels();
49
43
  }
50
44
  }, {
51
45
  key: "rebuildModels",
52
46
  value: function rebuildModels() {
53
- var _this3 = this;
54
-
55
- this.layerModel.buildModels(function (models) {
56
- return _this3.models = models;
57
- });
47
+ this.models = this.layerModel.buildModels();
58
48
  }
59
49
  }, {
60
50
  key: "renderModels",
61
51
  value: function renderModels() {
62
- var _this4 = this;
52
+ var _this2 = this;
63
53
 
64
54
  var shape = this.getModelType();
65
55
 
@@ -72,15 +62,13 @@ var HeatMapLayer = function (_BaseLayer) {
72
62
  }
73
63
 
74
64
  if (this.layerModelNeedUpdate) {
75
- this.layerModel.buildModels(function (models) {
76
- return _this4.models = models;
77
- });
65
+ this.models = this.layerModel.buildModels();
78
66
  this.layerModelNeedUpdate = false;
79
67
  }
80
68
 
81
69
  this.models.forEach(function (model) {
82
70
  return model.draw({
83
- uniforms: _this4.layerModel.getUninforms()
71
+ uniforms: _this2.layerModel.getUninforms()
84
72
  });
85
73
  });
86
74
  return this;