@deck.gl/carto 8.10.0-alpha.1 → 8.10.0-alpha.4

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 (261) hide show
  1. package/LICENSE +1 -1
  2. package/dist/cartoRasterTile-worker.js +1084 -0
  3. package/dist/cartoSpatialTile-worker.js +1469 -0
  4. package/dist/cartoVectorTile-worker.js +1727 -0
  5. package/dist/dist.dev.js +1740 -883
  6. package/dist/es5/api/layer-map.js +3 -7
  7. package/dist/es5/api/layer-map.js.map +1 -1
  8. package/dist/es5/api/maps-api-common.js +0 -1
  9. package/dist/es5/api/maps-api-common.js.map +1 -1
  10. package/dist/es5/api/maps-v3-client.js +5 -20
  11. package/dist/es5/api/maps-v3-client.js.map +1 -1
  12. package/dist/es5/index.js +74 -6
  13. package/dist/es5/index.js.map +1 -1
  14. package/dist/es5/layers/carto-layer.js +7 -5
  15. package/dist/es5/layers/carto-layer.js.map +1 -1
  16. package/dist/es5/layers/h3-tile-layer.js +23 -41
  17. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  18. package/dist/es5/layers/quadbin-layer.js +3 -0
  19. package/dist/es5/layers/quadbin-layer.js.map +1 -1
  20. package/dist/es5/layers/quadbin-tile-layer.js +21 -42
  21. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
  22. package/dist/es5/layers/raster-tile-layer.js +23 -39
  23. package/dist/es5/layers/raster-tile-layer.js.map +1 -1
  24. package/dist/es5/layers/schema/carto-raster-tile-loader.js +13 -4
  25. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -1
  26. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +14 -8
  27. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  28. package/dist/es5/layers/schema/carto-tile.js +1 -1
  29. package/dist/es5/layers/schema/carto-tile.js.map +1 -1
  30. package/dist/es5/layers/schema/carto-vector-tile-loader.js +64 -4
  31. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
  32. package/dist/es5/layers/utils.js +29 -0
  33. package/dist/es5/layers/utils.js.map +1 -0
  34. package/dist/es5/layers/{carto-tile-layer.js → vector-tile-layer.js} +49 -24
  35. package/dist/es5/layers/vector-tile-layer.js.map +1 -0
  36. package/dist/es5/sources/base-source.js +100 -0
  37. package/dist/es5/sources/base-source.js.map +1 -0
  38. package/dist/es5/sources/common.js +48 -0
  39. package/dist/es5/sources/common.js.map +1 -0
  40. package/dist/es5/sources/h3-query-source.js +58 -0
  41. package/dist/es5/sources/h3-query-source.js.map +1 -0
  42. package/dist/es5/sources/h3-table-source.js +58 -0
  43. package/dist/es5/sources/h3-table-source.js.map +1 -0
  44. package/dist/es5/sources/h3-tileset-source.js +43 -0
  45. package/dist/es5/sources/h3-tileset-source.js.map +1 -0
  46. package/dist/es5/sources/index.js +94 -0
  47. package/dist/es5/sources/index.js.map +1 -0
  48. package/dist/es5/sources/quadbin-query-source.js +58 -0
  49. package/dist/es5/sources/quadbin-query-source.js.map +1 -0
  50. package/dist/es5/sources/quadbin-table-source.js +58 -0
  51. package/dist/es5/sources/quadbin-table-source.js.map +1 -0
  52. package/dist/es5/sources/quadbin-tileset-source.js +43 -0
  53. package/dist/es5/sources/quadbin-tileset-source.js.map +1 -0
  54. package/dist/es5/sources/raster-source.js +43 -0
  55. package/dist/es5/sources/raster-source.js.map +1 -0
  56. package/dist/es5/sources/utils.js +136 -0
  57. package/dist/es5/sources/utils.js.map +1 -0
  58. package/dist/es5/sources/vector-query-source.js +52 -0
  59. package/dist/es5/sources/vector-query-source.js.map +1 -0
  60. package/dist/es5/sources/vector-table-source.js +52 -0
  61. package/dist/es5/sources/vector-table-source.js.map +1 -0
  62. package/dist/es5/sources/vector-tileset-source.js +43 -0
  63. package/dist/es5/sources/vector-tileset-source.js.map +1 -0
  64. package/dist/es5/utils.js +5 -0
  65. package/dist/es5/utils.js.map +1 -1
  66. package/dist/es5/workers/cartoRasterTile.js +10 -0
  67. package/dist/es5/workers/cartoRasterTile.js.map +1 -0
  68. package/dist/es5/workers/cartoSpatialTile.js +10 -0
  69. package/dist/es5/workers/cartoSpatialTile.js.map +1 -0
  70. package/dist/es5/workers/cartoVectorTile.js +10 -0
  71. package/dist/es5/workers/cartoVectorTile.js.map +1 -0
  72. package/dist/esm/api/layer-map.js +3 -7
  73. package/dist/esm/api/layer-map.js.map +1 -1
  74. package/dist/esm/api/maps-api-common.js +0 -1
  75. package/dist/esm/api/maps-api-common.js.map +1 -1
  76. package/dist/esm/api/maps-v3-client.js +2 -12
  77. package/dist/esm/api/maps-v3-client.js.map +1 -1
  78. package/dist/esm/index.js +5 -4
  79. package/dist/esm/index.js.map +1 -1
  80. package/dist/esm/layers/carto-layer.js +5 -3
  81. package/dist/esm/layers/carto-layer.js.map +1 -1
  82. package/dist/esm/layers/h3-tile-layer.js +21 -37
  83. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  84. package/dist/esm/layers/quadbin-layer.js +4 -1
  85. package/dist/esm/layers/quadbin-layer.js.map +1 -1
  86. package/dist/esm/layers/quadbin-tile-layer.js +18 -38
  87. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
  88. package/dist/esm/layers/raster-tile-layer.js +19 -34
  89. package/dist/esm/layers/raster-tile-layer.js.map +1 -1
  90. package/dist/esm/layers/schema/carto-raster-tile-loader.js +12 -4
  91. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -1
  92. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +13 -8
  93. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  94. package/dist/esm/layers/schema/carto-tile.js +1 -1
  95. package/dist/esm/layers/schema/carto-tile.js.map +1 -1
  96. package/dist/esm/layers/schema/carto-vector-tile-loader.js +63 -4
  97. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
  98. package/dist/esm/layers/utils.js +14 -0
  99. package/dist/esm/layers/utils.js.map +1 -0
  100. package/dist/esm/layers/{carto-tile-layer.js → vector-tile-layer.js} +39 -15
  101. package/dist/esm/layers/vector-tile-layer.js.map +1 -0
  102. package/dist/esm/sources/base-source.js +49 -0
  103. package/dist/esm/sources/base-source.js.map +1 -0
  104. package/dist/esm/sources/common.js +26 -0
  105. package/dist/esm/sources/common.js.map +1 -0
  106. package/dist/esm/sources/h3-query-source.js +32 -0
  107. package/dist/esm/sources/h3-query-source.js.map +1 -0
  108. package/dist/esm/sources/h3-table-source.js +32 -0
  109. package/dist/esm/sources/h3-table-source.js.map +1 -0
  110. package/dist/esm/sources/h3-tileset-source.js +14 -0
  111. package/dist/esm/sources/h3-tileset-source.js.map +1 -0
  112. package/dist/esm/sources/index.js +12 -0
  113. package/dist/esm/sources/index.js.map +1 -0
  114. package/dist/esm/sources/quadbin-query-source.js +32 -0
  115. package/dist/esm/sources/quadbin-query-source.js.map +1 -0
  116. package/dist/esm/sources/quadbin-table-source.js +32 -0
  117. package/dist/esm/sources/quadbin-table-source.js.map +1 -0
  118. package/dist/esm/sources/quadbin-tileset-source.js +14 -0
  119. package/dist/esm/sources/quadbin-tileset-source.js.map +1 -0
  120. package/dist/esm/sources/raster-source.js +14 -0
  121. package/dist/esm/sources/raster-source.js.map +1 -0
  122. package/dist/esm/sources/utils.js +69 -0
  123. package/dist/esm/sources/utils.js.map +1 -0
  124. package/dist/esm/sources/vector-query-source.js +25 -0
  125. package/dist/esm/sources/vector-query-source.js.map +1 -0
  126. package/dist/esm/sources/vector-table-source.js +25 -0
  127. package/dist/esm/sources/vector-table-source.js.map +1 -0
  128. package/dist/esm/sources/vector-tileset-source.js +14 -0
  129. package/dist/esm/sources/vector-tileset-source.js.map +1 -0
  130. package/dist/esm/utils.js +3 -0
  131. package/dist/esm/utils.js.map +1 -1
  132. package/dist/esm/workers/cartoRasterTile.js +4 -0
  133. package/dist/esm/workers/cartoRasterTile.js.map +1 -0
  134. package/dist/esm/workers/cartoSpatialTile.js +4 -0
  135. package/dist/esm/workers/cartoSpatialTile.js.map +1 -0
  136. package/dist/esm/workers/cartoVectorTile.js +4 -0
  137. package/dist/esm/workers/cartoVectorTile.js.map +1 -0
  138. package/dist.min.js +25 -25
  139. package/package.json +12 -9
  140. package/src/api/layer-map.ts +4 -8
  141. package/src/api/maps-api-common.ts +0 -1
  142. package/src/api/maps-v3-client.ts +6 -5
  143. package/src/index.ts +34 -5
  144. package/src/layers/carto-layer.ts +8 -2
  145. package/src/layers/h3-tile-layer.ts +22 -35
  146. package/src/layers/quadbin-layer.ts +2 -1
  147. package/src/layers/quadbin-tile-layer.ts +19 -33
  148. package/src/layers/raster-tile-layer.ts +22 -26
  149. package/src/layers/schema/carto-raster-tile-loader.ts +26 -6
  150. package/src/layers/schema/carto-spatial-tile-loader.ts +25 -11
  151. package/src/layers/schema/carto-tile.ts +1 -1
  152. package/src/layers/schema/carto-vector-tile-loader.ts +79 -9
  153. package/src/layers/utils.ts +11 -0
  154. package/src/layers/{carto-tile-layer.ts → vector-tile-layer.ts} +40 -21
  155. package/src/sources/base-source.ts +55 -0
  156. package/src/sources/common.ts +132 -0
  157. package/src/sources/h3-query-source.ts +45 -0
  158. package/src/sources/h3-table-source.ts +46 -0
  159. package/src/sources/h3-tileset-source.ts +16 -0
  160. package/src/sources/index.ts +32 -0
  161. package/src/sources/quadbin-query-source.ts +46 -0
  162. package/src/sources/quadbin-table-source.ts +46 -0
  163. package/src/sources/quadbin-tileset-source.ts +16 -0
  164. package/src/sources/raster-source.ts +16 -0
  165. package/src/sources/utils.ts +63 -0
  166. package/src/sources/vector-query-source.ts +23 -0
  167. package/src/sources/vector-table-source.ts +23 -0
  168. package/src/sources/vector-tileset-source.ts +16 -0
  169. package/src/utils.ts +6 -0
  170. package/src/workers/cartoRasterTile.ts +4 -0
  171. package/src/workers/cartoSpatialTile.ts +4 -0
  172. package/src/workers/cartoVectorTile.ts +4 -0
  173. package/typed/api/layer-map.d.ts +2 -3
  174. package/typed/api/layer-map.d.ts.map +1 -1
  175. package/typed/api/maps-api-common.d.ts +0 -1
  176. package/typed/api/maps-api-common.d.ts.map +1 -1
  177. package/typed/api/maps-v3-client.d.ts +0 -3
  178. package/typed/api/maps-v3-client.d.ts.map +1 -1
  179. package/typed/index.d.ts +6 -4
  180. package/typed/index.d.ts.map +1 -1
  181. package/typed/layers/carto-layer.d.ts.map +1 -1
  182. package/typed/layers/h3-tile-layer.d.ts +5 -8
  183. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  184. package/typed/layers/quadbin-layer.d.ts.map +1 -1
  185. package/typed/layers/quadbin-tile-layer.d.ts +5 -9
  186. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
  187. package/typed/layers/raster-tile-layer.d.ts +6 -10
  188. package/typed/layers/raster-tile-layer.d.ts.map +1 -1
  189. package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
  190. package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
  191. package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
  192. package/typed/layers/utils.d.ts +5 -0
  193. package/typed/layers/utils.d.ts.map +1 -0
  194. package/typed/layers/{carto-tile-layer.d.ts → vector-tile-layer.d.ts} +11 -7
  195. package/typed/layers/vector-tile-layer.d.ts.map +1 -0
  196. package/typed/sources/base-source.d.ts +4 -0
  197. package/typed/sources/base-source.d.ts.map +1 -0
  198. package/typed/sources/common.d.ts +116 -0
  199. package/typed/sources/common.d.ts.map +1 -0
  200. package/typed/sources/h3-query-source.d.ts +5 -0
  201. package/typed/sources/h3-query-source.d.ts.map +1 -0
  202. package/typed/sources/h3-table-source.d.ts +5 -0
  203. package/typed/sources/h3-table-source.d.ts.map +1 -0
  204. package/typed/sources/h3-tileset-source.d.ts +5 -0
  205. package/typed/sources/h3-tileset-source.d.ts.map +1 -0
  206. package/typed/sources/index.d.ts +23 -0
  207. package/typed/sources/index.d.ts.map +1 -0
  208. package/typed/sources/quadbin-query-source.d.ts +5 -0
  209. package/typed/sources/quadbin-query-source.d.ts.map +1 -0
  210. package/typed/sources/quadbin-table-source.d.ts +5 -0
  211. package/typed/sources/quadbin-table-source.d.ts.map +1 -0
  212. package/typed/sources/quadbin-tileset-source.d.ts +5 -0
  213. package/typed/sources/quadbin-tileset-source.d.ts.map +1 -0
  214. package/typed/sources/raster-source.d.ts +5 -0
  215. package/typed/sources/raster-source.d.ts.map +1 -0
  216. package/typed/sources/utils.d.ts +15 -0
  217. package/typed/sources/utils.d.ts.map +1 -0
  218. package/typed/sources/vector-query-source.d.ts +5 -0
  219. package/typed/sources/vector-query-source.d.ts.map +1 -0
  220. package/typed/sources/vector-table-source.d.ts +5 -0
  221. package/typed/sources/vector-table-source.d.ts.map +1 -0
  222. package/typed/sources/vector-tileset-source.d.ts +5 -0
  223. package/typed/sources/vector-tileset-source.d.ts.map +1 -0
  224. package/typed/utils.d.ts +1 -0
  225. package/typed/utils.d.ts.map +1 -1
  226. package/typed/workers/cartoRasterTile.d.ts +2 -0
  227. package/typed/workers/cartoRasterTile.d.ts.map +1 -0
  228. package/typed/workers/cartoSpatialTile.d.ts +2 -0
  229. package/typed/workers/cartoSpatialTile.d.ts.map +1 -0
  230. package/typed/workers/cartoVectorTile.d.ts +2 -0
  231. package/typed/workers/cartoVectorTile.d.ts.map +1 -0
  232. package/dist/es5/layers/carto-tile-layer.js.map +0 -1
  233. package/dist/esm/layers/carto-tile-layer.js.map +0 -1
  234. package/typed/api/index.js +0 -3
  235. package/typed/api/layer-map.js +0 -264
  236. package/typed/api/maps-api-common.js +0 -50
  237. package/typed/api/maps-client.js +0 -125
  238. package/typed/api/maps-v3-client.js +0 -304
  239. package/typed/api/parseMap.js +0 -178
  240. package/typed/basemap.js +0 -9
  241. package/typed/config.js +0 -35
  242. package/typed/index.js +0 -10
  243. package/typed/layers/carto-layer.js +0 -173
  244. package/typed/layers/carto-tile-layer.d.ts.map +0 -1
  245. package/typed/layers/carto-tile-layer.js +0 -105
  246. package/typed/layers/h3-tile-layer.js +0 -47
  247. package/typed/layers/h3-tileset-2d.js +0 -85
  248. package/typed/layers/quadkey-tile-layer.d.ts +0 -21
  249. package/typed/layers/quadkey-tile-layer.d.ts.map +0 -1
  250. package/typed/layers/quadkey-tile-layer.js +0 -42
  251. package/typed/layers/quadkey-tileset-2d.d.ts +0 -15
  252. package/typed/layers/quadkey-tileset-2d.d.ts.map +0 -1
  253. package/typed/layers/quadkey-tileset-2d.js +0 -36
  254. package/typed/layers/schema/carto-tile.js +0 -161
  255. package/typed/layers/spatial-index-tile-layer.js +0 -40
  256. package/typed/style/color-bins-style.js +0 -12
  257. package/typed/style/color-categories-style.js +0 -16
  258. package/typed/style/color-continuous-style.js +0 -12
  259. package/typed/style/palette.js +0 -62
  260. package/typed/style/utils.js +0 -15
  261. package/typed/utils.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["CompositeLayer","QuadbinLayer","QuadbinTileset2D","SpatialIndexTileLayer","hexToBigInt","renderSubLayers","props","data","length","isBigInt","id","getQuadbin","d","defaultProps","aggregationResLevel","QuadbinTileLayer","initializeState","setState","tileJSON","updateState","changeFlags","dataChanged","tiles","renderLayers","state","maxZoom","parseInt","maxresolution","TilesetClass","loadOptions","getLoadOptions","cartoSpatialTile","scheme","mimeType"],"mappings":";AAAA,SACEA,cADF,QAOO,eAPP;AAQA,OAAOC,YAAP,MAA8C,iBAA9C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,SAAQC,WAAR,QAA0B,SAA1B;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AACtC,QAAM;AAACC,IAAAA;AAAD,MAASD,KAAf;AACA,MAAI,CAACC,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B,OAAO,IAAP;AAC3B,QAAMC,QAAQ,GAAG,OAAOF,IAAI,CAAC,CAAD,CAAJ,CAAQG,EAAf,KAAsB,QAAvC;AACA,SAAO,IAAIT,YAAJ,CAAiBK,KAAjB,EAAwB;AAC7BK,IAAAA,UAAU,EAAEF,QAAQ,GAAGG,CAAC,IAAIA,CAAC,CAACF,EAAV,GAAeE,CAAC,IAAIR,WAAW,CAACQ,CAAC,CAACF,EAAH;AADtB,GAAxB,CAAP;AAGD,CAPM;AASP,MAAMG,YAAiD,GAAG;AACxDC,EAAAA,mBAAmB,EAAE;AADmC,CAA1D;AAcA,eAAe,MAAMC,gBAAN,SAGLf,cAHK,CAGgE;AAAA;AAAA;;AAAA;AAAA;;AAQ7EgB,EAAAA,eAAe,GAAS;AACtB,SAAKC,QAAL,CAAc;AAACV,MAAAA,IAAI,EAAE,IAAP;AAAaW,MAAAA,QAAQ,EAAE;AAAvB,KAAd;AACD;;AAEDC,EAAAA,WAAW,CAAC;AAACC,IAAAA;AAAD,GAAD,EAA8C;AACvD,QAAIA,WAAW,CAACC,WAAhB,EAA6B;AAC3B,UAAI;AAACd,QAAAA;AAAD,UAAS,KAAKD,KAAlB;AACA,YAAMY,QAAQ,GAAGX,IAAjB;AACAA,MAAAA,IAAI,GAAIW,QAAD,CAAkBI,KAAzB;AACA,WAAKL,QAAL,CAAc;AAACV,QAAAA,IAAD;AAAOW,QAAAA;AAAP,OAAd;AACD;AACF;;AAEDK,EAAAA,YAAY,GAA8B;AACxC,UAAM;AAAChB,MAAAA,IAAD;AAAOW,MAAAA;AAAP,QAAmB,KAAKM,KAA9B;AACA,UAAMC,OAAO,GAAGC,QAAQ,CAACR,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAES,aAAX,CAAxB;AACA,WAAO,CACL,IAAIxB,qBAAJ,CAA0B,KAAKG,KAA/B,EAAsC;AACpCI,MAAAA,EAAE,+BAAwB,KAAKJ,KAAL,CAAWI,EAAnC,CADkC;AAEpCH,MAAAA,IAFoC;AAIpCqB,MAAAA,YAAY,EAAE1B,gBAJsB;AAKpCG,MAAAA,eALoC;AAMpCoB,MAAAA,OANoC;AAOpCI,MAAAA,WAAW,EAAE,EACX,GAAG,KAAKC,cAAL,EADQ;AAEXC,QAAAA,gBAAgB,EAAE;AAACC,UAAAA,MAAM,EAAE;AAAT,SAFP;AAGXC,QAAAA,QAAQ,EAAE;AAHC;AAPuB,KAAtC,CADK,CAAP;AAeD;;AAvC4E;;gBAH1DlB,gB,eAIA,kB;;gBAJAA,gB,kBAKGF,Y","sourcesContent":["import {\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayersList,\n UpdateParameters,\n DefaultProps\n} from '@deck.gl/core';\nimport QuadbinLayer, {QuadbinLayerProps} from './quadbin-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {hexToBigInt} from 'quadbin';\n\nexport const renderSubLayers = props => {\n const {data} = props;\n if (!data || !data.length) return null;\n const isBigInt = typeof data[0].id === 'bigint';\n return new QuadbinLayer(props, {\n getQuadbin: isBigInt ? d => d.id : d => hexToBigInt(d.id)\n });\n};\n\nconst defaultProps: DefaultProps<QuadbinTileLayerProps> = {\n aggregationResLevel: 6\n};\n\n/** All properties supported by QuadbinTileLayer. */\nexport type QuadbinTileLayerProps<DataT = any> = _QuadbinTileLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by QuadbinTileLayer. */\ntype _QuadbinTileLayerProps<DataT> = QuadbinLayerProps<DataT> & {\n data: string;\n aggregationResLevel?: number;\n};\n\nexport default class QuadbinTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_QuadbinTileLayerProps<DataT>>> {\n static layerName = 'QuadbinTileLayer';\n static defaultProps = defaultProps;\n\n state!: {\n tileJSON: any;\n data: any;\n };\n initializeState(): void {\n this.setState({data: null, tileJSON: null});\n }\n\n updateState({changeFlags}: UpdateParameters<this>): void {\n if (changeFlags.dataChanged) {\n let {data} = this.props;\n const tileJSON = data;\n data = (tileJSON as any).tiles;\n this.setState({data, tileJSON});\n }\n }\n\n renderLayers(): Layer | null | LayersList {\n const {data, tileJSON} = this.state;\n const maxZoom = parseInt(tileJSON?.maxresolution);\n return [\n new SpatialIndexTileLayer(this.props, {\n id: `quadbin-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n maxZoom,\n loadOptions: {\n ...this.getLoadOptions(),\n cartoSpatialTile: {scheme: 'quadbin'},\n mimeType: 'application/vnd.carto-spatial-tile'\n }\n })\n ];\n }\n}\n"],"file":"quadbin-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["CompositeLayer","QuadbinLayer","QuadbinTileset2D","SpatialIndexTileLayer","hexToBigInt","TilejsonPropType","injectAccessToken","renderSubLayers","props","data","length","isBigInt","id","getQuadbin","d","defaultProps","aggregationResLevel","QuadbinTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","cartoSpatialTile","scheme","renderLayers","tiles","maxresolution","maxZoom","TilesetClass"],"mappings":";AAAA,SAAQA,cAAR,QAAmF,eAAnF;AACA,OAAOC,YAAP,MAA8C,iBAA9C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,SAAQC,WAAR,QAA0B,SAA1B;AACA,SAAQC,gBAAR,QAAoD,mBAApD;AACA,SAAQC,iBAAR,QAAgC,SAAhC;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AACtC,QAAM;AAACC,IAAAA;AAAD,MAASD,KAAf;AACA,MAAI,CAACC,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B,OAAO,IAAP;AAC3B,QAAMC,QAAQ,GAAG,OAAOF,IAAI,CAAC,CAAD,CAAJ,CAAQG,EAAf,KAAsB,QAAvC;AACA,SAAO,IAAIX,YAAJ,CAAiBO,KAAjB,EAAwB;AAC7BK,IAAAA,UAAU,EAAEF,QAAQ,GAAGG,CAAC,IAAIA,CAAC,CAACF,EAAV,GAAeE,CAAC,IAAIV,WAAW,CAACU,CAAC,CAACF,EAAH;AADtB,GAAxB,CAAP;AAGD,CAPM;AASP,MAAMG,YAAiD,GAAG;AACxDC,EAAAA,mBAAmB,EAAE,CADmC;AAExDP,EAAAA,IAAI,EAAEJ;AAFkD,CAA1D;AAeA,eAAe,MAAMY,gBAAN,SAGLjB,cAHK,CAGgE;AAI7EkB,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKZ,KAAL,CAAWC,IAA5B;AACAH,IAAAA,iBAAiB,CAACa,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACAF,IAAAA,WAAW,CAACG,gBAAZ,GAA+B,EAAC,GAAGH,WAAW,CAACG,gBAAhB;AAAkCC,MAAAA,MAAM,EAAE;AAA1C,KAA/B;AACA,WAAOJ,WAAP;AACD;;AAEDK,EAAAA,YAAY,GAA8B;AACxC,UAAMJ,QAAQ,GAAG,KAAKZ,KAAL,CAAWC,IAA5B;AACA,QAAI,CAACW,QAAL,EAAe,OAAO,IAAP;AAEf,UAAM;AAACK,MAAAA,KAAK,EAAEhB,IAAR;AAAciB,MAAAA,aAAa,EAAEC;AAA7B,QAAwCP,QAA9C;AACA,WAAO,CAEL,IAAIjB,qBAAJ,CAA0B,KAAKK,KAA/B,EAAsC;AACpCI,MAAAA,EAAE,+BAAwB,KAAKJ,KAAL,CAAWI,EAAnC,CADkC;AAEpCH,MAAAA,IAFoC;AAIpCmB,MAAAA,YAAY,EAAE1B,gBAJsB;AAKpCK,MAAAA,eALoC;AAMpCoB,MAAAA,OANoC;AAOpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AAPuB,KAAtC,CAFK,CAAP;AAYD;;AA7B4E;;gBAH1DD,gB,eAIA,kB;;gBAJAA,gB,kBAKGF,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';\nimport QuadbinLayer, {QuadbinLayerProps} from './quadbin-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {hexToBigInt} from 'quadbin';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nexport const renderSubLayers = props => {\n const {data} = props;\n if (!data || !data.length) return null;\n const isBigInt = typeof data[0].id === 'bigint';\n return new QuadbinLayer(props, {\n getQuadbin: isBigInt ? d => d.id : d => hexToBigInt(d.id)\n });\n};\n\nconst defaultProps: DefaultProps<QuadbinTileLayerProps> = {\n aggregationResLevel: 6,\n data: TilejsonPropType\n};\n\n/** All properties supported by QuadbinTileLayer. */\nexport type QuadbinTileLayerProps<DataT = any> = _QuadbinTileLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by QuadbinTileLayer. */\ntype _QuadbinTileLayerProps<DataT> = Omit<QuadbinLayerProps<DataT>, 'data'> & {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n aggregationResLevel?: number;\n};\n\nexport default class QuadbinTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_QuadbinTileLayerProps<DataT>>> {\n static layerName = 'QuadbinTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.cartoSpatialTile = {...loadOptions.cartoSpatialTile, scheme: 'quadbin'};\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as CartoTilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, maxresolution: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `quadbin-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"quadbin-tile-layer.js"}
@@ -3,6 +3,8 @@ import { CompositeLayer } from '@deck.gl/core';
3
3
  import RasterLayer from './raster-layer';
4
4
  import QuadbinTileset2D from './quadbin-tileset-2d';
5
5
  import SpatialIndexTileLayer from './spatial-index-tile-layer';
6
+ import { TilejsonPropType } from '../sources/common';
7
+ import { injectAccessToken } from './utils';
6
8
  export const renderSubLayers = props => {
7
9
  var _props$tile, _props$tile$index;
8
10
 
@@ -12,50 +14,33 @@ export const renderSubLayers = props => {
12
14
  tileIndex
13
15
  });
14
16
  };
17
+ const defaultProps = {
18
+ data: TilejsonPropType
19
+ };
15
20
  export default class RasterTileLayer extends CompositeLayer {
16
- constructor(...args) {
17
- super(...args);
18
-
19
- _defineProperty(this, "state", void 0);
20
- }
21
-
22
- initializeState() {
23
- this.setState({
24
- data: null,
25
- tileJSON: null
26
- });
27
- }
28
-
29
- updateState({
30
- changeFlags
31
- }) {
32
- if (changeFlags.dataChanged) {
33
- let {
34
- data
35
- } = this.props;
36
- const tileJSON = data;
37
- data = tileJSON.tiles;
38
- this.setState({
39
- data,
40
- tileJSON
41
- });
42
- }
21
+ getLoadOptions() {
22
+ const loadOptions = super.getLoadOptions() || {};
23
+ const tileJSON = this.props.data;
24
+ injectAccessToken(loadOptions, tileJSON.accessToken);
25
+ return loadOptions;
43
26
  }
44
27
 
45
28
  renderLayers() {
29
+ const tileJSON = this.props.data;
30
+ if (!tileJSON) return null;
46
31
  const {
47
- data,
48
- tileJSON
49
- } = this.state;
50
- const minZoom = parseInt(tileJSON === null || tileJSON === void 0 ? void 0 : tileJSON.minzoom);
51
- const maxZoom = parseInt(tileJSON === null || tileJSON === void 0 ? void 0 : tileJSON.maxzoom);
32
+ tiles: data,
33
+ minzoom: minZoom,
34
+ maxzoom: maxZoom
35
+ } = tileJSON;
52
36
  return [new SpatialIndexTileLayer(this.props, {
53
37
  id: "raster-tile-layer-".concat(this.props.id),
54
38
  data,
55
39
  TilesetClass: QuadbinTileset2D,
56
40
  renderSubLayers,
57
41
  minZoom,
58
- maxZoom
42
+ maxZoom,
43
+ loadOptions: this.getLoadOptions()
59
44
  })];
60
45
  }
61
46
 
@@ -63,5 +48,5 @@ export default class RasterTileLayer extends CompositeLayer {
63
48
 
64
49
  _defineProperty(RasterTileLayer, "layerName", 'RasterTileLayer');
65
50
 
66
- _defineProperty(RasterTileLayer, "defaultProps", {});
51
+ _defineProperty(RasterTileLayer, "defaultProps", defaultProps);
67
52
  //# sourceMappingURL=raster-tile-layer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/raster-tile-layer.ts"],"names":["CompositeLayer","RasterLayer","QuadbinTileset2D","SpatialIndexTileLayer","renderSubLayers","props","tileIndex","tile","index","q","RasterTileLayer","initializeState","setState","data","tileJSON","updateState","changeFlags","dataChanged","tiles","renderLayers","state","minZoom","parseInt","minzoom","maxZoom","maxzoom","id","TilesetClass"],"mappings":";AAAA,SACEA,cADF,QAMO,eANP;AAOA,OAAOC,WAAP,MAA4C,gBAA5C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AAAA;;AACtC,QAAMC,SAAS,kBAAGD,KAAK,CAACE,IAAT,qEAAG,YAAYC,KAAf,sDAAG,kBAAmBC,CAArC;AACA,MAAI,CAACH,SAAL,EAAgB,OAAO,IAAP;AAChB,SAAO,IAAIL,WAAJ,CAAgBI,KAAhB,EAAuB;AAACC,IAAAA;AAAD,GAAvB,CAAP;AACD,CAJM;AAcP,eAAe,MAAMI,eAAN,SAGLV,cAHK,CAG+D;AAAA;AAAA;;AAAA;AAAA;;AAK5EW,EAAAA,eAAe,GAAS;AACtB,SAAKC,QAAL,CAAc;AAACC,MAAAA,IAAI,EAAE,IAAP;AAAaC,MAAAA,QAAQ,EAAE;AAAvB,KAAd;AACD;;AAEDC,EAAAA,WAAW,CAAC;AAACC,IAAAA;AAAD,GAAD,EAA8C;AACvD,QAAIA,WAAW,CAACC,WAAhB,EAA6B;AAC3B,UAAI;AAACJ,QAAAA;AAAD,UAAS,KAAKR,KAAlB;AACA,YAAMS,QAAQ,GAAGD,IAAjB;AACAA,MAAAA,IAAI,GAAIC,QAAD,CAAkBI,KAAzB;AACA,WAAKN,QAAL,CAAc;AAACC,QAAAA,IAAD;AAAOC,QAAAA;AAAP,OAAd;AACD;AACF;;AAEDK,EAAAA,YAAY,GAA8B;AACxC,UAAM;AAACN,MAAAA,IAAD;AAAOC,MAAAA;AAAP,QAAmB,KAAKM,KAA9B;AACA,UAAMC,OAAO,GAAGC,QAAQ,CAACR,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAES,OAAX,CAAxB;AACA,UAAMC,OAAO,GAAGF,QAAQ,CAACR,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAEW,OAAX,CAAxB;AACA,WAAO,CACL,IAAItB,qBAAJ,CAA0B,KAAKE,KAA/B,EAAsC;AACpCqB,MAAAA,EAAE,8BAAuB,KAAKrB,KAAL,CAAWqB,EAAlC,CADkC;AAEpCb,MAAAA,IAFoC;AAIpCc,MAAAA,YAAY,EAAEzB,gBAJsB;AAKpCE,MAAAA,eALoC;AAMpCiB,MAAAA,OANoC;AAOpCG,MAAAA;AAPoC,KAAtC,CADK,CAAP;AAWD;;AAjC2E;;gBAHzDd,e,eAIA,iB;;gBAJAA,e,kBAKG,E","sourcesContent":["import {\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayersList,\n UpdateParameters\n} from '@deck.gl/core';\nimport RasterLayer, {RasterLayerProps} from './raster-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\n\nexport const renderSubLayers = props => {\n const tileIndex = props.tile?.index?.q;\n if (!tileIndex) return null;\n return new RasterLayer(props, {tileIndex});\n};\n\n/** All properties supported by RasterTileLayer. */\nexport type RasterTileLayerProps<DataT = any> = _RasterTileLayerProps<DataT> & CompositeLayerProps;\n\n/** Properties added by RasterTileLayer. */\ntype _RasterTileLayerProps<DataT> = RasterLayerProps<DataT> & {\n data: string;\n};\n\nexport default class RasterTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_RasterTileLayerProps<DataT>>> {\n static layerName = 'RasterTileLayer';\n static defaultProps = {};\n\n state!: {tileJSON: any; data: any};\n initializeState(): void {\n this.setState({data: null, tileJSON: null});\n }\n\n updateState({changeFlags}: UpdateParameters<this>): void {\n if (changeFlags.dataChanged) {\n let {data} = this.props;\n const tileJSON = data;\n data = (tileJSON as any).tiles;\n this.setState({data, tileJSON});\n }\n }\n\n renderLayers(): Layer | null | LayersList {\n const {data, tileJSON} = this.state;\n const minZoom = parseInt(tileJSON?.minzoom);\n const maxZoom = parseInt(tileJSON?.maxzoom);\n return [\n new SpatialIndexTileLayer(this.props, {\n id: `raster-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n minZoom,\n maxZoom\n })\n ];\n }\n}\n"],"file":"raster-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/raster-tile-layer.ts"],"names":["CompositeLayer","RasterLayer","QuadbinTileset2D","SpatialIndexTileLayer","TilejsonPropType","injectAccessToken","renderSubLayers","props","tileIndex","tile","index","q","defaultProps","data","RasterTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","renderLayers","tiles","minzoom","minZoom","maxzoom","maxZoom","id","TilesetClass"],"mappings":";AAAA,SAAQA,cAAR,QAAmF,eAAnF;AACA,OAAOC,WAAP,MAA4C,gBAA5C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,SAAQC,gBAAR,QAAoD,mBAApD;AACA,SAAQC,iBAAR,QAAgC,SAAhC;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AAAA;;AACtC,QAAMC,SAAS,kBAAGD,KAAK,CAACE,IAAT,qEAAG,YAAYC,KAAf,sDAAG,kBAAmBC,CAArC;AACA,MAAI,CAACH,SAAL,EAAgB,OAAO,IAAP;AAChB,SAAO,IAAIP,WAAJ,CAAgBM,KAAhB,EAAuB;AAACC,IAAAA;AAAD,GAAvB,CAAP;AACD,CAJM;AAMP,MAAMI,YAAgD,GAAG;AACvDC,EAAAA,IAAI,EAAET;AADiD,CAAzD;AAYA,eAAe,MAAMU,eAAN,SAGLd,cAHK,CAG+D;AAI5Ee,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKV,KAAL,CAAWM,IAA5B;AACAR,IAAAA,iBAAiB,CAACW,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACA,WAAOF,WAAP;AACD;;AAEDG,EAAAA,YAAY,GAA8B;AACxC,UAAMF,QAAQ,GAAG,KAAKV,KAAL,CAAWM,IAA5B;AACA,QAAI,CAACI,QAAL,EAAe,OAAO,IAAP;AAEf,UAAM;AAACG,MAAAA,KAAK,EAAEP,IAAR;AAAcQ,MAAAA,OAAO,EAAEC,OAAvB;AAAgCC,MAAAA,OAAO,EAAEC;AAAzC,QAAoDP,QAA1D;AACA,WAAO,CAEL,IAAId,qBAAJ,CAA0B,KAAKI,KAA/B,EAAsC;AACpCkB,MAAAA,EAAE,8BAAuB,KAAKlB,KAAL,CAAWkB,EAAlC,CADkC;AAEpCZ,MAAAA,IAFoC;AAIpCa,MAAAA,YAAY,EAAExB,gBAJsB;AAKpCI,MAAAA,eALoC;AAMpCgB,MAAAA,OANoC;AAOpCE,MAAAA,OAPoC;AAQpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AARuB,KAAtC,CAFK,CAAP;AAaD;;AA7B2E;;gBAHzDD,e,eAIA,iB;;gBAJAA,e,kBAKGF,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList} from '@deck.gl/core';\nimport RasterLayer, {RasterLayerProps} from './raster-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nexport const renderSubLayers = props => {\n const tileIndex = props.tile?.index?.q;\n if (!tileIndex) return null;\n return new RasterLayer(props, {tileIndex});\n};\n\nconst defaultProps: DefaultProps<RasterTileLayerProps> = {\n data: TilejsonPropType\n};\n\n/** All properties supported by RasterTileLayer. */\nexport type RasterTileLayerProps<DataT = any> = _RasterTileLayerProps<DataT> & CompositeLayerProps;\n\n/** Properties added by RasterTileLayer. */\ntype _RasterTileLayerProps<DataT> = Omit<RasterLayerProps<DataT>, 'data'> & {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n};\n\nexport default class RasterTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_RasterTileLayerProps<DataT>>> {\n static layerName = 'RasterTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as CartoTilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, minzoom: minZoom, maxzoom: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `raster-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n minZoom,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"raster-tile-layer.js"}
@@ -1,17 +1,25 @@
1
1
  import { TileReader } from './carto-raster-tile';
2
2
  import { parsePbf } from './tile-loader-utils';
3
+ import { getWorkerUrl } from '../../utils';
4
+ const VERSION = typeof "8.10.0-alpha.4" !== 'undefined' ? "8.10.0-alpha.4" : 'latest';
5
+ const id = 'cartoRasterTile';
6
+ const DEFAULT_OPTIONS = {
7
+ cartoRasterTile: {
8
+ workerUrl: getWorkerUrl(id, VERSION)
9
+ }
10
+ };
3
11
  const CartoRasterTileLoader = {
4
12
  name: 'CARTO Raster Tile',
5
- version: '1',
6
- id: 'cartoRasterTile',
13
+ version: VERSION,
14
+ id,
7
15
  module: 'carto',
8
16
  extensions: ['pbf'],
9
17
  mimeTypes: ['application/vnd.carto-raster-tile'],
10
18
  category: 'geometry',
11
- worker: false,
12
19
  parse: async (arrayBuffer, options) => parseCartoRasterTile(arrayBuffer, options),
13
20
  parseSync: parseCartoRasterTile,
14
- options: {}
21
+ worker: true,
22
+ options: DEFAULT_OPTIONS
15
23
  };
16
24
 
17
25
  function parseCartoRasterTile(arrayBuffer, options) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-raster-tile-loader.ts"],"names":["TileReader","parsePbf","CartoRasterTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoRasterTile","parseSync","tile","bands","blockHeight","blockWidth","numericProps","i","length","data","cells","properties"],"mappings":"AAEA,SAAQA,UAAR,QAAyB,qBAAzB;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AAGA,MAAMC,qBAAuC,GAAG;AAC9CC,EAAAA,IAAI,EAAE,mBADwC;AAE9CC,EAAAA,OAAO,EAAE,GAFqC;AAG9CC,EAAAA,EAAE,EAAE,iBAH0C;AAI9CC,EAAAA,MAAM,EAAE,OAJsC;AAK9CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALkC;AAM9CC,EAAAA,SAAS,EAAE,CAAC,mCAAD,CANmC;AAO9CC,EAAAA,QAAQ,EAAE,UAPoC;AAQ9CC,EAAAA,MAAM,EAAE,KARsC;AAS9CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCC,oBAAoB,CAACF,WAAD,EAAcC,OAAd,CATb;AAU9CE,EAAAA,SAAS,EAAED,oBAVmC;AAW9CD,EAAAA,OAAO,EAAE;AAXqC,CAAhD;;AAuBA,SAASC,oBAAT,CAA8BF,WAA9B,EAAwDC,OAAxD,EAAgG;AAC9F,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMI,IAAI,GAAGf,QAAQ,CAACW,WAAD,EAAcZ,UAAd,CAArB;AACA,QAAM;AAACiB,IAAAA,KAAD;AAAQC,IAAAA,WAAR;AAAqBC,IAAAA;AAArB,MAAmCH,IAAzC;AACA,QAAMI,YAAY,GAAG,EAArB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,KAAK,CAACK,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,UAAM;AAAClB,MAAAA,IAAD;AAAOoB,MAAAA;AAAP,QAAeN,KAAK,CAACI,CAAD,CAA1B;AACAD,IAAAA,YAAY,CAACjB,IAAD,CAAZ,GAAqBoB,IAArB;AACD;;AACD,SAAO;AAACJ,IAAAA,UAAD;AAAaD,IAAAA,WAAb;AAA0BM,IAAAA,KAAK,EAAE;AAACJ,MAAAA,YAAD;AAAeK,MAAAA,UAAU,EAAE;AAA3B;AAAjC,GAAP;AACD;;AAED,eAAevB,qBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {TileReader} from './carto-raster-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {NumericProps, Properties} from './spatialjson-utils';\n\nconst CartoRasterTileLoader: LoaderWithParser = {\n name: 'CARTO Raster Tile',\n version: '1',\n id: 'cartoRasterTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-raster-tile'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoRasterTile(arrayBuffer, options),\n parseSync: parseCartoRasterTile,\n options: {}\n};\n\nexport type Raster = {\n blockWidth: number;\n blockHeight: number;\n cells: {\n numericProps: NumericProps;\n properties: Properties[];\n };\n};\n\nfunction parseCartoRasterTile(arrayBuffer: ArrayBuffer, options?: LoaderOptions): Raster | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n const {bands, blockHeight, blockWidth} = tile;\n const numericProps = {};\n for (let i = 0; i < bands.length; i++) {\n const {name, data} = bands[i];\n numericProps[name] = data;\n }\n return {blockWidth, blockHeight, cells: {numericProps, properties: []}};\n}\n\nexport default CartoRasterTileLoader;\n"],"file":"carto-raster-tile-loader.js"}
1
+ {"version":3,"sources":["../../../../src/layers/schema/carto-raster-tile-loader.ts"],"names":["TileReader","parsePbf","getWorkerUrl","VERSION","id","DEFAULT_OPTIONS","cartoRasterTile","workerUrl","CartoRasterTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoRasterTile","parseSync","worker","tile","bands","blockHeight","blockWidth","numericProps","i","length","data","cells","properties"],"mappings":"AAEA,SAAQA,UAAR,QAAyB,qBAAzB;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AACA,SAAQC,YAAR,QAA2B,aAA3B;AAGA,MAAMC,OAAO,GAAG,4BAAuB,WAAvB,sBAAmD,QAAnE;AACA,MAAMC,EAAE,GAAG,iBAAX;AAQA,MAAMC,eAA6C,GAAG;AACpDC,EAAAA,eAAe,EAAE;AACfC,IAAAA,SAAS,EAAEL,YAAY,CAACE,EAAD,EAAKD,OAAL;AADR;AADmC,CAAtD;AAMA,MAAMK,qBAAuC,GAAG;AAC9CC,EAAAA,IAAI,EAAE,mBADwC;AAE9CC,EAAAA,OAAO,EAAEP,OAFqC;AAG9CC,EAAAA,EAH8C;AAI9CO,EAAAA,MAAM,EAAE,OAJsC;AAK9CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALkC;AAM9CC,EAAAA,SAAS,EAAE,CAAC,mCAAD,CANmC;AAO9CC,EAAAA,QAAQ,EAAE,UAPoC;AAQ9CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KACLC,oBAAoB,CAACF,WAAD,EAAcC,OAAd,CATwB;AAU9CE,EAAAA,SAAS,EAAED,oBAVmC;AAW9CE,EAAAA,MAAM,EAAE,IAXsC;AAY9CH,EAAAA,OAAO,EAAEZ;AAZqC,CAAhD;;AAwBA,SAASa,oBAAT,CACEF,WADF,EAEEC,OAFF,EAGiB;AACf,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMK,IAAI,GAAGpB,QAAQ,CAACe,WAAD,EAAchB,UAAd,CAArB;AACA,QAAM;AAACsB,IAAAA,KAAD;AAAQC,IAAAA,WAAR;AAAqBC,IAAAA;AAArB,MAAmCH,IAAzC;AACA,QAAMI,YAAY,GAAG,EAArB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,KAAK,CAACK,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,UAAM;AAACjB,MAAAA,IAAD;AAAOmB,MAAAA;AAAP,QAAeN,KAAK,CAACI,CAAD,CAA1B;AACAD,IAAAA,YAAY,CAAChB,IAAD,CAAZ,GAAqBmB,IAArB;AACD;;AACD,SAAO;AAACJ,IAAAA,UAAD;AAAaD,IAAAA,WAAb;AAA0BM,IAAAA,KAAK,EAAE;AAACJ,MAAAA,YAAD;AAAeK,MAAAA,UAAU,EAAE;AAA3B;AAAjC,GAAP;AACD;;AAED,eAAetB,qBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {TileReader} from './carto-raster-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\nimport {NumericProps, Properties} from './spatialjson-utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoRasterTile';\n\ntype CartoRasterTileLoaderOptions = LoaderOptions & {\n cartoRasterTile?: {\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoRasterTileLoaderOptions = {\n cartoRasterTile: {\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoRasterTileLoader: LoaderWithParser = {\n name: 'CARTO Raster Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-raster-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoRasterTileLoaderOptions) =>\n parseCartoRasterTile(arrayBuffer, options),\n parseSync: parseCartoRasterTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nexport type Raster = {\n blockWidth: number;\n blockHeight: number;\n cells: {\n numericProps: NumericProps;\n properties: Properties[];\n };\n};\n\nfunction parseCartoRasterTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoRasterTileLoaderOptions\n): Raster | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n const {bands, blockHeight, blockWidth} = tile;\n const numericProps = {};\n for (let i = 0; i < bands.length; i++) {\n const {name, data} = bands[i];\n numericProps[name] = data;\n }\n return {blockWidth, blockHeight, cells: {numericProps, properties: []}};\n}\n\nexport default CartoRasterTileLoader;\n"],"file":"carto-raster-tile-loader.js"}
@@ -1,22 +1,27 @@
1
1
  import { TileReader } from './carto-spatial-tile';
2
2
  import { parsePbf } from './tile-loader-utils';
3
+ import { getWorkerUrl } from '../../utils';
3
4
  import { binaryToSpatialjson } from './spatialjson-utils';
5
+ const VERSION = typeof "8.10.0-alpha.4" !== 'undefined' ? "8.10.0-alpha.4" : 'latest';
6
+ const id = 'cartoSpatialTile';
7
+ const DEFAULT_OPTIONS = {
8
+ cartoSpatialTile: {
9
+ scheme: 'quadbin',
10
+ workerUrl: getWorkerUrl(id, VERSION)
11
+ }
12
+ };
4
13
  const CartoSpatialTileLoader = {
5
14
  name: 'CARTO Spatial Tile',
6
- version: '1',
7
- id: 'cartoSpatialTile',
15
+ version: VERSION,
16
+ id,
8
17
  module: 'carto',
9
18
  extensions: ['pbf'],
10
19
  mimeTypes: ['application/vnd.carto-spatial-tile'],
11
20
  category: 'geometry',
12
- worker: false,
13
21
  parse: async (arrayBuffer, options) => parseCartoSpatialTile(arrayBuffer, options),
14
22
  parseSync: parseCartoSpatialTile,
15
- options: {
16
- cartoSpatialTile: {
17
- scheme: 'quadbin'
18
- }
19
- }
23
+ worker: true,
24
+ options: DEFAULT_OPTIONS
20
25
  };
21
26
 
22
27
  function parseCartoSpatialTile(arrayBuffer, options) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile-loader.ts"],"names":["TileReader","parsePbf","binaryToSpatialjson","CartoSpatialTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoSpatialTile","parseSync","cartoSpatialTile","scheme","tile","cells","data"],"mappings":"AAEA,SAAcA,UAAd,QAA+B,sBAA/B;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AACA,SAAqBC,mBAArB,QAA4D,qBAA5D;AAEA,MAAMC,sBAAwC,GAAG;AAC/CC,EAAAA,IAAI,EAAE,oBADyC;AAE/CC,EAAAA,OAAO,EAAE,GAFsC;AAG/CC,EAAAA,EAAE,EAAE,kBAH2C;AAI/CC,EAAAA,MAAM,EAAE,OAJuC;AAK/CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALmC;AAM/CC,EAAAA,SAAS,EAAE,CAAC,oCAAD,CANoC;AAO/CC,EAAAA,QAAQ,EAAE,UAPqC;AAQ/CC,EAAAA,MAAM,EAAE,KARuC;AAS/CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCC,qBAAqB,CAACF,WAAD,EAAcC,OAAd,CATb;AAU/CE,EAAAA,SAAS,EAAED,qBAVoC;AAW/CD,EAAAA,OAAO,EAAE;AACPG,IAAAA,gBAAgB,EAAE;AAChBC,MAAAA,MAAM,EAAE;AADQ;AADX;AAXsC,CAAjD;;AAkBA,SAASH,qBAAT,CACEF,WADF,EAEEC,OAFF,EAGsB;AAAA;;AACpB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMM,IAAU,GAAGlB,QAAQ,CAACY,WAAD,EAAcb,UAAd,CAA3B;AAEA,QAAM;AAACoB,IAAAA;AAAD,MAAUD,IAAhB;AAEA,QAAMD,MAAM,GAAGJ,OAAH,aAAGA,OAAH,gDAAGA,OAAO,CAAEG,gBAAZ,0DAAG,sBAA2BC,MAA1C;AACA,QAAMG,IAAI,GAAG;AAACD,IAAAA,KAAD;AAAQF,IAAAA;AAAR,GAAb;AAEA,SAAOhB,mBAAmB,CAACmB,IAAD,CAA1B;AACD;;AAED,eAAelB,sBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {Tile, TileReader} from './carto-spatial-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {IndexScheme, binaryToSpatialjson, SpatialJson} from './spatialjson-utils';\n\nconst CartoSpatialTileLoader: LoaderWithParser = {\n name: 'CARTO Spatial Tile',\n version: '1',\n id: 'cartoSpatialTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-spatial-tile'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoSpatialTile(arrayBuffer, options),\n parseSync: parseCartoSpatialTile,\n options: {\n cartoSpatialTile: {\n scheme: 'quadbin'\n } as {scheme: IndexScheme}\n }\n};\n\nfunction parseCartoSpatialTile(\n arrayBuffer: ArrayBuffer,\n options?: LoaderOptions\n): SpatialJson | null {\n if (!arrayBuffer) return null;\n const tile: Tile = parsePbf(arrayBuffer, TileReader);\n\n const {cells} = tile;\n // @ts-expect-error\n const scheme = options?.cartoSpatialTile?.scheme;\n const data = {cells, scheme};\n\n return binaryToSpatialjson(data);\n}\n\nexport default CartoSpatialTileLoader;\n"],"file":"carto-spatial-tile-loader.js"}
1
+ {"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile-loader.ts"],"names":["TileReader","parsePbf","getWorkerUrl","binaryToSpatialjson","VERSION","id","DEFAULT_OPTIONS","cartoSpatialTile","scheme","workerUrl","CartoSpatialTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoSpatialTile","parseSync","worker","tile","cells","data"],"mappings":"AAEA,SAAcA,UAAd,QAA+B,sBAA/B;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AACA,SAAQC,YAAR,QAA2B,aAA3B;AACA,SAAqBC,mBAArB,QAA4D,qBAA5D;AAEA,MAAMC,OAAO,GAAG,4BAAuB,WAAvB,sBAAmD,QAAnE;AACA,MAAMC,EAAE,GAAG,kBAAX;AASA,MAAMC,eAA8C,GAAG;AACrDC,EAAAA,gBAAgB,EAAE;AAChBC,IAAAA,MAAM,EAAE,SADQ;AAEhBC,IAAAA,SAAS,EAAEP,YAAY,CAACG,EAAD,EAAKD,OAAL;AAFP;AADmC,CAAvD;AAOA,MAAMM,sBAAwC,GAAG;AAC/CC,EAAAA,IAAI,EAAE,oBADyC;AAE/CC,EAAAA,OAAO,EAAER,OAFsC;AAG/CC,EAAAA,EAH+C;AAI/CQ,EAAAA,MAAM,EAAE,OAJuC;AAK/CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALmC;AAM/CC,EAAAA,SAAS,EAAE,CAAC,oCAAD,CANoC;AAO/CC,EAAAA,QAAQ,EAAE,UAPqC;AAQ/CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KACLC,qBAAqB,CAACF,WAAD,EAAcC,OAAd,CATwB;AAU/CE,EAAAA,SAAS,EAAED,qBAVoC;AAW/CE,EAAAA,MAAM,EAAE,IAXuC;AAY/CH,EAAAA,OAAO,EAAEb;AAZsC,CAAjD;;AAeA,SAASc,qBAAT,CACEF,WADF,EAEEC,OAFF,EAGsB;AAAA;;AACpB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMK,IAAU,GAAGtB,QAAQ,CAACiB,WAAD,EAAclB,UAAd,CAA3B;AAEA,QAAM;AAACwB,IAAAA;AAAD,MAAUD,IAAhB;AACA,QAAMf,MAAM,GAAGW,OAAH,aAAGA,OAAH,gDAAGA,OAAO,CAAEZ,gBAAZ,0DAAG,sBAA2BC,MAA1C;AACA,QAAMiB,IAAI,GAAG;AAACD,IAAAA,KAAD;AAAQhB,IAAAA;AAAR,GAAb;AAEA,SAAOL,mBAAmB,CAACsB,IAAD,CAA1B;AACD;;AAED,eAAef,sBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {Tile, TileReader} from './carto-spatial-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\nimport {IndexScheme, binaryToSpatialjson, SpatialJson} from './spatialjson-utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoSpatialTile';\n\ntype CartoSpatialTileLoaderOptions = LoaderOptions & {\n cartoSpatialTile?: {\n scheme: IndexScheme;\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoSpatialTileLoaderOptions = {\n cartoSpatialTile: {\n scheme: 'quadbin',\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoSpatialTileLoader: LoaderWithParser = {\n name: 'CARTO Spatial Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-spatial-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoSpatialTileLoaderOptions) =>\n parseCartoSpatialTile(arrayBuffer, options),\n parseSync: parseCartoSpatialTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nfunction parseCartoSpatialTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoSpatialTileLoaderOptions\n): SpatialJson | null {\n if (!arrayBuffer) return null;\n const tile: Tile = parsePbf(arrayBuffer, TileReader);\n\n const {cells} = tile;\n const scheme = options?.cartoSpatialTile?.scheme;\n const data = {cells, scheme};\n\n return binaryToSpatialjson(data);\n}\n\nexport default CartoSpatialTileLoader;\n"],"file":"carto-spatial-tile-loader.js"}
@@ -4,7 +4,7 @@ class KeyValueObjectReader {
4
4
  static read(pbf, end) {
5
5
  return pbf.readFields(KeyValueObjectReader._readField, {
6
6
  key: '',
7
- value: ''
7
+ value: null
8
8
  }, end);
9
9
  }
10
10
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-tile.ts"],"names":["readPackedTypedArray","KeyValueObjectReader","read","pbf","end","readFields","_readField","key","value","tag","obj","readString","PropertiesReader","readVarint","pos","DoublesReader","size","Float32Array","Float64Array","IntsReader","Uint32Array","readPackedVarint","FieldsReader","id","NumericPropReader","NumericPropKeyValueReader","PointsReader","positions","globalFeatureIds","featureIds","properties","numericProps","fields","push","entry","LinesReader","pathIndices","PolygonsReader","polygonIndices","primitivePolygonIndices","triangles","TileReader","points","lines","polygons"],"mappings":"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","sourcesContent":["import {readPackedTypedArray} from './fast-pbf';\n\n// KeyValueObject ========================================\ninterface KeyValueObject {\n key: string;\n value: string;\n}\n\nclass KeyValueObjectReader {\n static read(pbf, end?: number): KeyValueObject {\n return pbf.readFields(KeyValueObjectReader._readField, {key: '', value: ''}, end);\n }\n static _readField(this: void, tag: number, obj: KeyValueObject, pbf) {\n if (tag === 1) obj.key = pbf.readString();\n else if (tag === 2) obj.value = pbf.readString();\n }\n}\n\n// Properties ========================================\n\nexport class PropertiesReader {\n static read(pbf, end?: number) {\n return pbf.readFields(PropertiesReader._readField, {}, end);\n }\n static _readField(this: void, tag: number, obj: Record<string, string>, pbf) {\n if (tag === 1) {\n const {key, value} = KeyValueObjectReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj[key] = value;\n }\n }\n}\n\n// Doubles ========================================\n\ninterface Doubles {\n value: Float32Array;\n size: number;\n}\n\nclass DoublesReader {\n static read(pbf, end?: number): Doubles {\n const {value, size} = pbf.readFields(DoublesReader._readField, {value: [], size: 0}, end);\n return {value: new Float32Array(value), size};\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) readPackedTypedArray(Float64Array, pbf, obj);\n else if (tag === 2) obj.size = pbf.readVarint(true);\n }\n}\n\n// Ints ========================================\n\ninterface Ints {\n value: Uint32Array;\n size: number;\n}\n\nclass IntsReader {\n static read(pbf, end?: number): Ints {\n const {value, size} = pbf.readFields(IntsReader._readField, {value: [], size: 0}, end);\n return {value: new Uint32Array(value), size};\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) pbf.readPackedVarint(obj.value);\n else if (tag === 2) obj.size = pbf.readVarint(true);\n }\n}\n\n// Fields ========================================\n\ninterface Fields {\n id: number;\n}\n\nclass FieldsReader {\n static read(pbf, end?: number): Fields {\n return pbf.readFields(FieldsReader._readField, {id: 0}, end);\n }\n static _readField(this: void, tag: number, obj: Fields, pbf) {\n if (tag === 1) obj.id = pbf.readVarint();\n }\n}\n\n// NumericProp ========================================\n\nexport interface NumericProp {\n value: number[];\n}\n\nclass NumericPropReader {\n static read(pbf, end?: number): NumericProp {\n return pbf.readFields(NumericPropReader._readField, {value: []}, end);\n }\n static _readField(this: void, tag: number, obj: NumericProp, pbf) {\n if (tag === 1) readPackedTypedArray(Float64Array, pbf, obj);\n }\n}\n\n// NumericPropKeyValue ========================================\ninterface NumbericPropKeyValue {\n key: string;\n value: NumericProp;\n}\n\nexport class NumericPropKeyValueReader {\n static read(pbf, end?: number): NumbericPropKeyValue {\n return pbf.readFields(NumericPropKeyValueReader._readField, {key: '', value: null}, end);\n }\n static _readField(this: void, tag: number, obj: NumbericPropKeyValue, pbf) {\n if (tag === 1) obj.key = pbf.readString();\n else if (tag === 2) obj.value = NumericPropReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n\n// Points ========================================\n\ninterface Points {\n positions: Doubles;\n globalFeatureIds: Ints;\n featureIds: Ints;\n properties: Record<string, string>[];\n numericProps: Record<string, NumericProp>;\n fields: Fields[];\n}\n\nclass PointsReader {\n static read(pbf, end?: number): Points {\n return pbf.readFields(\n PointsReader._readField,\n {\n positions: null,\n globalFeatureIds: null,\n featureIds: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Points, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 5) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 6) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\ninterface Lines extends Points {\n pathIndices: Ints;\n}\n// Lines ========================================\n\nclass LinesReader {\n static read(pbf, end?: number): Lines {\n return pbf.readFields(\n LinesReader._readField,\n {\n positions: null,\n pathIndices: null,\n globalFeatureIds: null,\n featureIds: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Lines, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.pathIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 5) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 6) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 7) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n// Polygons ========================================\n\ninterface Polygons extends Points {\n polygonIndices: Ints;\n primitivePolygonIndices: Ints;\n triangles: Ints;\n}\n\nclass PolygonsReader {\n static read(pbf, end?: number): Polygons {\n return pbf.readFields(\n PolygonsReader._readField,\n {\n positions: null,\n polygonIndices: null,\n globalFeatureIds: null,\n featureIds: null,\n primitivePolygonIndices: null,\n triangles: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Polygons, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.polygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 5)\n obj.primitivePolygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 6) obj.triangles = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 7) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 8) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 9) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\n// Tile ========================================\n\nexport interface Tile {\n points: Points;\n lines: Lines;\n polygons: Polygons;\n}\n\nexport class TileReader {\n static read(pbf, end?: number): Tile {\n return pbf.readFields(TileReader._readField, {points: null, lines: null, polygons: null}, end);\n }\n static _readField(this: void, tag: number, obj: Tile, pbf) {\n if (tag === 1) obj.points = PointsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.lines = LinesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.polygons = PolygonsReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n"],"file":"carto-tile.js"}
1
+ {"version":3,"sources":["../../../../src/layers/schema/carto-tile.ts"],"names":["readPackedTypedArray","KeyValueObjectReader","read","pbf","end","readFields","_readField","key","value","tag","obj","readString","PropertiesReader","readVarint","pos","DoublesReader","size","Float32Array","Float64Array","IntsReader","Uint32Array","readPackedVarint","FieldsReader","id","NumericPropReader","NumericPropKeyValueReader","PointsReader","positions","globalFeatureIds","featureIds","properties","numericProps","fields","push","entry","LinesReader","pathIndices","PolygonsReader","polygonIndices","primitivePolygonIndices","triangles","TileReader","points","lines","polygons"],"mappings":"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","sourcesContent":["import {readPackedTypedArray} from './fast-pbf';\n\n// KeyValueObject ========================================\ninterface KeyValueObject {\n key: string;\n value: string;\n}\n\nclass KeyValueObjectReader {\n static read(pbf, end?: number): KeyValueObject {\n return pbf.readFields(KeyValueObjectReader._readField, {key: '', value: null}, end);\n }\n static _readField(this: void, tag: number, obj: KeyValueObject, pbf) {\n if (tag === 1) obj.key = pbf.readString();\n else if (tag === 2) obj.value = pbf.readString();\n }\n}\n\n// Properties ========================================\n\nexport class PropertiesReader {\n static read(pbf, end?: number) {\n return pbf.readFields(PropertiesReader._readField, {}, end);\n }\n static _readField(this: void, tag: number, obj: Record<string, string>, pbf) {\n if (tag === 1) {\n const {key, value} = KeyValueObjectReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj[key] = value;\n }\n }\n}\n\n// Doubles ========================================\n\ninterface Doubles {\n value: Float32Array;\n size: number;\n}\n\nclass DoublesReader {\n static read(pbf, end?: number): Doubles {\n const {value, size} = pbf.readFields(DoublesReader._readField, {value: [], size: 0}, end);\n return {value: new Float32Array(value), size};\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) readPackedTypedArray(Float64Array, pbf, obj);\n else if (tag === 2) obj.size = pbf.readVarint(true);\n }\n}\n\n// Ints ========================================\n\ninterface Ints {\n value: Uint32Array;\n size: number;\n}\n\nclass IntsReader {\n static read(pbf, end?: number): Ints {\n const {value, size} = pbf.readFields(IntsReader._readField, {value: [], size: 0}, end);\n return {value: new Uint32Array(value), size};\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) pbf.readPackedVarint(obj.value);\n else if (tag === 2) obj.size = pbf.readVarint(true);\n }\n}\n\n// Fields ========================================\n\ninterface Fields {\n id: number;\n}\n\nclass FieldsReader {\n static read(pbf, end?: number): Fields {\n return pbf.readFields(FieldsReader._readField, {id: 0}, end);\n }\n static _readField(this: void, tag: number, obj: Fields, pbf) {\n if (tag === 1) obj.id = pbf.readVarint();\n }\n}\n\n// NumericProp ========================================\n\nexport interface NumericProp {\n value: number[];\n}\n\nclass NumericPropReader {\n static read(pbf, end?: number): NumericProp {\n return pbf.readFields(NumericPropReader._readField, {value: []}, end);\n }\n static _readField(this: void, tag: number, obj: NumericProp, pbf) {\n if (tag === 1) readPackedTypedArray(Float64Array, pbf, obj);\n }\n}\n\n// NumericPropKeyValue ========================================\ninterface NumbericPropKeyValue {\n key: string;\n value: NumericProp;\n}\n\nexport class NumericPropKeyValueReader {\n static read(pbf, end?: number): NumbericPropKeyValue {\n return pbf.readFields(NumericPropKeyValueReader._readField, {key: '', value: null}, end);\n }\n static _readField(this: void, tag: number, obj: NumbericPropKeyValue, pbf) {\n if (tag === 1) obj.key = pbf.readString();\n else if (tag === 2) obj.value = NumericPropReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n\n// Points ========================================\n\ninterface Points {\n positions: Doubles;\n globalFeatureIds: Ints;\n featureIds: Ints;\n properties: Record<string, string>[];\n numericProps: Record<string, NumericProp>;\n fields: Fields[];\n}\n\nclass PointsReader {\n static read(pbf, end?: number): Points {\n return pbf.readFields(\n PointsReader._readField,\n {\n positions: null,\n globalFeatureIds: null,\n featureIds: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Points, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 5) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 6) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\ninterface Lines extends Points {\n pathIndices: Ints;\n}\n// Lines ========================================\n\nclass LinesReader {\n static read(pbf, end?: number): Lines {\n return pbf.readFields(\n LinesReader._readField,\n {\n positions: null,\n pathIndices: null,\n globalFeatureIds: null,\n featureIds: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Lines, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.pathIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 5) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 6) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 7) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n// Polygons ========================================\n\ninterface Polygons extends Points {\n polygonIndices: Ints;\n primitivePolygonIndices: Ints;\n triangles: Ints;\n}\n\nclass PolygonsReader {\n static read(pbf, end?: number): Polygons {\n return pbf.readFields(\n PolygonsReader._readField,\n {\n positions: null,\n polygonIndices: null,\n globalFeatureIds: null,\n featureIds: null,\n primitivePolygonIndices: null,\n triangles: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Polygons, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.polygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 5)\n obj.primitivePolygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 6) obj.triangles = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 7) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 8) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 9) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\n// Tile ========================================\n\nexport interface Tile {\n points: Points;\n lines: Lines;\n polygons: Polygons;\n}\n\nexport class TileReader {\n static read(pbf, end?: number): Tile {\n return pbf.readFields(TileReader._readField, {points: null, lines: null, polygons: null}, end);\n }\n static _readField(this: void, tag: number, obj: Tile, pbf) {\n if (tag === 1) obj.points = PointsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.lines = LinesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.polygons = PolygonsReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n"],"file":"carto-tile.js"}
@@ -1,22 +1,81 @@
1
+ import earcut from 'earcut';
1
2
  import { TileReader } from './carto-tile';
2
3
  import { parsePbf } from './tile-loader-utils';
4
+ import { getWorkerUrl } from '../../utils';
5
+ const VERSION = typeof "8.10.0-alpha.4" !== 'undefined' ? "8.10.0-alpha.4" : 'latest';
6
+ const id = 'cartoVectorTile';
7
+ const DEFAULT_OPTIONS = {
8
+ cartoVectorTile: {
9
+ workerUrl: getWorkerUrl(id, VERSION)
10
+ }
11
+ };
3
12
  const CartoVectorTileLoader = {
4
13
  name: 'CARTO Vector Tile',
5
- version: '1',
6
- id: 'cartoVectorTile',
14
+ version: VERSION,
15
+ id,
7
16
  module: 'carto',
8
17
  extensions: ['pbf'],
9
18
  mimeTypes: ['application/vnd.carto-vector-tile'],
10
19
  category: 'geometry',
11
- worker: false,
12
20
  parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),
13
21
  parseSync: parseCartoVectorTile,
14
- options: {}
22
+ worker: true,
23
+ options: DEFAULT_OPTIONS
15
24
  };
16
25
 
26
+ function triangulatePolygon(polygons, target, {
27
+ startPosition,
28
+ endPosition,
29
+ indices
30
+ }) {
31
+ const coordLength = polygons.positions.size;
32
+ const start = startPosition * coordLength;
33
+ const end = endPosition * coordLength;
34
+ const polygonPositions = polygons.positions.value.subarray(start, end);
35
+ const holes = indices.slice(1).map(n => n - startPosition);
36
+ const triangles = earcut(polygonPositions, holes, coordLength);
37
+
38
+ for (let t = 0, tl = triangles.length; t < tl; ++t) {
39
+ target.push(startPosition + triangles[t]);
40
+ }
41
+ }
42
+
43
+ function triangulate(polygons) {
44
+ const {
45
+ polygonIndices,
46
+ positions,
47
+ primitivePolygonIndices
48
+ } = polygons;
49
+ const triangles = [];
50
+ let rangeStart = 0;
51
+
52
+ for (let i = 0; i < polygonIndices.value.length - 1; i++) {
53
+ const startPosition = polygonIndices.value[i];
54
+ const endPosition = polygonIndices.value[i + 1];
55
+ const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);
56
+ const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);
57
+ rangeStart = rangeEnd;
58
+ triangulatePolygon(polygons, triangles, {
59
+ startPosition,
60
+ endPosition,
61
+ indices
62
+ });
63
+ }
64
+
65
+ polygons.triangles = {
66
+ value: new Uint32Array(triangles),
67
+ size: 1
68
+ };
69
+ }
70
+
17
71
  function parseCartoVectorTile(arrayBuffer, options) {
18
72
  if (!arrayBuffer) return null;
19
73
  const tile = parsePbf(arrayBuffer, TileReader);
74
+
75
+ if (tile.polygons && !tile.polygons.triangles) {
76
+ triangulate(tile.polygons);
77
+ }
78
+
20
79
  return tile;
21
80
  }
22
81
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["TileReader","parsePbf","CartoVectorTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoVectorTile","parseSync","tile"],"mappings":"AAGA,SAAQA,UAAR,QAAyB,cAAzB;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AAEA,MAAMC,qBAAuC,GAAG;AAC9CC,EAAAA,IAAI,EAAE,mBADwC;AAE9CC,EAAAA,OAAO,EAAE,GAFqC;AAG9CC,EAAAA,EAAE,EAAE,iBAH0C;AAI9CC,EAAAA,MAAM,EAAE,OAJsC;AAK9CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALkC;AAM9CC,EAAAA,SAAS,EAAE,CAAC,mCAAD,CANmC;AAO9CC,EAAAA,QAAQ,EAAE,UAPoC;AAQ9CC,EAAAA,MAAM,EAAE,KARsC;AAS9CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCC,oBAAoB,CAACF,WAAD,EAAcC,OAAd,CATb;AAU9CE,EAAAA,SAAS,EAAED,oBAVmC;AAW9CD,EAAAA,OAAO,EAAE;AAXqC,CAAhD;;AAcA,SAASC,oBAAT,CACEF,WADF,EAEEC,OAFF,EAGyB;AACvB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMI,IAAI,GAAGf,QAAQ,CAACW,WAAD,EAAcZ,UAAd,CAArB;AAGA,SAAOgB,IAAP;AACD;;AAED,eAAed,qBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {BinaryFeatures} from '@loaders.gl/schema';\n\nimport {TileReader} from './carto-tile';\nimport {parsePbf} from './tile-loader-utils';\n\nconst CartoVectorTileLoader: LoaderWithParser = {\n name: 'CARTO Vector Tile',\n version: '1',\n id: 'cartoVectorTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-vector-tile'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),\n parseSync: parseCartoVectorTile,\n options: {}\n};\n\nfunction parseCartoVectorTile(\n arrayBuffer: ArrayBuffer,\n options?: LoaderOptions\n): BinaryFeatures | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n\n // Note: there is slight, difference in `numericProps` type, however geojson/mvtlayer can cope with this\n return tile as unknown as BinaryFeatures;\n}\n\nexport default CartoVectorTileLoader;\n"],"file":"carto-vector-tile-loader.js"}
1
+ {"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["earcut","TileReader","parsePbf","getWorkerUrl","VERSION","id","DEFAULT_OPTIONS","cartoVectorTile","workerUrl","CartoVectorTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoVectorTile","parseSync","worker","triangulatePolygon","polygons","target","startPosition","endPosition","indices","coordLength","positions","size","start","end","polygonPositions","value","subarray","holes","slice","map","n","triangles","t","tl","length","push","triangulate","polygonIndices","primitivePolygonIndices","rangeStart","i","rangeEnd","indexOf","Uint32Array","tile"],"mappings":"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","sourcesContent":["import earcut from 'earcut';\nimport {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {BinaryFeatures, BinaryPolygonFeatures, TypedArray} from '@loaders.gl/schema';\n\nimport {TileReader} from './carto-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoVectorTile';\n\ntype CartoVectorTileLoaderOptions = LoaderOptions & {\n cartoVectorTile?: {\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoVectorTileLoaderOptions = {\n cartoVectorTile: {\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoVectorTileLoader: LoaderWithParser = {\n name: 'CARTO Vector Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-vector-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoVectorTileLoaderOptions) =>\n parseCartoVectorTile(arrayBuffer, options),\n parseSync: parseCartoVectorTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nfunction triangulatePolygon(\n polygons: BinaryPolygonFeatures,\n target: number[],\n {\n startPosition,\n endPosition,\n indices\n }: {startPosition: number; endPosition: number; indices: TypedArray}\n): void {\n const coordLength = polygons.positions.size;\n const start = startPosition * coordLength;\n const end = endPosition * coordLength;\n\n // Extract positions and holes for just this polygon\n const polygonPositions = polygons.positions.value.subarray(start, end);\n\n // Holes are referenced relative to outer polygon\n const holes = indices.slice(1).map((n: number) => n - startPosition);\n\n // Compute triangulation\n const triangles = earcut(polygonPositions, holes, coordLength);\n\n // Indices returned by triangulation are relative to start\n // of polygon, so we need to offset\n for (let t = 0, tl = triangles.length; t < tl; ++t) {\n target.push(startPosition + triangles[t]);\n }\n}\n\nfunction triangulate(polygons: BinaryPolygonFeatures) {\n const {polygonIndices, positions, primitivePolygonIndices} = polygons;\n const triangles = [];\n\n let rangeStart = 0;\n for (let i = 0; i < polygonIndices.value.length - 1; i++) {\n const startPosition = polygonIndices.value[i];\n const endPosition = polygonIndices.value[i + 1];\n\n // Extract hole indices between start & end position\n const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);\n const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);\n rangeStart = rangeEnd;\n\n triangulatePolygon(polygons, triangles, {startPosition, endPosition, indices});\n }\n\n polygons.triangles = {value: new Uint32Array(triangles), size: 1};\n}\n\nfunction parseCartoVectorTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoVectorTileLoaderOptions\n): BinaryFeatures | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n\n if (tile.polygons && !tile.polygons.triangles) {\n triangulate(tile.polygons);\n }\n\n return tile;\n}\n\nexport default CartoVectorTileLoader;\n"],"file":"carto-vector-tile-loader.js"}
@@ -0,0 +1,14 @@
1
+ export function injectAccessToken(loadOptions, accessToken) {
2
+ var _loadOptions$fetch, _loadOptions$fetch$he;
3
+
4
+ if (!(loadOptions !== null && loadOptions !== void 0 && (_loadOptions$fetch = loadOptions.fetch) !== null && _loadOptions$fetch !== void 0 && (_loadOptions$fetch$he = _loadOptions$fetch.headers) !== null && _loadOptions$fetch$he !== void 0 && _loadOptions$fetch$he.Authorization)) {
5
+ var _loadOptions$fetch2;
6
+
7
+ loadOptions.fetch = { ...loadOptions.fetch,
8
+ headers: { ...((_loadOptions$fetch2 = loadOptions.fetch) === null || _loadOptions$fetch2 === void 0 ? void 0 : _loadOptions$fetch2.headers),
9
+ Authorization: "Bearer ".concat(accessToken)
10
+ }
11
+ };
12
+ }
13
+ }
14
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/layers/utils.ts"],"names":["injectAccessToken","loadOptions","accessToken","fetch","headers","Authorization"],"mappings":"AAGA,OAAO,SAASA,iBAAT,CAA2BC,WAA3B,EAA6CC,WAA7C,EAAwE;AAAA;;AAC7E,MAAI,EAACD,WAAD,aAACA,WAAD,qCAACA,WAAW,CAAEE,KAAd,wEAAC,mBAAoBC,OAArB,kDAAC,sBAA6BC,aAA9B,CAAJ,EAAiD;AAAA;;AAC/CJ,IAAAA,WAAW,CAACE,KAAZ,GAAoB,EAClB,GAAGF,WAAW,CAACE,KADG;AAElBC,MAAAA,OAAO,EAAE,EAAC,2BAAGH,WAAW,CAACE,KAAf,wDAAG,oBAAmBC,OAAtB,CAAD;AAAgCC,QAAAA,aAAa,mBAAYH,WAAZ;AAA7C;AAFS,KAApB;AAID;AACF","sourcesContent":["/**\n * Adds access token to Authorization header in loadOptions\n */\nexport function injectAccessToken(loadOptions: any, accessToken: string): void {\n if (!loadOptions?.fetch?.headers?.Authorization) {\n loadOptions.fetch = {\n ...loadOptions.fetch,\n headers: {...loadOptions.fetch?.headers, Authorization: `Bearer ${accessToken}`}\n };\n }\n}\n"],"file":"utils.js"}
@@ -7,19 +7,47 @@ import { MVTLayer, _getURLFromTemplate } from '@deck.gl/geo-layers';
7
7
  import { GeoJsonLayer } from '@deck.gl/layers';
8
8
  import { binaryToGeojson } from '@loaders.gl/gis';
9
9
  import { TILE_FORMATS } from '../api/maps-api-common';
10
+ import { TilejsonPropType } from '../sources/common';
11
+ import { injectAccessToken } from './utils';
10
12
  const defaultTileFormat = TILE_FORMATS.BINARY;
11
13
  const defaultProps = { ...MVTLayer.defaultProps,
14
+ data: TilejsonPropType,
12
15
  formatTiles: defaultTileFormat
13
16
  };
14
- export default class CartoTileLayer extends MVTLayer {
17
+ export default class VectorTileLayer extends MVTLayer {
15
18
  initializeState() {
16
19
  super.initializeState();
17
- const binary = this.props.formatTiles === TILE_FORMATS.BINARY;
20
+ const binary = this.props.formatTiles === TILE_FORMATS.BINARY || TILE_FORMATS.MVT;
18
21
  this.setState({
19
22
  binary
20
23
  });
21
24
  }
22
25
 
26
+ updateState(parameters) {
27
+ const {
28
+ props
29
+ } = parameters;
30
+
31
+ if (props.data) {
32
+ super.updateState(parameters);
33
+ const formatTiles = new URL(props.data.tiles[0]).searchParams.get('formatTiles');
34
+ const mvt = formatTiles === TILE_FORMATS.MVT;
35
+ this.setState({
36
+ mvt
37
+ });
38
+ }
39
+ }
40
+
41
+ getLoadOptions() {
42
+ const loadOptions = super.getLoadOptions() || {};
43
+ const tileJSON = this.props.data;
44
+ injectAccessToken(loadOptions, tileJSON.accessToken);
45
+ loadOptions.gis = {
46
+ format: 'binary'
47
+ };
48
+ return loadOptions;
49
+ }
50
+
23
51
  getTileData(tile) {
24
52
  const url = _getURLFromTemplate(this.state.data, tile);
25
53
 
@@ -27,21 +55,13 @@ export default class CartoTileLayer extends MVTLayer {
27
55
  return Promise.reject('Invalid URL');
28
56
  }
29
57
 
30
- let loadOptions = this.getLoadOptions();
58
+ const loadOptions = this.getLoadOptions();
31
59
  const {
32
- fetch,
33
- formatTiles
60
+ fetch
34
61
  } = this.props;
35
62
  const {
36
63
  signal
37
64
  } = tile;
38
-
39
- if (formatTiles === TILE_FORMATS.BINARY) {
40
- loadOptions = { ...loadOptions,
41
- mimeType: 'application/vnd.carto-vector-tile'
42
- };
43
- }
44
-
45
65
  return fetch(url, {
46
66
  propName: 'data',
47
67
  layer: this,
@@ -55,6 +75,10 @@ export default class CartoTileLayer extends MVTLayer {
55
75
  return null;
56
76
  }
57
77
 
78
+ if (this.state.mvt) {
79
+ return super.renderSubLayers(props);
80
+ }
81
+
58
82
  const tileBbox = props.tile.bbox;
59
83
  const {
60
84
  west,
@@ -88,7 +112,7 @@ export default class CartoTileLayer extends MVTLayer {
88
112
 
89
113
  }
90
114
 
91
- _defineProperty(CartoTileLayer, "layerName", 'CartoTileLayer');
115
+ _defineProperty(VectorTileLayer, "layerName", 'VectorTileLayer');
92
116
 
93
- _defineProperty(CartoTileLayer, "defaultProps", defaultProps);
94
- //# sourceMappingURL=carto-tile-layer.js.map
117
+ _defineProperty(VectorTileLayer, "defaultProps", defaultProps);
118
+ //# sourceMappingURL=vector-tile-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/layers/vector-tile-layer.ts"],"names":["registerLoaders","CartoVectorTileLoader","ClipExtension","MVTLayer","_getURLFromTemplate","GeoJsonLayer","binaryToGeojson","TILE_FORMATS","TilejsonPropType","injectAccessToken","defaultTileFormat","BINARY","defaultProps","data","formatTiles","VectorTileLayer","initializeState","binary","props","MVT","setState","updateState","parameters","URL","tiles","searchParams","get","mvt","getLoadOptions","loadOptions","tileJSON","accessToken","gis","format","getTileData","tile","url","state","Promise","reject","fetch","signal","propName","layer","renderSubLayers","tileBbox","bbox","west","south","east","north","subLayerProps","autoHighlight","extensions","clipBounds","subLayer","getPickingInfo","params","info","index","sourceLayer","object","globalFeatureId"],"mappings":"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","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport CartoVectorTileLoader from './schema/carto-vector-tile-loader';\nregisterLoaders([CartoVectorTileLoader]);\n\nimport {DefaultProps} from '@deck.gl/core';\nimport {ClipExtension} from '@deck.gl/extensions';\nimport {\n MVTLayer,\n MVTLayerProps,\n TileLayer,\n _getURLFromTemplate,\n _Tile2DHeader,\n _TileLoadProps as TileLoadProps\n} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {binaryToGeojson} from '@loaders.gl/gis';\nimport type {BinaryFeatures} from '@loaders.gl/schema';\nimport {TileFormat, TILE_FORMATS} from '../api/maps-api-common';\nimport type {Feature} from 'geojson';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nconst defaultTileFormat = TILE_FORMATS.BINARY;\n\nconst defaultProps: DefaultProps<VectorTileLayerProps> = {\n ...MVTLayer.defaultProps,\n data: TilejsonPropType,\n formatTiles: defaultTileFormat\n};\n\n/** All properties supported by VectorTileLayer. */\nexport type VectorTileLayerProps = _VectorTileLayerProps & Omit<MVTLayerProps, 'data'>;\n\n/** Properties added by VectorTileLayer. */\ntype _VectorTileLayerProps = {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n /** Use to override the default tile data format.\n *\n * Possible values are: `TILE_FORMATS.BINARY`, `TILE_FORMATS.GEOJSON` and `TILE_FORMATS.MVT`.\n *\n * Only supported when `apiVersion` is `API_VERSIONS.V3` and `format` is `FORMATS.TILEJSON`.\n */\n formatTiles?: TileFormat;\n};\n\n// TODO Perhaps we can't subclass MVTLayer and keep types. Better to subclass TileLayer instead?\n// @ts-ignore\nexport default class VectorTileLayer<ExtraProps extends {} = {}> extends MVTLayer<\n Required<_VectorTileLayerProps> & ExtraProps\n> {\n static layerName = 'VectorTileLayer';\n static defaultProps = defaultProps;\n\n initializeState(): void {\n super.initializeState();\n const binary = this.props.formatTiles === TILE_FORMATS.BINARY || TILE_FORMATS.MVT;\n this.setState({binary});\n }\n\n updateState(parameters) {\n const {props} = parameters;\n if (props.data) {\n super.updateState(parameters);\n\n const formatTiles = new URL(props.data.tiles[0]).searchParams.get('formatTiles');\n const mvt = formatTiles === TILE_FORMATS.MVT;\n this.setState({mvt});\n }\n }\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.gis = {format: 'binary'}; // Use binary for MVT loading\n return loadOptions;\n }\n\n getTileData(tile: TileLoadProps) {\n const url = _getURLFromTemplate(this.state.data, tile);\n if (!url) {\n return Promise.reject('Invalid URL');\n }\n\n const loadOptions = this.getLoadOptions();\n const {fetch} = this.props;\n const {signal} = tile;\n return fetch(url, {propName: 'data', layer: this, loadOptions, signal});\n }\n\n renderSubLayers(\n props: TileLayer['props'] & {\n id: string;\n data: any;\n _offset: number;\n tile: _Tile2DHeader;\n }\n ): GeoJsonLayer | null {\n if (props.data === null) {\n return null;\n }\n\n if (this.state.mvt) {\n return super.renderSubLayers(props) as GeoJsonLayer;\n }\n\n const tileBbox = props.tile.bbox as any;\n const {west, south, east, north} = tileBbox;\n\n const subLayerProps = {\n ...props,\n autoHighlight: false,\n extensions: [new ClipExtension(), ...(props.extensions || [])],\n clipBounds: [west, south, east, north]\n };\n\n const subLayer = new GeoJsonLayer(subLayerProps);\n return subLayer;\n }\n\n getPickingInfo(params) {\n const info = super.getPickingInfo(params);\n\n if (this.state.binary && info.index !== -1) {\n const {data} = params.sourceLayer!.props;\n info.object = binaryToGeojson(data as BinaryFeatures, {\n globalFeatureId: info.index\n }) as Feature;\n }\n\n return info;\n }\n}\n"],"file":"vector-tile-layer.js"}