@antv/l7-layers 2.9.18 → 2.9.19

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 (354) hide show
  1. package/es/Geometry/index.js +12 -2
  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 +11 -6
  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 +12 -7
  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 +11 -6
  11. package/es/Geometry/models/sprite.js.map +1 -1
  12. package/es/canvas/index.js +12 -2
  13. package/es/canvas/index.js.map +1 -1
  14. package/es/citybuliding/building.js +12 -2
  15. package/es/citybuliding/building.js.map +1 -1
  16. package/es/citybuliding/models/build.d.ts +2 -1
  17. package/es/citybuliding/models/build.js +16 -3
  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 +105 -62
  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 +2 -0
  26. package/es/core/interface.js.map +1 -1
  27. package/es/core/triangulation.js +1 -2
  28. package/es/core/triangulation.js.map +1 -1
  29. package/es/earth/index.js +8 -2
  30. package/es/earth/index.js.map +1 -1
  31. package/es/earth/models/atmosphere.d.ts +2 -2
  32. package/es/earth/models/atmosphere.js +11 -6
  33. package/es/earth/models/atmosphere.js.map +1 -1
  34. package/es/earth/models/base.d.ts +2 -2
  35. package/es/earth/models/base.js +11 -6
  36. package/es/earth/models/base.js.map +1 -1
  37. package/es/earth/models/bloomsphere.d.ts +2 -2
  38. package/es/earth/models/bloomsphere.js +11 -6
  39. package/es/earth/models/bloomsphere.js.map +1 -1
  40. package/es/heatmap/index.js +17 -5
  41. package/es/heatmap/index.js.map +1 -1
  42. package/es/heatmap/models/grid.d.ts +2 -2
  43. package/es/heatmap/models/grid.js +12 -8
  44. package/es/heatmap/models/grid.js.map +1 -1
  45. package/es/heatmap/models/grid3d.d.ts +2 -2
  46. package/es/heatmap/models/grid3d.js +12 -6
  47. package/es/heatmap/models/grid3d.js.map +1 -1
  48. package/es/heatmap/models/heatmap.d.ts +2 -2
  49. package/es/heatmap/models/heatmap.js +112 -62
  50. package/es/heatmap/models/heatmap.js.map +1 -1
  51. package/es/heatmap/models/hexagon.d.ts +2 -2
  52. package/es/heatmap/models/hexagon.js +11 -6
  53. package/es/heatmap/models/hexagon.js.map +1 -1
  54. package/es/image/index.js +12 -2
  55. package/es/image/index.js.map +1 -1
  56. package/es/image/models/dataImage.d.ts +3 -3
  57. package/es/image/models/dataImage.js +10 -5
  58. package/es/image/models/dataImage.js.map +1 -1
  59. package/es/image/models/image.d.ts +3 -3
  60. package/es/image/models/image.js +11 -7
  61. package/es/image/models/image.js.map +1 -1
  62. package/es/line/index.d.ts +0 -2
  63. package/es/line/index.js +12 -5
  64. package/es/line/index.js.map +1 -1
  65. package/es/line/models/arc.d.ts +2 -2
  66. package/es/line/models/arc.js +14 -9
  67. package/es/line/models/arc.js.map +1 -1
  68. package/es/line/models/arc_3d.d.ts +2 -2
  69. package/es/line/models/arc_3d.js +13 -8
  70. package/es/line/models/arc_3d.js.map +1 -1
  71. package/es/line/models/earthArc_3d.d.ts +2 -2
  72. package/es/line/models/earthArc_3d.js +17 -9
  73. package/es/line/models/earthArc_3d.js.map +1 -1
  74. package/es/line/models/great_circle.d.ts +2 -2
  75. package/es/line/models/great_circle.js +11 -6
  76. package/es/line/models/great_circle.js.map +1 -1
  77. package/es/line/models/half.d.ts +2 -2
  78. package/es/line/models/half.js +46 -29
  79. package/es/line/models/half.js.map +1 -1
  80. package/es/line/models/index.d.ts +1 -1
  81. package/es/line/models/index.js +0 -2
  82. package/es/line/models/index.js.map +1 -1
  83. package/es/line/models/line.d.ts +2 -2
  84. package/es/line/models/line.js +27 -15
  85. package/es/line/models/line.js.map +1 -1
  86. package/es/line/models/linearline.d.ts +2 -11
  87. package/es/line/models/linearline.js +14 -24
  88. package/es/line/models/linearline.js.map +1 -1
  89. package/es/line/models/simpleLine.d.ts +2 -2
  90. package/es/line/models/simpleLine.js +13 -8
  91. package/es/line/models/simpleLine.js.map +1 -1
  92. package/es/line/models/tile.d.ts +2 -11
  93. package/es/line/models/tile.js +45 -39
  94. package/es/line/models/tile.js.map +1 -1
  95. package/es/line/models/wall.d.ts +2 -2
  96. package/es/line/models/wall.js +13 -9
  97. package/es/line/models/wall.js.map +1 -1
  98. package/es/mask/index.js +12 -2
  99. package/es/mask/index.js.map +1 -1
  100. package/es/mask/models/fill.d.ts +2 -2
  101. package/es/mask/models/fill.js +53 -27
  102. package/es/mask/models/fill.js.map +1 -1
  103. package/es/plugins/DataMappingPlugin.js +29 -8
  104. package/es/plugins/DataMappingPlugin.js.map +1 -1
  105. package/es/plugins/DataSourcePlugin.js +14 -5
  106. package/es/plugins/DataSourcePlugin.js.map +1 -1
  107. package/es/plugins/LayerModelPlugin.d.ts +2 -0
  108. package/es/plugins/LayerModelPlugin.js +35 -7
  109. package/es/plugins/LayerModelPlugin.js.map +1 -1
  110. package/es/plugins/PixelPickingPlugin.js +16 -13
  111. package/es/plugins/PixelPickingPlugin.js.map +1 -1
  112. package/es/point/index.d.ts +1 -1
  113. package/es/point/index.js +26 -15
  114. package/es/point/index.js.map +1 -1
  115. package/es/point/models/earthExtrude.d.ts +2 -2
  116. package/es/point/models/earthExtrude.js +16 -14
  117. package/es/point/models/earthExtrude.js.map +1 -1
  118. package/es/point/models/earthFill.d.ts +2 -11
  119. package/es/point/models/earthFill.js +13 -22
  120. package/es/point/models/earthFill.js.map +1 -1
  121. package/es/point/models/extrude.d.ts +2 -2
  122. package/es/point/models/extrude.js +49 -27
  123. package/es/point/models/extrude.js.map +1 -1
  124. package/es/point/models/fill.d.ts +2 -2
  125. package/es/point/models/fill.js +59 -41
  126. package/es/point/models/fill.js.map +1 -1
  127. package/es/point/models/fillmage.d.ts +2 -7
  128. package/es/point/models/fillmage.js +13 -22
  129. package/es/point/models/fillmage.js.map +1 -1
  130. package/es/point/models/image.d.ts +2 -2
  131. package/es/point/models/image.js +11 -6
  132. package/es/point/models/image.js.map +1 -1
  133. package/es/point/models/index.d.ts +1 -1
  134. package/es/point/models/index.js +0 -2
  135. package/es/point/models/index.js.map +1 -1
  136. package/es/point/models/normal.d.ts +2 -2
  137. package/es/point/models/normal.js +11 -6
  138. package/es/point/models/normal.js.map +1 -1
  139. package/es/point/models/radar.d.ts +2 -11
  140. package/es/point/models/radar.js +13 -22
  141. package/es/point/models/radar.js.map +1 -1
  142. package/es/point/models/simplePoint.d.ts +2 -2
  143. package/es/point/models/simplePoint.js +11 -6
  144. package/es/point/models/simplePoint.js.map +1 -1
  145. package/es/point/models/text.d.ts +3 -2
  146. package/es/point/models/text.js +110 -75
  147. package/es/point/models/text.js.map +1 -1
  148. package/es/point/models/tile.d.ts +2 -11
  149. package/es/point/models/tile.js +22 -25
  150. package/es/point/models/tile.js.map +1 -1
  151. package/es/polygon/index.js +12 -2
  152. package/es/polygon/index.js.map +1 -1
  153. package/es/polygon/models/extrude.d.ts +2 -2
  154. package/es/polygon/models/extrude.js +10 -5
  155. package/es/polygon/models/extrude.js.map +1 -1
  156. package/es/polygon/models/fill.d.ts +2 -2
  157. package/es/polygon/models/fill.js +27 -13
  158. package/es/polygon/models/fill.js.map +1 -1
  159. package/es/polygon/models/ocean.d.ts +2 -2
  160. package/es/polygon/models/ocean.js +12 -6
  161. package/es/polygon/models/ocean.js.map +1 -1
  162. package/es/polygon/models/tile.d.ts +2 -3
  163. package/es/polygon/models/tile.js +17 -27
  164. package/es/polygon/models/tile.js.map +1 -1
  165. package/es/polygon/models/water.d.ts +2 -2
  166. package/es/polygon/models/water.js +12 -6
  167. package/es/polygon/models/water.js.map +1 -1
  168. package/es/raster/index.js +12 -2
  169. package/es/raster/index.js.map +1 -1
  170. package/es/raster/models/raster.d.ts +3 -3
  171. package/es/raster/models/raster.js +11 -7
  172. package/es/raster/models/raster.js.map +1 -1
  173. package/es/tile/manager/tileLayerManager.js +3 -0
  174. package/es/tile/manager/tileLayerManager.js.map +1 -1
  175. package/es/tile/manager/tilePickerManager.js +1 -0
  176. package/es/tile/manager/tilePickerManager.js.map +1 -1
  177. package/es/tile/tileFactory/base.js.map +1 -1
  178. package/es/tile/tileFactory/point.js.map +1 -1
  179. package/es/tile/tileFactory/rasterDataLayer.js +12 -2
  180. package/es/tile/tileFactory/rasterDataLayer.js.map +1 -1
  181. package/es/tile/tileFactory/vectorLayer.js +12 -2
  182. package/es/tile/tileFactory/vectorLayer.js.map +1 -1
  183. package/es/wind/index.js +12 -2
  184. package/es/wind/index.js.map +1 -1
  185. package/es/wind/models/wind.d.ts +4 -2
  186. package/es/wind/models/wind.js +50 -18
  187. package/es/wind/models/wind.js.map +1 -1
  188. package/es/wind/models/windRender.js +1 -1
  189. package/es/wind/models/windRender.js.map +1 -1
  190. package/lib/Geometry/index.js +12 -2
  191. package/lib/Geometry/index.js.map +1 -1
  192. package/lib/Geometry/models/billboard.js +11 -6
  193. package/lib/Geometry/models/billboard.js.map +1 -1
  194. package/lib/Geometry/models/plane.js +12 -7
  195. package/lib/Geometry/models/plane.js.map +1 -1
  196. package/lib/Geometry/models/sprite.js +11 -6
  197. package/lib/Geometry/models/sprite.js.map +1 -1
  198. package/lib/canvas/index.js +12 -2
  199. package/lib/canvas/index.js.map +1 -1
  200. package/lib/citybuliding/building.js +12 -2
  201. package/lib/citybuliding/building.js.map +1 -1
  202. package/lib/citybuliding/models/build.js +16 -3
  203. package/lib/citybuliding/models/build.js.map +1 -1
  204. package/lib/core/BaseLayer.js +104 -61
  205. package/lib/core/BaseLayer.js.map +1 -1
  206. package/lib/core/BaseModel.js +2 -2
  207. package/lib/core/BaseModel.js.map +1 -1
  208. package/lib/core/interface.js.map +1 -1
  209. package/lib/core/triangulation.js +4 -6
  210. package/lib/core/triangulation.js.map +1 -1
  211. package/lib/earth/index.js +8 -2
  212. package/lib/earth/index.js.map +1 -1
  213. package/lib/earth/models/atmosphere.js +11 -6
  214. package/lib/earth/models/atmosphere.js.map +1 -1
  215. package/lib/earth/models/base.js +11 -6
  216. package/lib/earth/models/base.js.map +1 -1
  217. package/lib/earth/models/bloomsphere.js +11 -6
  218. package/lib/earth/models/bloomsphere.js.map +1 -1
  219. package/lib/heatmap/index.js +17 -5
  220. package/lib/heatmap/index.js.map +1 -1
  221. package/lib/heatmap/models/grid.js +12 -8
  222. package/lib/heatmap/models/grid.js.map +1 -1
  223. package/lib/heatmap/models/grid3d.js +12 -6
  224. package/lib/heatmap/models/grid3d.js.map +1 -1
  225. package/lib/heatmap/models/heatmap.js +113 -62
  226. package/lib/heatmap/models/heatmap.js.map +1 -1
  227. package/lib/heatmap/models/hexagon.js +11 -6
  228. package/lib/heatmap/models/hexagon.js.map +1 -1
  229. package/lib/image/index.js +12 -2
  230. package/lib/image/index.js.map +1 -1
  231. package/lib/image/models/dataImage.js +10 -5
  232. package/lib/image/models/dataImage.js.map +1 -1
  233. package/lib/image/models/image.js +11 -7
  234. package/lib/image/models/image.js.map +1 -1
  235. package/lib/line/index.js +12 -5
  236. package/lib/line/index.js.map +1 -1
  237. package/lib/line/models/arc.js +14 -9
  238. package/lib/line/models/arc.js.map +1 -1
  239. package/lib/line/models/arc_3d.js +13 -8
  240. package/lib/line/models/arc_3d.js.map +1 -1
  241. package/lib/line/models/earthArc_3d.js +17 -9
  242. package/lib/line/models/earthArc_3d.js.map +1 -1
  243. package/lib/line/models/great_circle.js +11 -6
  244. package/lib/line/models/great_circle.js.map +1 -1
  245. package/lib/line/models/half.js +48 -29
  246. package/lib/line/models/half.js.map +1 -1
  247. package/lib/line/models/index.js +0 -3
  248. package/lib/line/models/index.js.map +1 -1
  249. package/lib/line/models/line.js +28 -17
  250. package/lib/line/models/line.js.map +1 -1
  251. package/lib/line/models/linearline.js +14 -24
  252. package/lib/line/models/linearline.js.map +1 -1
  253. package/lib/line/models/simpleLine.js +13 -8
  254. package/lib/line/models/simpleLine.js.map +1 -1
  255. package/lib/line/models/tile.js +47 -39
  256. package/lib/line/models/tile.js.map +1 -1
  257. package/lib/line/models/wall.js +13 -9
  258. package/lib/line/models/wall.js.map +1 -1
  259. package/lib/mask/index.js +12 -2
  260. package/lib/mask/index.js.map +1 -1
  261. package/lib/mask/models/fill.js +55 -27
  262. package/lib/mask/models/fill.js.map +1 -1
  263. package/lib/plugins/DataMappingPlugin.js +29 -8
  264. package/lib/plugins/DataMappingPlugin.js.map +1 -1
  265. package/lib/plugins/DataSourcePlugin.js +13 -4
  266. package/lib/plugins/DataSourcePlugin.js.map +1 -1
  267. package/lib/plugins/LayerModelPlugin.js +35 -7
  268. package/lib/plugins/LayerModelPlugin.js.map +1 -1
  269. package/lib/plugins/PixelPickingPlugin.js +16 -13
  270. package/lib/plugins/PixelPickingPlugin.js.map +1 -1
  271. package/lib/point/index.js +26 -15
  272. package/lib/point/index.js.map +1 -1
  273. package/lib/point/models/earthExtrude.js +16 -15
  274. package/lib/point/models/earthExtrude.js.map +1 -1
  275. package/lib/point/models/earthFill.js +13 -22
  276. package/lib/point/models/earthFill.js.map +1 -1
  277. package/lib/point/models/extrude.js +51 -28
  278. package/lib/point/models/extrude.js.map +1 -1
  279. package/lib/point/models/fill.js +61 -42
  280. package/lib/point/models/fill.js.map +1 -1
  281. package/lib/point/models/fillmage.js +13 -22
  282. package/lib/point/models/fillmage.js.map +1 -1
  283. package/lib/point/models/image.js +11 -6
  284. package/lib/point/models/image.js.map +1 -1
  285. package/lib/point/models/index.js +0 -3
  286. package/lib/point/models/index.js.map +1 -1
  287. package/lib/point/models/normal.js +11 -6
  288. package/lib/point/models/normal.js.map +1 -1
  289. package/lib/point/models/radar.js +13 -22
  290. package/lib/point/models/radar.js.map +1 -1
  291. package/lib/point/models/simplePoint.js +11 -6
  292. package/lib/point/models/simplePoint.js.map +1 -1
  293. package/lib/point/models/text.js +112 -78
  294. package/lib/point/models/text.js.map +1 -1
  295. package/lib/point/models/tile.js +22 -25
  296. package/lib/point/models/tile.js.map +1 -1
  297. package/lib/polygon/index.js +12 -2
  298. package/lib/polygon/index.js.map +1 -1
  299. package/lib/polygon/models/extrude.js +10 -5
  300. package/lib/polygon/models/extrude.js.map +1 -1
  301. package/lib/polygon/models/fill.js +25 -11
  302. package/lib/polygon/models/fill.js.map +1 -1
  303. package/lib/polygon/models/ocean.js +12 -6
  304. package/lib/polygon/models/ocean.js.map +1 -1
  305. package/lib/polygon/models/tile.js +17 -27
  306. package/lib/polygon/models/tile.js.map +1 -1
  307. package/lib/polygon/models/water.js +12 -6
  308. package/lib/polygon/models/water.js.map +1 -1
  309. package/lib/raster/index.js +12 -2
  310. package/lib/raster/index.js.map +1 -1
  311. package/lib/raster/models/raster.js +11 -7
  312. package/lib/raster/models/raster.js.map +1 -1
  313. package/lib/tile/manager/tileLayerManager.js +3 -0
  314. package/lib/tile/manager/tileLayerManager.js.map +1 -1
  315. package/lib/tile/manager/tilePickerManager.js +1 -0
  316. package/lib/tile/manager/tilePickerManager.js.map +1 -1
  317. package/lib/tile/tileFactory/base.js.map +1 -1
  318. package/lib/tile/tileFactory/point.js.map +1 -1
  319. package/lib/tile/tileFactory/rasterDataLayer.js +12 -2
  320. package/lib/tile/tileFactory/rasterDataLayer.js.map +1 -1
  321. package/lib/tile/tileFactory/vectorLayer.js +12 -2
  322. package/lib/tile/tileFactory/vectorLayer.js.map +1 -1
  323. package/lib/wind/index.js +12 -2
  324. package/lib/wind/index.js.map +1 -1
  325. package/lib/wind/models/wind.js +49 -18
  326. package/lib/wind/models/wind.js.map +1 -1
  327. package/lib/wind/models/windRender.js +1 -1
  328. package/lib/wind/models/windRender.js.map +1 -1
  329. package/package.json +9 -8
  330. package/es/line/models/arcmini.d.ts +0 -9
  331. package/es/line/models/arcmini.js +0 -145
  332. package/es/line/models/arcmini.js.map +0 -1
  333. package/es/point/models/icon-font.d.ts +0 -11
  334. package/es/point/models/icon-font.js +0 -181
  335. package/es/point/models/icon-font.js.map +0 -1
  336. package/es/raster/image.d.ts +0 -0
  337. package/es/raster/image.js +0 -2
  338. package/es/raster/image.js.map +0 -1
  339. package/es/raster/raster2d.d.ts +0 -27
  340. package/es/raster/raster2d.js +0 -158
  341. package/es/raster/raster2d.js.map +0 -1
  342. package/es/utils/geo.d.ts +0 -12
  343. package/es/utils/geo.js +0 -53
  344. package/es/utils/geo.js.map +0 -1
  345. package/lib/line/models/arcmini.js +0 -161
  346. package/lib/line/models/arcmini.js.map +0 -1
  347. package/lib/point/models/icon-font.js +0 -196
  348. package/lib/point/models/icon-font.js.map +0 -1
  349. package/lib/raster/image.js +0 -2
  350. package/lib/raster/image.js.map +0 -1
  351. package/lib/raster/raster2d.js +0 -172
  352. package/lib/raster/raster2d.js.map +0 -1
  353. package/lib/utils/geo.js +0 -65
  354. package/lib/utils/geo.js.map +0 -1
@@ -1,3 +1,4 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
1
2
  import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
3
  import _createClass from "@babel/runtime/helpers/createClass";
3
4
  import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
@@ -14,15 +15,16 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
14
15
 
15
16
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
16
17
 
18
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
19
+
17
20
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
18
21
 
19
22
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
20
23
 
21
24
  import { AttributeType, gl } from '@antv/l7-core';
22
- import { boundsContains, getMask, padBounds } from '@antv/l7-utils';
25
+ import { boundsContains, calculateCentroid, getMask, padBounds } from '@antv/l7-utils';
23
26
  import BaseModel from '../../core/BaseModel';
24
27
  import CollisionIndex from '../../utils/collision-index';
25
- import { calculateCentroid } from '../../utils/geo';
26
28
  import { getGlyphQuads, shapeText } from '../../utils/symbol-layout';
27
29
  var textFrag = "#define SDF_PX 8.0\n#define EDGE_GAMMA 0.105\n#define FONT_SIZE 48.0\nuniform sampler2D u_sdf_map;\nuniform float u_gamma_scale : 0.5;\n// uniform float u_font_size : 24.0;\nuniform float u_opacity : 1.0;\nuniform vec4 u_stroke_color : [0, 0, 0, 1];\nuniform float u_stroke_width : 2.0;\nuniform float u_halo_blur : 0.5;\nuniform float u_DevicePixelRatio;\n\nvarying vec4 v_color;\nvarying vec2 v_uv;\nvarying float v_gamma_scale;\nvarying float v_fontScale;\n\nvarying mat4 styleMappingMat; // \u4F20\u9012\u4ECE\u7247\u5143\u4E2D\u4F20\u9012\u7684\u6620\u5C04\u6570\u636E\n\n#pragma include \"picking\"\nvoid main() {\n // get style data mapping\n float opacity = styleMappingMat[0][0];\n float strokeWidth = styleMappingMat[0][2];\n vec4 textrueStroke = vec4(\n styleMappingMat[1][0],\n styleMappingMat[1][1],\n styleMappingMat[1][2],\n styleMappingMat[1][3]\n );\n\n // get sdf from atlas\n float dist = texture2D(u_sdf_map, v_uv).a;\n\n // float fontScale = u_font_size / FONT_SIZE;\n\n // lowp float buff = (6.0 - u_stroke_width / v_fontScale) / SDF_PX;\n lowp float buff = (6.0 - strokeWidth / v_fontScale) / SDF_PX;\n highp float gamma = (u_halo_blur * 1.19 / SDF_PX + EDGE_GAMMA) / (v_fontScale * u_gamma_scale) / 1.0;\n\n highp float gamma_scaled = gamma * v_gamma_scale;\n\n highp float alpha = smoothstep(buff - gamma_scaled, buff + gamma_scaled, dist);\n // gl_FragColor = mix(vec4(v_color.rgb, v_color.a * u_opacity), vec4(u_stroke_color.rgb, u_stroke_color.a * u_opacity), smoothstep(0., 0.5, 1. - dist));\n gl_FragColor = mix(vec4(v_color.rgb, v_color.a * opacity), vec4(textrueStroke.rgb, textrueStroke.a * opacity), smoothstep(0., 0.5, 1. - dist));\n gl_FragColor.a= gl_FragColor.a * alpha;\n gl_FragColor = filterColor(gl_FragColor);\n}\n";
28
30
  var textVert = "#define SDF_PX 8.0\n#define EDGE_GAMMA 0.105\n#define FONT_SIZE 24.0\nattribute vec3 a_Position;\nattribute vec2 a_tex;\nattribute vec2 a_textOffsets;\nattribute vec4 a_Color;\nattribute float a_Size;\nattribute float a_Rotate;\n\nuniform vec2 u_sdf_map_size;\nuniform mat4 u_ModelMatrix;\nuniform mat4 u_Mvp;\nuniform float u_raisingHeight: 0.0;\n\nvarying vec2 v_uv;\nvarying float v_gamma_scale;\nvarying vec4 v_color;\nvarying float v_fontScale;\n\nvarying mat4 styleMappingMat; // \u7528\u4E8E\u5C06\u5728\u9876\u70B9\u7740\u8272\u5668\u4E2D\u8BA1\u7B97\u597D\u7684\u6837\u5F0F\u503C\u4F20\u9012\u7ED9\u7247\u5143\n\nuniform float u_opacity : 1;\nuniform float u_stroke_width : 2;\nuniform vec4 u_stroke_color : [0.0, 0.0, 0.0, 0.0];\n\n#pragma include \"styleMapping\"\n#pragma include \"styleMappingCalOpacity\"\n#pragma include \"styleMappingCalStrokeWidth\"\n\n#pragma include \"projection\"\n#pragma include \"picking\"\n\nvoid main() {\n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n styleMappingMat = mat4(\n 0.0, 0.0, 0.0, 0.0, // opacity - strokeOpacity - strokeWidth - empty\n 0.0, 0.0, 0.0, 0.0, // strokeR - strokeG - strokeB - strokeA\n 0.0, 0.0, 0.0, 0.0, // offsets[0] - offsets[1]\n 0.0, 0.0, 0.0, 0.0\n );\n\n float rowCount = u_cellTypeLayout[0][0]; // \u5F53\u524D\u7684\u6570\u636E\u7EB9\u7406\u6709\u51E0\u884C\n float columnCount = u_cellTypeLayout[0][1]; // \u5F53\u770B\u5230\u6570\u636E\u7EB9\u7406\u6709\u51E0\u5217\n float columnWidth = 1.0/columnCount; // \u5217\u5BBD\n float rowHeight = 1.0/rowCount; // \u884C\u9AD8\n float cellCount = calCellCount(); // opacity - strokeOpacity - strokeWidth - stroke - offsets\n float id = a_vertexId; // \u7B2Cn\u4E2A\u9876\u70B9\n float cellCurrentRow = floor(id * cellCount / columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u884C\n float cellCurrentColumn = mod(id * cellCount, columnCount) + 1.0; // \u8D77\u59CB\u70B9\u5728\u7B2C\u51E0\u5217\n \n // cell \u56FA\u5B9A\u987A\u5E8F opacity -> strokeOpacity -> strokeWidth -> stroke ... \n // \u6309\u987A\u5E8F\u4ECE cell \u4E2D\u53D6\u503C\u3001\u82E5\u6CA1\u6709\u5219\u81EA\u52A8\u5F80\u4E0B\u53D6\u503C\n float textureOffset = 0.0; // \u5728 cell \u4E2D\u53D6\u503C\u7684\u504F\u79FB\u91CF\n\n vec2 opacityAndOffset = calOpacityAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][0] = opacityAndOffset.r;\n textureOffset = opacityAndOffset.g;\n\n vec2 strokeWidthAndOffset = calStrokeWidthAndOffset(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset, columnWidth, rowHeight);\n styleMappingMat[0][2] = strokeWidthAndOffset.r;\n textureOffset = strokeWidthAndOffset.g;\n\n vec4 textrueStroke = vec4(-1.0, -1.0, -1.0, -1.0);\n if(hasStroke()) {\n vec2 valueRPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][0] = pos2value(valueRPos, columnWidth, rowHeight); // R\n textureOffset += 1.0;\n\n vec2 valueGPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][1] = pos2value(valueGPos, columnWidth, rowHeight); // G\n textureOffset += 1.0;\n\n vec2 valueBPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][2] = pos2value(valueBPos, columnWidth, rowHeight); // B\n textureOffset += 1.0;\n\n vec2 valueAPos = nextPos(cellCurrentRow, cellCurrentColumn, columnCount, textureOffset);\n styleMappingMat[1][3] = pos2value(valueAPos, columnWidth, rowHeight); // A\n textureOffset += 1.0;\n } else {\n if(u_stroke_color == vec4(0.0)) {\n styleMappingMat[1][0] = v_color.r;\n styleMappingMat[1][1] = v_color.g;\n styleMappingMat[1][2] = v_color.b;\n styleMappingMat[1][3] = v_color.a;\n } else {\n styleMappingMat[1][0] = u_stroke_color.r;\n styleMappingMat[1][1] = u_stroke_color.g;\n styleMappingMat[1][2] = u_stroke_color.b;\n styleMappingMat[1][3] = u_stroke_color.a;\n }\n }\n \n // cal style mapping - \u6570\u636E\u7EB9\u7406\u6620\u5C04\u90E8\u5206\u7684\u8BA1\u7B97\n\n v_color = a_Color;\n v_uv = a_tex / u_sdf_map_size;\n\n // \u6587\u672C\u7F29\u653E\u6BD4\u4F8B\n float fontScale = a_Size / FONT_SIZE;\n v_fontScale = fontScale;\n\n vec4 project_pos = project_position(vec4(a_Position, 1.0));\n // vec4 projected_position = project_common_position_to_clipspace(vec4(project_pos.xyz, 1.0));\n\n highp float angle_sin = sin(a_Rotate);\n highp float angle_cos = cos(a_Rotate);\n mat2 rotation_matrix = mat2(angle_cos, -1.0 * angle_sin, angle_sin, angle_cos);\n \n // gl_Position = vec4(projected_position.xy / projected_position.w + rotation_matrix * a_textOffsets * fontScale / u_ViewportSize * 2.0 * u_DevicePixelRatio, 0.0, 1.0);\n\n float raiseHeight = u_raisingHeight;\n if(u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT || u_CoordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSET) {\n float mapboxZoomScale = 4.0/pow(2.0, 21.0 - u_Zoom);\n raiseHeight = u_raisingHeight * mapboxZoomScale;\n }\n\n vec4 projected_position;\n if(u_CoordinateSystem == COORDINATE_SYSTEM_P20_2) { // gaode2.x\n projected_position = u_Mvp * (vec4(a_Position.xyz + vec3(0.0, 0.0, raiseHeight), 1.0));\n } else { // else\n projected_position = project_common_position_to_clipspace(vec4(project_pos.xyz + vec3(0.0, 0.0, raiseHeight), 1.0));\n }\n\n gl_Position = vec4(\n projected_position.xy / projected_position.w + rotation_matrix * a_textOffsets * fontScale / u_ViewportSize * 2.0 * u_DevicePixelRatio, 0.0, 1.0);\n v_gamma_scale = gl_Position.w;\n setPickingColor(a_PickingColor);\n\n}\n";
@@ -86,12 +88,48 @@ var TextModel = function (_BaseModel) {
86
88
  _defineProperty(_assertThisInitialized(_this), "preTextStyle", {});
87
89
 
88
90
  _defineProperty(_assertThisInitialized(_this), "buildModels", function () {
89
- var _ref = _this.layer.getLayerConfig(),
90
- _ref$mask = _ref.mask,
91
- mask = _ref$mask === void 0 ? false : _ref$mask,
92
- _ref$maskInside = _ref.maskInside,
93
- maskInside = _ref$maskInside === void 0 ? true : _ref$maskInside;
91
+ var _ref = _asyncToGenerator(_regeneratorRuntime.mark(function _callee(callbackModel) {
92
+ var _ref2, _ref2$mask, mask, _ref2$maskInside, maskInside;
93
+
94
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
95
+ while (1) {
96
+ switch (_context.prev = _context.next) {
97
+ case 0:
98
+ _ref2 = _this.layer.getLayerConfig(), _ref2$mask = _ref2.mask, mask = _ref2$mask === void 0 ? false : _ref2$mask, _ref2$maskInside = _ref2.maskInside, maskInside = _ref2$maskInside === void 0 ? true : _ref2$maskInside;
99
+
100
+ _this.mapping();
101
+
102
+ _this.layer.buildLayerModel({
103
+ moduleName: 'pointText',
104
+ vertexShader: textVert,
105
+ fragmentShader: textFrag,
106
+ triangulation: TextTriangulation.bind(_assertThisInitialized(_this)),
107
+ depth: {
108
+ enable: false
109
+ },
110
+ blend: _this.getBlend(),
111
+ stencil: getMask(mask, maskInside)
112
+ }).then(function (model) {
113
+ callbackModel([model]);
114
+ }).catch(function (err) {
115
+ console.warn(err);
116
+ callbackModel([]);
117
+ });
118
+
119
+ case 3:
120
+ case "end":
121
+ return _context.stop();
122
+ }
123
+ }
124
+ }, _callee);
125
+ }));
94
126
 
127
+ return function (_x) {
128
+ return _ref.apply(this, arguments);
129
+ };
130
+ }());
131
+
132
+ _defineProperty(_assertThisInitialized(_this), "mapping", function () {
95
133
  _this.initGlyph();
96
134
 
97
135
  _this.updateTexture();
@@ -99,18 +137,6 @@ var TextModel = function (_BaseModel) {
99
137
  _this.filterGlyphs();
100
138
 
101
139
  _this.reBuildModel();
102
-
103
- return [_this.layer.buildLayerModel({
104
- moduleName: 'pointText',
105
- vertexShader: textVert,
106
- fragmentShader: textFrag,
107
- triangulation: TextTriangulation.bind(_assertThisInitialized(_this)),
108
- depth: {
109
- enable: false
110
- },
111
- blend: _this.getBlend(),
112
- stencil: getMask(mask, maskInside)
113
- })];
114
140
  });
115
141
 
116
142
  return _this;
@@ -119,23 +145,23 @@ var TextModel = function (_BaseModel) {
119
145
  _createClass(TextModel, [{
120
146
  key: "getUninforms",
121
147
  value: function getUninforms() {
122
- var _ref2 = this.layer.getLayerConfig(),
123
- _ref2$opacity = _ref2.opacity,
124
- opacity = _ref2$opacity === void 0 ? 1.0 : _ref2$opacity,
125
- _ref2$stroke = _ref2.stroke,
126
- stroke = _ref2$stroke === void 0 ? '#fff' : _ref2$stroke,
127
- _ref2$strokeWidth = _ref2.strokeWidth,
128
- strokeWidth = _ref2$strokeWidth === void 0 ? 0 : _ref2$strokeWidth,
129
- _ref2$textAnchor = _ref2.textAnchor,
130
- textAnchor = _ref2$textAnchor === void 0 ? 'center' : _ref2$textAnchor,
131
- _ref2$textAllowOverla = _ref2.textAllowOverlap,
132
- textAllowOverlap = _ref2$textAllowOverla === void 0 ? false : _ref2$textAllowOverla,
133
- _ref2$halo = _ref2.halo,
134
- halo = _ref2$halo === void 0 ? 0.5 : _ref2$halo,
135
- _ref2$gamma = _ref2.gamma,
136
- gamma = _ref2$gamma === void 0 ? 2.0 : _ref2$gamma,
137
- _ref2$raisingHeight = _ref2.raisingHeight,
138
- raisingHeight = _ref2$raisingHeight === void 0 ? 0 : _ref2$raisingHeight;
148
+ var _ref3 = this.layer.getLayerConfig(),
149
+ _ref3$opacity = _ref3.opacity,
150
+ opacity = _ref3$opacity === void 0 ? 1.0 : _ref3$opacity,
151
+ _ref3$stroke = _ref3.stroke,
152
+ stroke = _ref3$stroke === void 0 ? '#fff' : _ref3$stroke,
153
+ _ref3$strokeWidth = _ref3.strokeWidth,
154
+ strokeWidth = _ref3$strokeWidth === void 0 ? 0 : _ref3$strokeWidth,
155
+ _ref3$textAnchor = _ref3.textAnchor,
156
+ textAnchor = _ref3$textAnchor === void 0 ? 'center' : _ref3$textAnchor,
157
+ _ref3$textAllowOverla = _ref3.textAllowOverlap,
158
+ textAllowOverlap = _ref3$textAllowOverla === void 0 ? false : _ref3$textAllowOverla,
159
+ _ref3$halo = _ref3.halo,
160
+ halo = _ref3$halo === void 0 ? 0.5 : _ref3$halo,
161
+ _ref3$gamma = _ref3.gamma,
162
+ gamma = _ref3$gamma === void 0 ? 2.0 : _ref3$gamma,
163
+ _ref3$raisingHeight = _ref3.raisingHeight,
164
+ raisingHeight = _ref3$raisingHeight === void 0 ? 0 : _ref3$raisingHeight;
139
165
 
140
166
  var _this$fontService = this.fontService,
141
167
  canvas = _this$fontService.canvas,
@@ -201,28 +227,28 @@ var TextModel = function (_BaseModel) {
201
227
  }
202
228
  }, {
203
229
  key: "initModels",
204
- value: function initModels() {
205
- this.layer.on('remapping', this.buildModels);
230
+ value: function initModels(callbackModel) {
231
+ this.layer.on('remapping', this.mapping);
206
232
  this.extent = this.textExtent();
207
233
 
208
- var _ref3 = this.layer.getLayerConfig(),
209
- _ref3$textAnchor = _ref3.textAnchor,
210
- textAnchor = _ref3$textAnchor === void 0 ? 'center' : _ref3$textAnchor,
211
- _ref3$textAllowOverla = _ref3.textAllowOverlap,
212
- textAllowOverlap = _ref3$textAllowOverla === void 0 ? true : _ref3$textAllowOverla;
234
+ var _ref4 = this.layer.getLayerConfig(),
235
+ _ref4$textAnchor = _ref4.textAnchor,
236
+ textAnchor = _ref4$textAnchor === void 0 ? 'center' : _ref4$textAnchor,
237
+ _ref4$textAllowOverla = _ref4.textAllowOverlap,
238
+ textAllowOverlap = _ref4$textAllowOverla === void 0 ? true : _ref4$textAllowOverla;
213
239
 
214
240
  this.preTextStyle = {
215
241
  textAnchor: textAnchor,
216
242
  textAllowOverlap: textAllowOverlap
217
243
  };
218
- return this.buildModels();
244
+ this.buildModels(callbackModel);
219
245
  }
220
246
  }, {
221
247
  key: "needUpdate",
222
248
  value: function needUpdate() {
223
- var _ref4 = this.layer.getLayerConfig(),
224
- _ref4$textAllowOverla = _ref4.textAllowOverlap,
225
- textAllowOverlap = _ref4$textAllowOverla === void 0 ? false : _ref4$textAllowOverla;
249
+ var _ref5 = this.layer.getLayerConfig(),
250
+ _ref5$textAllowOverla = _ref5.textAllowOverlap,
251
+ textAllowOverlap = _ref5$textAllowOverla === void 0 ? false : _ref5$textAllowOverla;
226
252
 
227
253
  var zoom = this.mapService.getZoom();
228
254
  var extent = this.mapService.getBounds();
@@ -242,7 +268,7 @@ var TextModel = function (_BaseModel) {
242
268
 
243
269
  (_this$texture = this.texture) === null || _this$texture === void 0 ? void 0 : _this$texture.destroy();
244
270
  (_this$dataTexture = this.dataTexture) === null || _this$dataTexture === void 0 ? void 0 : _this$dataTexture.destroy();
245
- this.layer.off('remapping', this.buildModels);
271
+ this.layer.off('remapping', this.mapping);
246
272
  }
247
273
  }, {
248
274
  key: "registerBuiltinAttributes",
@@ -325,11 +351,11 @@ var TextModel = function (_BaseModel) {
325
351
  }, {
326
352
  key: "initTextFont",
327
353
  value: function initTextFont() {
328
- var _ref5 = this.layer.getLayerConfig(),
329
- _ref5$fontWeight = _ref5.fontWeight,
330
- fontWeight = _ref5$fontWeight === void 0 ? '400' : _ref5$fontWeight,
331
- _ref5$fontFamily = _ref5.fontFamily,
332
- fontFamily = _ref5$fontFamily === void 0 ? 'sans-serif' : _ref5$fontFamily;
354
+ var _ref6 = this.layer.getLayerConfig(),
355
+ _ref6$fontWeight = _ref6.fontWeight,
356
+ fontWeight = _ref6$fontWeight === void 0 ? '400' : _ref6$fontWeight,
357
+ _ref6$fontFamily = _ref6.fontFamily,
358
+ fontFamily = _ref6$fontFamily === void 0 ? 'sans-serif' : _ref6$fontFamily;
333
359
 
334
360
  var data = this.layer.getEncodedData();
335
361
  var characterSet = [];
@@ -365,11 +391,11 @@ var TextModel = function (_BaseModel) {
365
391
  }, {
366
392
  key: "initIconFontTex",
367
393
  value: function initIconFontTex() {
368
- var _ref6 = this.layer.getLayerConfig(),
369
- _ref6$fontWeight = _ref6.fontWeight,
370
- fontWeight = _ref6$fontWeight === void 0 ? '400' : _ref6$fontWeight,
371
- _ref6$fontFamily = _ref6.fontFamily,
372
- fontFamily = _ref6$fontFamily === void 0 ? 'sans-serif' : _ref6$fontFamily;
394
+ var _ref7 = this.layer.getLayerConfig(),
395
+ _ref7$fontWeight = _ref7.fontWeight,
396
+ fontWeight = _ref7$fontWeight === void 0 ? '400' : _ref7$fontWeight,
397
+ _ref7$fontFamily = _ref7.fontFamily,
398
+ fontFamily = _ref7$fontFamily === void 0 ? 'sans-serif' : _ref7$fontFamily;
373
399
 
374
400
  var data = this.layer.getEncodedData();
375
401
  var characterSet = [];
@@ -396,11 +422,11 @@ var TextModel = function (_BaseModel) {
396
422
 
397
423
  var mapping = this.fontService.mapping;
398
424
 
399
- var _ref7 = this.layer.getLayerConfig(),
400
- _ref7$spacing = _ref7.spacing,
401
- spacing = _ref7$spacing === void 0 ? 2 : _ref7$spacing,
402
- _ref7$textAnchor = _ref7.textAnchor,
403
- textAnchor = _ref7$textAnchor === void 0 ? 'center' : _ref7$textAnchor;
425
+ var _ref8 = this.layer.getLayerConfig(),
426
+ _ref8$spacing = _ref8.spacing,
427
+ spacing = _ref8$spacing === void 0 ? 2 : _ref8$spacing,
428
+ _ref8$textAnchor = _ref8.textAnchor,
429
+ textAnchor = _ref8$textAnchor === void 0 ? 'center' : _ref8$textAnchor;
404
430
 
405
431
  var data = this.layer.getEncodedData();
406
432
  this.glyphInfo = data.map(function (feature) {
@@ -430,11 +456,11 @@ var TextModel = function (_BaseModel) {
430
456
  value: function filterGlyphs() {
431
457
  var _this3 = this;
432
458
 
433
- var _ref8 = this.layer.getLayerConfig(),
434
- _ref8$padding = _ref8.padding,
435
- padding = _ref8$padding === void 0 ? [4, 4] : _ref8$padding,
436
- _ref8$textAllowOverla = _ref8.textAllowOverlap,
437
- textAllowOverlap = _ref8$textAllowOverla === void 0 ? false : _ref8$textAllowOverla;
459
+ var _ref9 = this.layer.getLayerConfig(),
460
+ _ref9$padding = _ref9.padding,
461
+ padding = _ref9$padding === void 0 ? [4, 4] : _ref9$padding,
462
+ _ref9$textAllowOverla = _ref9.textAllowOverlap,
463
+ textAllowOverlap = _ref9$textAllowOverla === void 0 ? false : _ref9$textAllowOverla;
438
464
 
439
465
  if (textAllowOverlap) {
440
466
  return;
@@ -512,14 +538,16 @@ var TextModel = function (_BaseModel) {
512
538
  }, {
513
539
  key: "reBuildModel",
514
540
  value: function reBuildModel() {
515
- var _ref9 = this.layer.getLayerConfig(),
516
- _ref9$mask = _ref9.mask,
517
- mask = _ref9$mask === void 0 ? false : _ref9$mask,
518
- _ref9$maskInside = _ref9.maskInside,
519
- maskInside = _ref9$maskInside === void 0 ? true : _ref9$maskInside;
541
+ var _this4 = this;
542
+
543
+ var _ref10 = this.layer.getLayerConfig(),
544
+ _ref10$mask = _ref10.mask,
545
+ mask = _ref10$mask === void 0 ? false : _ref10$mask,
546
+ _ref10$maskInside = _ref10.maskInside,
547
+ maskInside = _ref10$maskInside === void 0 ? true : _ref10$maskInside;
520
548
 
521
549
  this.filterGlyphs();
522
- this.layer.models = [this.layer.buildLayerModel({
550
+ this.layer.buildLayerModel({
523
551
  moduleName: 'pointText',
524
552
  vertexShader: textVert,
525
553
  fragmentShader: textFrag,
@@ -529,7 +557,14 @@ var TextModel = function (_BaseModel) {
529
557
  },
530
558
  blend: this.getBlend(),
531
559
  stencil: getMask(mask, maskInside)
532
- })];
560
+ }).then(function (model) {
561
+ _this4.layer.models = [model];
562
+
563
+ _this4.layer.renderLayers();
564
+ }).catch(function (err) {
565
+ console.warn(err);
566
+ _this4.layer.models = [];
567
+ });
533
568
  }
534
569
  }]);
535
570
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/point/models/text.ts"],"names":["AttributeType","gl","boundsContains","getMask","padBounds","BaseModel","CollisionIndex","calculateCentroid","getGlyphQuads","shapeText","TextTriangulation","feature","that","id","vertices","indices","glyphInfoMap","size","centroid","coord","length","glyphQuads","forEach","quad","index","push","tex","x","y","height","tl","width","tr","br","bl","TextModel","layer","getLayerConfig","mask","maskInside","initGlyph","updateTexture","filterGlyphs","reBuildModel","buildLayerModel","moduleName","vertexShader","textVert","fragmentShader","textFrag","triangulation","bind","depth","enable","blend","getBlend","stencil","opacity","stroke","strokeWidth","textAnchor","textAllowOverlap","halo","gamma","raisingHeight","fontService","canvas","mapping","Object","keys","textCount","preTextStyle","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","rowCount","dataTexture","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_raisingHeight","Number","u_opacity","u_stroke_width","u_stroke_color","getStrokeColor","u_sdf_map","texture","u_halo_blur","u_gamma_scale","u_sdf_map_size","on","buildModels","extent","textExtent","zoom","mapService","getZoom","getBounds","flag","Math","abs","currentZoom","destroy","off","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","update","featureIdx","vertex","attributeIdx","rotate","Array","isArray","STATIC_DRAW","bounds","fontWeight","fontFamily","characterSet","item","shape","toString","char","indexOf","setFontOptions","iconfont","spacing","glyphInfo","map","textOffset","shaping","coordinates","originCentroid","version","originCoordinates","padding","rendererService","getViewportSize","collisionIndex","filterData","filter","fontScale","pixels","lngLatToContainer","placeCollisionBox","x1","left","x2","right","y1","top","y2","bottom","anchorPointX","anchorPointY","box","insertCollisionBox","initIconFontTex","initTextFont","generateGlyphLayout","textureHeight","mag","LINEAR","min","models"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport { boundsContains, getMask, padBounds } from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport CollisionIndex from '../../utils/collision-index';\nimport { calculateCentroid } from '../../utils/geo';\nimport {\n getGlyphQuads,\n IGlyphQuad,\n shapeText,\n} from '../../utils/symbol-layout';\nimport textFrag from '../shaders/text_frag.glsl';\nimport textVert from '../shaders/text_vert.glsl';\n\nexport function TextTriangulation(feature: IEncodeFeature) {\n // @ts-ignore\n const that = this as TextModel;\n const id = feature.id as number;\n const vertices: number[] = [];\n const indices: number[] = [];\n\n if (!that.glyphInfoMap || !that.glyphInfoMap[id]) {\n return {\n vertices: [], // [ x, y, z, tex.x,tex.y, offset.x. offset.y]\n indices: [],\n size: 7,\n };\n }\n const centroid = that.glyphInfoMap[id].centroid as number[]; // 计算中心点\n const coord =\n centroid.length === 2 ? [centroid[0], centroid[1], 0] : centroid;\n that.glyphInfoMap[id].glyphQuads.forEach(\n (quad: IGlyphQuad, index: number) => {\n vertices.push(\n ...coord,\n quad.tex.x,\n quad.tex.y + quad.tex.height,\n quad.tl.x,\n quad.tl.y,\n ...coord,\n quad.tex.x + quad.tex.width,\n quad.tex.y + quad.tex.height,\n quad.tr.x,\n quad.tr.y,\n ...coord,\n quad.tex.x + quad.tex.width,\n quad.tex.y,\n quad.br.x,\n quad.br.y,\n ...coord,\n quad.tex.x,\n quad.tex.y,\n quad.bl.x,\n quad.bl.y,\n );\n indices.push(\n 0 + index * 4,\n 1 + index * 4,\n 2 + index * 4,\n 2 + index * 4,\n 3 + index * 4,\n 0 + index * 4,\n );\n },\n );\n return {\n vertices, // [ x, y, z, tex.x,tex.y, offset.x. offset.y]\n indices,\n size: 7,\n };\n}\n\nexport default class TextModel extends BaseModel {\n public glyphInfo: IEncodeFeature[];\n public glyphInfoMap: {\n [key: string]: {\n shaping: any;\n glyphQuads: IGlyphQuad[];\n centroid: number[];\n };\n } = {};\n private texture: ITexture2D;\n private currentZoom: number = -1;\n private extent: [[number, number], [number, number]];\n private textureHeight: number = 0;\n private textCount: number = 0;\n private preTextStyle: Partial<IPointLayerStyleOptions> = {};\n public getUninforms(): IModelUniform {\n const {\n opacity = 1.0,\n stroke = '#fff',\n strokeWidth = 0,\n textAnchor = 'center',\n textAllowOverlap = false,\n halo = 0.5,\n gamma = 2.0,\n raisingHeight = 0,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { canvas, mapping } = this.fontService;\n if (Object.keys(mapping).length !== this.textCount) {\n this.updateTexture();\n this.textCount = Object.keys(mapping).length;\n }\n this.preTextStyle = {\n textAnchor,\n textAllowOverlap,\n };\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n strokeWidth,\n stroke,\n })\n ) {\n this.judgeStyleAttributes({\n opacity,\n strokeWidth,\n stroke,\n });\n\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_raisingHeight: Number(raisingHeight),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 1.0,\n u_stroke_color: this.getStrokeColor(stroke),\n\n u_sdf_map: this.texture,\n u_halo_blur: halo,\n u_gamma_scale: gamma,\n u_sdf_map_size: [canvas.width, canvas.height],\n };\n }\n\n public initModels(): IModel[] {\n this.layer.on('remapping', this.buildModels);\n this.extent = this.textExtent();\n const {\n textAnchor = 'center',\n textAllowOverlap = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.preTextStyle = {\n textAnchor,\n textAllowOverlap,\n };\n return this.buildModels();\n }\n\n public buildModels = () => {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.initGlyph();\n this.updateTexture();\n this.filterGlyphs();\n this.reBuildModel();\n return [\n this.layer.buildLayerModel({\n moduleName: 'pointText',\n vertexShader: textVert,\n fragmentShader: textFrag,\n triangulation: TextTriangulation.bind(this),\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n };\n public needUpdate() {\n const {\n textAllowOverlap = false,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n // textAllowOverlap 发生改变\n const zoom = this.mapService.getZoom();\n const extent = this.mapService.getBounds();\n const flag = boundsContains(this.extent, extent);\n // 文本不能压盖则进行过滤\n if (\n (!textAllowOverlap && (Math.abs(this.currentZoom - zoom) > 1 || !flag)) ||\n textAllowOverlap !== this.preTextStyle.textAllowOverlap\n ) {\n this.reBuildModel();\n return true;\n }\n return false;\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.layer.off('remapping', this.buildModels);\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'rotate',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Rotate',\n buffer: {\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 { rotate = 0 } = feature;\n return Array.isArray(rotate) ? [rotate[0]] : [rotate as number];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'textOffsets',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_textOffsets',\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: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5], vertex[6]];\n },\n },\n });\n\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 = 12 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'textUv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_tex',\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 private textExtent(): [[number, number], [number, number]] {\n const bounds = this.mapService.getBounds();\n return padBounds(bounds, 0.5);\n }\n /**\n * 生成文字纹理(生成文字纹理字典)\n */\n private initTextFont() {\n const {\n fontWeight = '400',\n fontFamily = 'sans-serif',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const data = this.layer.getEncodedData();\n const characterSet: string[] = [];\n data.forEach((item: IEncodeFeature) => {\n let { shape = '' } = item;\n shape = shape.toString();\n for (const char of shape) {\n // 去重\n if (characterSet.indexOf(char) === -1) {\n characterSet.push(char);\n }\n }\n });\n this.fontService.setFontOptions({\n characterSet,\n fontWeight,\n fontFamily,\n iconfont: false,\n });\n }\n\n /**\n * 生成 iconfont 纹理字典\n */\n private initIconFontTex() {\n const {\n fontWeight = '400',\n fontFamily = 'sans-serif',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const data = this.layer.getEncodedData();\n const characterSet: string[] = [];\n data.forEach((item: IEncodeFeature) => {\n let { shape = '' } = item;\n shape = `${shape}`;\n if (characterSet.indexOf(shape) === -1) {\n characterSet.push(shape);\n }\n });\n this.fontService.setFontOptions({\n characterSet,\n fontWeight,\n fontFamily,\n iconfont: true,\n });\n }\n\n /**\n * 生成文字布局(对照文字纹理字典提取对应文字的位置很好信息)\n */\n private generateGlyphLayout(iconfont: boolean) {\n // TODO:更新文字布局\n const { mapping } = this.fontService;\n const {\n spacing = 2,\n textAnchor = 'center',\n // textOffset,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const data = this.layer.getEncodedData();\n\n this.glyphInfo = data.map((feature: IEncodeFeature) => {\n const { shape = '', id, size = 1, textOffset = [0, 0] } = feature;\n\n const shaping = shapeText(\n shape.toString(),\n mapping,\n // @ts-ignore\n size,\n textAnchor,\n 'left',\n spacing,\n textOffset,\n iconfont,\n );\n const glyphQuads = getGlyphQuads(shaping, textOffset, false);\n feature.shaping = shaping;\n feature.glyphQuads = glyphQuads;\n // feature.centroid = calculteCentroid(coordinates);\n\n feature.centroid = calculateCentroid(feature.coordinates);\n\n // 此时地图高德2.0 originCentroid == centroid\n feature.originCentroid =\n feature.version === 'GAODE2.x'\n ? calculateCentroid(feature.originCoordinates)\n : (feature.originCentroid = feature.centroid);\n\n this.glyphInfoMap[id as number] = {\n shaping,\n glyphQuads,\n centroid: calculateCentroid(feature.coordinates),\n };\n return feature;\n });\n }\n /**\n * 文字避让 depend on originCentorid\n */\n private filterGlyphs() {\n const {\n padding = [4, 4],\n textAllowOverlap = false,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n if (textAllowOverlap) {\n // 如果允许文本覆盖\n // this.layer.setEncodedData(this.glyphInfo);\n return;\n }\n this.glyphInfoMap = {};\n this.currentZoom = this.mapService.getZoom();\n this.extent = this.textExtent();\n const { width, height } = this.rendererService.getViewportSize();\n const collisionIndex = new CollisionIndex(width, height);\n const filterData = this.glyphInfo.filter((feature: IEncodeFeature) => {\n const { shaping, id = 0 } = feature;\n // const centroid = feature.centroid as [number, number];\n // const centroid = feature.originCentroid as [number, number];\n const centroid = (feature.version === 'GAODE2.x'\n ? feature.originCentroid\n : feature.centroid) as [number, number];\n const size = feature.size as number;\n const fontScale: number = size / 24;\n const pixels = this.mapService.lngLatToContainer(centroid);\n const { box } = collisionIndex.placeCollisionBox({\n x1: shaping.left * fontScale - padding[0],\n x2: shaping.right * fontScale + padding[0],\n y1: shaping.top * fontScale - padding[1],\n y2: shaping.bottom * fontScale + padding[1],\n anchorPointX: pixels.x,\n anchorPointY: pixels.y,\n });\n if (box && box.length) {\n // TODO:featureIndex\n collisionIndex.insertCollisionBox(box, id);\n return true;\n } else {\n return false;\n }\n });\n filterData.forEach((item) => {\n // @ts-ignore\n this.glyphInfoMap[item.id as number] = item;\n });\n // this.layer.setEncodedData(filterData);\n }\n /**\n * 初始化文字布局\n */\n private initGlyph() {\n const { iconfont = false } = this.layer.getLayerConfig();\n // 1.生成文字纹理(或是生成 iconfont)\n iconfont ? this.initIconFontTex() : this.initTextFont();\n // this.initTextFont();\n\n // 2.生成文字布局\n this.generateGlyphLayout(iconfont);\n }\n /**\n * 更新文字纹理\n */\n private updateTexture() {\n const { createTexture2D } = this.rendererService;\n const { canvas } = this.fontService;\n this.textureHeight = canvas.height;\n if (this.texture) {\n this.texture.destroy();\n }\n\n this.texture = createTexture2D({\n data: canvas,\n mag: gl.LINEAR,\n min: gl.LINEAR,\n width: canvas.width,\n height: canvas.height,\n });\n }\n\n private reBuildModel() {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.filterGlyphs();\n this.layer.models = [\n this.layer.buildLayerModel({\n moduleName: 'pointText',\n vertexShader: textVert,\n fragmentShader: textFrag,\n triangulation: TextTriangulation.bind(this),\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n }),\n ];\n }\n}\n"],"file":"text.js"}
1
+ {"version":3,"sources":["../../../src/point/models/text.ts"],"names":["AttributeType","gl","boundsContains","calculateCentroid","getMask","padBounds","BaseModel","CollisionIndex","getGlyphQuads","shapeText","TextTriangulation","feature","that","id","vertices","indices","glyphInfoMap","size","centroid","coord","length","glyphQuads","forEach","quad","index","push","tex","x","y","height","tl","width","tr","br","bl","TextModel","callbackModel","layer","getLayerConfig","mask","maskInside","mapping","buildLayerModel","moduleName","vertexShader","textVert","fragmentShader","textFrag","triangulation","bind","depth","enable","blend","getBlend","stencil","then","model","catch","err","console","warn","initGlyph","updateTexture","filterGlyphs","reBuildModel","opacity","stroke","strokeWidth","textAnchor","textAllowOverlap","halo","gamma","raisingHeight","fontService","canvas","Object","keys","textCount","preTextStyle","dataTextureTest","dataTextureNeedUpdate","judgeStyleAttributes","encodeData","getEncodedData","calDataFrame","cellLength","cellProperties","data","rowCount","dataTexture","createTexture2D","flipY","format","LUMINANCE","type","FLOAT","u_dataTexture","u_cellTypeLayout","getCellTypeLayout","u_raisingHeight","Number","u_opacity","u_stroke_width","u_stroke_color","getStrokeColor","u_sdf_map","texture","u_halo_blur","u_gamma_scale","u_sdf_map_size","on","extent","textExtent","buildModels","zoom","mapService","getZoom","getBounds","flag","Math","abs","currentZoom","destroy","off","styleAttributeService","registerStyleAttribute","name","Attribute","descriptor","buffer","usage","DYNAMIC_DRAW","update","featureIdx","vertex","attributeIdx","rotate","Array","isArray","STATIC_DRAW","bounds","fontWeight","fontFamily","characterSet","item","shape","toString","char","indexOf","setFontOptions","iconfont","spacing","glyphInfo","map","textOffset","shaping","coordinates","originCentroid","version","originCoordinates","padding","rendererService","getViewportSize","collisionIndex","filterData","filter","fontScale","pixels","lngLatToContainer","placeCollisionBox","x1","left","x2","right","y1","top","y2","bottom","anchorPointX","anchorPointY","box","insertCollisionBox","initIconFontTex","initTextFont","generateGlyphLayout","textureHeight","mag","LINEAR","min","models","renderLayers"],"mappings":"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","sourcesContent":["import {\n AttributeType,\n gl,\n IEncodeFeature,\n IModel,\n IModelUniform,\n ITexture2D,\n} from '@antv/l7-core';\nimport {\n boundsContains,\n calculateCentroid,\n getMask,\n padBounds,\n} from '@antv/l7-utils';\nimport { isNumber } from 'lodash';\nimport BaseModel from '../../core/BaseModel';\nimport { IPointLayerStyleOptions } from '../../core/interface';\nimport CollisionIndex from '../../utils/collision-index';\nimport {\n getGlyphQuads,\n IGlyphQuad,\n shapeText,\n} from '../../utils/symbol-layout';\nimport textFrag from '../shaders/text_frag.glsl';\nimport textVert from '../shaders/text_vert.glsl';\n\nexport function TextTriangulation(feature: IEncodeFeature) {\n // @ts-ignore\n const that = this as TextModel;\n const id = feature.id as number;\n const vertices: number[] = [];\n const indices: number[] = [];\n\n if (!that.glyphInfoMap || !that.glyphInfoMap[id]) {\n return {\n vertices: [], // [ x, y, z, tex.x,tex.y, offset.x. offset.y]\n indices: [],\n size: 7,\n };\n }\n const centroid = that.glyphInfoMap[id].centroid as number[]; // 计算中心点\n const coord =\n centroid.length === 2 ? [centroid[0], centroid[1], 0] : centroid;\n that.glyphInfoMap[id].glyphQuads.forEach(\n (quad: IGlyphQuad, index: number) => {\n vertices.push(\n ...coord,\n quad.tex.x,\n quad.tex.y + quad.tex.height,\n quad.tl.x,\n quad.tl.y,\n ...coord,\n quad.tex.x + quad.tex.width,\n quad.tex.y + quad.tex.height,\n quad.tr.x,\n quad.tr.y,\n ...coord,\n quad.tex.x + quad.tex.width,\n quad.tex.y,\n quad.br.x,\n quad.br.y,\n ...coord,\n quad.tex.x,\n quad.tex.y,\n quad.bl.x,\n quad.bl.y,\n );\n indices.push(\n 0 + index * 4,\n 1 + index * 4,\n 2 + index * 4,\n 2 + index * 4,\n 3 + index * 4,\n 0 + index * 4,\n );\n },\n );\n return {\n vertices, // [ x, y, z, tex.x,tex.y, offset.x. offset.y]\n indices,\n size: 7,\n };\n}\n\nexport default class TextModel extends BaseModel {\n public glyphInfo: IEncodeFeature[];\n public glyphInfoMap: {\n [key: string]: {\n shaping: any;\n glyphQuads: IGlyphQuad[];\n centroid: number[];\n };\n } = {};\n private texture: ITexture2D;\n private currentZoom: number = -1;\n private extent: [[number, number], [number, number]];\n private textureHeight: number = 0;\n private textCount: number = 0;\n private preTextStyle: Partial<IPointLayerStyleOptions> = {};\n public getUninforms(): IModelUniform {\n const {\n opacity = 1.0,\n stroke = '#fff',\n strokeWidth = 0,\n textAnchor = 'center',\n textAllowOverlap = false,\n halo = 0.5,\n gamma = 2.0,\n raisingHeight = 0,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const { canvas, mapping } = this.fontService;\n if (Object.keys(mapping).length !== this.textCount) {\n this.updateTexture();\n this.textCount = Object.keys(mapping).length;\n }\n this.preTextStyle = {\n textAnchor,\n textAllowOverlap,\n };\n\n if (\n this.dataTextureTest &&\n this.dataTextureNeedUpdate({\n opacity,\n strokeWidth,\n stroke,\n })\n ) {\n this.judgeStyleAttributes({\n opacity,\n strokeWidth,\n stroke,\n });\n\n const encodeData = this.layer.getEncodedData();\n const { data, width, height } = this.calDataFrame(\n this.cellLength,\n encodeData,\n this.cellProperties,\n );\n this.rowCount = height; // 当前数据纹理有多少行\n\n this.dataTexture =\n this.cellLength > 0 && data.length > 0\n ? this.createTexture2D({\n flipY: true,\n data,\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width,\n height,\n })\n : this.createTexture2D({\n flipY: true,\n data: [1],\n format: gl.LUMINANCE,\n type: gl.FLOAT,\n width: 1,\n height: 1,\n });\n }\n\n return {\n u_dataTexture: this.dataTexture, // 数据纹理 - 有数据映射的时候纹理中带数据,若没有任何数据映射时纹理是 [1]\n u_cellTypeLayout: this.getCellTypeLayout(),\n u_raisingHeight: Number(raisingHeight),\n\n u_opacity: isNumber(opacity) ? opacity : 1.0,\n u_stroke_width: isNumber(strokeWidth) ? strokeWidth : 1.0,\n u_stroke_color: this.getStrokeColor(stroke),\n\n u_sdf_map: this.texture,\n u_halo_blur: halo,\n u_gamma_scale: gamma,\n u_sdf_map_size: [canvas.width, canvas.height],\n };\n }\n\n public initModels(callbackModel: (models: IModel[]) => void) {\n this.layer.on('remapping', this.mapping);\n this.extent = this.textExtent();\n const {\n textAnchor = 'center',\n textAllowOverlap = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.preTextStyle = {\n textAnchor,\n textAllowOverlap,\n };\n this.buildModels(callbackModel);\n }\n\n public buildModels = async (callbackModel: (models: IModel[]) => void) => {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.mapping();\n\n this.layer\n .buildLayerModel({\n moduleName: 'pointText',\n vertexShader: textVert,\n fragmentShader: textFrag,\n triangulation: TextTriangulation.bind(this),\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n callbackModel([model]);\n })\n .catch((err) => {\n console.warn(err);\n callbackModel([]);\n });\n };\n public needUpdate() {\n const {\n textAllowOverlap = false,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n // textAllowOverlap 发生改变\n const zoom = this.mapService.getZoom();\n const extent = this.mapService.getBounds();\n const flag = boundsContains(this.extent, extent);\n // 文本不能压盖则进行过滤\n if (\n (!textAllowOverlap && (Math.abs(this.currentZoom - zoom) > 1 || !flag)) ||\n textAllowOverlap !== this.preTextStyle.textAllowOverlap\n ) {\n this.reBuildModel();\n return true;\n }\n return false;\n }\n\n public clearModels() {\n this.texture?.destroy();\n this.dataTexture?.destroy();\n this.layer.off('remapping', this.mapping);\n }\n protected registerBuiltinAttributes() {\n this.styleAttributeService.registerStyleAttribute({\n name: 'rotate',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_Rotate',\n buffer: {\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 { rotate = 0 } = feature;\n return Array.isArray(rotate) ? [rotate[0]] : [rotate as number];\n },\n },\n });\n this.styleAttributeService.registerStyleAttribute({\n name: 'textOffsets',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_textOffsets',\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: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[5], vertex[6]];\n },\n },\n });\n\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 = 12 } = feature;\n return Array.isArray(size) ? [size[0]] : [size as number];\n },\n },\n });\n\n // point layer size;\n this.styleAttributeService.registerStyleAttribute({\n name: 'textUv',\n type: AttributeType.Attribute,\n descriptor: {\n name: 'a_tex',\n buffer: {\n // give the WebGL driver a hint that this buffer may change\n usage: gl.DYNAMIC_DRAW,\n data: [],\n type: gl.FLOAT,\n },\n size: 2,\n update: (\n feature: IEncodeFeature,\n featureIdx: number,\n vertex: number[],\n attributeIdx: number,\n ) => {\n return [vertex[3], vertex[4]];\n },\n },\n });\n }\n\n private mapping = () => {\n this.initGlyph();\n this.updateTexture();\n this.filterGlyphs();\n this.reBuildModel();\n };\n private textExtent(): [[number, number], [number, number]] {\n const bounds = this.mapService.getBounds();\n return padBounds(bounds, 0.5);\n }\n /**\n * 生成文字纹理(生成文字纹理字典)\n */\n private initTextFont() {\n const {\n fontWeight = '400',\n fontFamily = 'sans-serif',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const data = this.layer.getEncodedData();\n const characterSet: string[] = [];\n data.forEach((item: IEncodeFeature) => {\n let { shape = '' } = item;\n shape = shape.toString();\n for (const char of shape) {\n // 去重\n if (characterSet.indexOf(char) === -1) {\n characterSet.push(char);\n }\n }\n });\n this.fontService.setFontOptions({\n characterSet,\n fontWeight,\n fontFamily,\n iconfont: false,\n });\n }\n\n /**\n * 生成 iconfont 纹理字典\n */\n private initIconFontTex() {\n const {\n fontWeight = '400',\n fontFamily = 'sans-serif',\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const data = this.layer.getEncodedData();\n const characterSet: string[] = [];\n data.forEach((item: IEncodeFeature) => {\n let { shape = '' } = item;\n shape = `${shape}`;\n if (characterSet.indexOf(shape) === -1) {\n characterSet.push(shape);\n }\n });\n this.fontService.setFontOptions({\n characterSet,\n fontWeight,\n fontFamily,\n iconfont: true,\n });\n }\n\n /**\n * 生成文字布局(对照文字纹理字典提取对应文字的位置很好信息)\n */\n private generateGlyphLayout(iconfont: boolean) {\n // TODO:更新文字布局\n const { mapping } = this.fontService;\n const {\n spacing = 2,\n textAnchor = 'center',\n // textOffset,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n const data = this.layer.getEncodedData();\n\n this.glyphInfo = data.map((feature: IEncodeFeature) => {\n const { shape = '', id, size = 1, textOffset = [0, 0] } = feature;\n\n const shaping = shapeText(\n shape.toString(),\n mapping,\n // @ts-ignore\n size,\n textAnchor,\n 'left',\n spacing,\n textOffset,\n iconfont,\n );\n const glyphQuads = getGlyphQuads(shaping, textOffset, false);\n feature.shaping = shaping;\n feature.glyphQuads = glyphQuads;\n // feature.centroid = calculteCentroid(coordinates);\n\n feature.centroid = calculateCentroid(feature.coordinates);\n\n // 此时地图高德2.0 originCentroid == centroid\n feature.originCentroid =\n feature.version === 'GAODE2.x'\n ? calculateCentroid(feature.originCoordinates)\n : (feature.originCentroid = feature.centroid);\n\n this.glyphInfoMap[id as number] = {\n shaping,\n glyphQuads,\n centroid: calculateCentroid(feature.coordinates),\n };\n return feature;\n });\n }\n /**\n * 文字避让 depend on originCentorid\n */\n private filterGlyphs() {\n const {\n padding = [4, 4],\n textAllowOverlap = false,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n if (textAllowOverlap) {\n // 如果允许文本覆盖\n // this.layer.setEncodedData(this.glyphInfo);\n return;\n }\n this.glyphInfoMap = {};\n this.currentZoom = this.mapService.getZoom();\n this.extent = this.textExtent();\n const { width, height } = this.rendererService.getViewportSize();\n const collisionIndex = new CollisionIndex(width, height);\n const filterData = this.glyphInfo.filter((feature: IEncodeFeature) => {\n const { shaping, id = 0 } = feature;\n // const centroid = feature.centroid as [number, number];\n // const centroid = feature.originCentroid as [number, number];\n const centroid = (feature.version === 'GAODE2.x'\n ? feature.originCentroid\n : feature.centroid) as [number, number];\n const size = feature.size as number;\n const fontScale: number = size / 24;\n const pixels = this.mapService.lngLatToContainer(centroid);\n const { box } = collisionIndex.placeCollisionBox({\n x1: shaping.left * fontScale - padding[0],\n x2: shaping.right * fontScale + padding[0],\n y1: shaping.top * fontScale - padding[1],\n y2: shaping.bottom * fontScale + padding[1],\n anchorPointX: pixels.x,\n anchorPointY: pixels.y,\n });\n if (box && box.length) {\n // TODO:featureIndex\n collisionIndex.insertCollisionBox(box, id);\n return true;\n } else {\n return false;\n }\n });\n filterData.forEach((item) => {\n // @ts-ignore\n this.glyphInfoMap[item.id as number] = item;\n });\n // this.layer.setEncodedData(filterData);\n }\n /**\n * 初始化文字布局\n */\n private initGlyph() {\n const { iconfont = false } = this.layer.getLayerConfig();\n // 1.生成文字纹理(或是生成 iconfont)\n iconfont ? this.initIconFontTex() : this.initTextFont();\n // this.initTextFont();\n\n // 2.生成文字布局\n this.generateGlyphLayout(iconfont);\n }\n /**\n * 更新文字纹理\n */\n private updateTexture() {\n const { createTexture2D } = this.rendererService;\n const { canvas } = this.fontService;\n this.textureHeight = canvas.height;\n if (this.texture) {\n this.texture.destroy();\n }\n\n this.texture = createTexture2D({\n data: canvas,\n mag: gl.LINEAR,\n min: gl.LINEAR,\n width: canvas.width,\n height: canvas.height,\n });\n }\n\n private reBuildModel() {\n const {\n mask = false,\n maskInside = true,\n } = this.layer.getLayerConfig() as IPointLayerStyleOptions;\n this.filterGlyphs();\n this.layer\n .buildLayerModel({\n moduleName: 'pointText',\n vertexShader: textVert,\n fragmentShader: textFrag,\n triangulation: TextTriangulation.bind(this),\n depth: { enable: false },\n blend: this.getBlend(),\n stencil: getMask(mask, maskInside),\n })\n .then((model) => {\n this.layer.models = [model];\n this.layer.renderLayers();\n })\n .catch((err) => {\n console.warn(err);\n this.layer.models = [];\n });\n }\n}\n"],"file":"text.js"}
@@ -10,22 +10,13 @@ export default class FillModel extends BaseModel {
10
10
  };
11
11
  elements: IElements;
12
12
  };
13
- initModels(): IModel[];
13
+ initModels(callbackModel: (models: IModel[]) => void): void;
14
14
  /**
15
15
  * 计算等面积点图层(unit meter)笛卡尔坐标标度与世界坐标标度的比例
16
16
  * @returns
17
17
  */
18
18
  calMeter2Coord(): void;
19
- buildModels(): IModel[];
20
- /**
21
- * 根据 animateOption 的值返回对应的 shader 代码
22
- * @returns
23
- */
24
- getShaders(): {
25
- frag: string;
26
- vert: string;
27
- type: string;
28
- };
19
+ buildModels(callbackModel: (models: IModel[]) => void): void;
29
20
  clearModels(): void;
30
21
  protected registerBuiltinAttributes(): void;
31
22
  }
@@ -124,7 +124,7 @@ var FillModel = function (_BaseModel) {
124
124
  }
125
125
  }, {
126
126
  key: "initModels",
127
- value: function initModels() {
127
+ value: function initModels(callbackModel) {
128
128
  var _ref2 = this.layer.getLayerConfig(),
129
129
  _ref2$unit = _ref2.unit,
130
130
  unit = _ref2$unit === void 0 ? 'l7size' : _ref2$unit;
@@ -136,7 +136,7 @@ var FillModel = function (_BaseModel) {
136
136
  this.calMeter2Coord();
137
137
  }
138
138
 
139
- return this.buildModels();
139
+ this.buildModels(callbackModel);
140
140
  }
141
141
  }, {
142
142
  key: "calMeter2Coord",
@@ -173,43 +173,40 @@ var FillModel = function (_BaseModel) {
173
173
  }
174
174
  }, {
175
175
  key: "buildModels",
176
- value: function buildModels() {
176
+ value: function buildModels(callbackModel) {
177
177
  var _ref3 = this.layer.getLayerConfig(),
178
178
  _ref3$mask = _ref3.mask,
179
179
  mask = _ref3$mask === void 0 ? false : _ref3$mask,
180
180
  _ref3$maskInside = _ref3.maskInside,
181
- maskInside = _ref3$maskInside === void 0 ? true : _ref3$maskInside;
182
-
183
- var _this$getShaders = this.getShaders(),
184
- frag = _this$getShaders.frag,
185
- vert = _this$getShaders.vert,
186
- type = _this$getShaders.type;
181
+ maskInside = _ref3$maskInside === void 0 ? true : _ref3$maskInside,
182
+ _ref3$workerEnabled = _ref3.workerEnabled,
183
+ workerEnabled = _ref3$workerEnabled === void 0 ? false : _ref3$workerEnabled;
187
184
 
188
185
  this.layer.triangulation = PointFillTriangulation;
189
- return [this.layer.buildLayerModel({
190
- moduleName: type,
191
- vertexShader: vert,
192
- fragmentShader: frag,
186
+ this.layer.buildLayerModel({
187
+ moduleName: 'pointTile',
188
+ vertexShader: point_tile_vert,
189
+ fragmentShader: point_tile_frag,
193
190
  triangulation: PointFillTriangulation,
194
191
  depth: {
195
192
  enable: false
196
193
  },
197
- blend: this.getBlend(),
198
- stencil: getMask(mask, maskInside),
199
194
  cull: {
200
195
  enable: true,
201
196
  face: getCullFace(this.mapService.version)
197
+ },
198
+ blend: this.getBlend(),
199
+ stencil: getMask(mask, maskInside),
200
+ workerEnabled: workerEnabled,
201
+ workerOptions: {
202
+ modelType: 'pointTile'
202
203
  }
203
- })];
204
- }
205
- }, {
206
- key: "getShaders",
207
- value: function getShaders() {
208
- return {
209
- frag: point_tile_frag,
210
- vert: point_tile_vert,
211
- type: 'point_fill_tile'
212
- };
204
+ }).then(function (model) {
205
+ callbackModel([model]);
206
+ }).catch(function (err) {
207
+ console.warn(err);
208
+ callbackModel([]);
209
+ });
213
210
  }
214
211
  }, {
215
212
  key: "clearModels",