@deck.gl/carto 8.10.0-alpha.2 → 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 (249) 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 +1733 -881
  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/h3-tile-layer.js +23 -41
  15. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  16. package/dist/es5/layers/quadbin-tile-layer.js +21 -42
  17. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
  18. package/dist/es5/layers/raster-tile-layer.js +23 -39
  19. package/dist/es5/layers/raster-tile-layer.js.map +1 -1
  20. package/dist/es5/layers/schema/carto-raster-tile-loader.js +13 -4
  21. package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -1
  22. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +14 -8
  23. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  24. package/dist/es5/layers/schema/carto-tile.js +1 -1
  25. package/dist/es5/layers/schema/carto-tile.js.map +1 -1
  26. package/dist/es5/layers/schema/carto-vector-tile-loader.js +64 -4
  27. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
  28. package/dist/es5/layers/utils.js +29 -0
  29. package/dist/es5/layers/utils.js.map +1 -0
  30. package/dist/es5/layers/{carto-tile-layer.js → vector-tile-layer.js} +49 -24
  31. package/dist/es5/layers/vector-tile-layer.js.map +1 -0
  32. package/dist/es5/sources/base-source.js +100 -0
  33. package/dist/es5/sources/base-source.js.map +1 -0
  34. package/dist/es5/sources/common.js +48 -0
  35. package/dist/es5/sources/common.js.map +1 -0
  36. package/dist/es5/sources/h3-query-source.js +58 -0
  37. package/dist/es5/sources/h3-query-source.js.map +1 -0
  38. package/dist/es5/sources/h3-table-source.js +58 -0
  39. package/dist/es5/sources/h3-table-source.js.map +1 -0
  40. package/dist/es5/sources/h3-tileset-source.js +43 -0
  41. package/dist/es5/sources/h3-tileset-source.js.map +1 -0
  42. package/dist/es5/sources/index.js +94 -0
  43. package/dist/es5/sources/index.js.map +1 -0
  44. package/dist/es5/sources/quadbin-query-source.js +58 -0
  45. package/dist/es5/sources/quadbin-query-source.js.map +1 -0
  46. package/dist/es5/sources/quadbin-table-source.js +58 -0
  47. package/dist/es5/sources/quadbin-table-source.js.map +1 -0
  48. package/dist/es5/sources/quadbin-tileset-source.js +43 -0
  49. package/dist/es5/sources/quadbin-tileset-source.js.map +1 -0
  50. package/dist/es5/sources/raster-source.js +43 -0
  51. package/dist/es5/sources/raster-source.js.map +1 -0
  52. package/dist/es5/sources/utils.js +136 -0
  53. package/dist/es5/sources/utils.js.map +1 -0
  54. package/dist/es5/sources/vector-query-source.js +52 -0
  55. package/dist/es5/sources/vector-query-source.js.map +1 -0
  56. package/dist/es5/sources/vector-table-source.js +52 -0
  57. package/dist/es5/sources/vector-table-source.js.map +1 -0
  58. package/dist/es5/sources/vector-tileset-source.js +43 -0
  59. package/dist/es5/sources/vector-tileset-source.js.map +1 -0
  60. package/dist/es5/utils.js +5 -0
  61. package/dist/es5/utils.js.map +1 -1
  62. package/dist/es5/workers/cartoRasterTile.js +10 -0
  63. package/dist/es5/workers/cartoRasterTile.js.map +1 -0
  64. package/dist/es5/workers/cartoSpatialTile.js +10 -0
  65. package/dist/es5/workers/cartoSpatialTile.js.map +1 -0
  66. package/dist/es5/workers/cartoVectorTile.js +10 -0
  67. package/dist/es5/workers/cartoVectorTile.js.map +1 -0
  68. package/dist/esm/api/layer-map.js +3 -7
  69. package/dist/esm/api/layer-map.js.map +1 -1
  70. package/dist/esm/api/maps-api-common.js +0 -1
  71. package/dist/esm/api/maps-api-common.js.map +1 -1
  72. package/dist/esm/api/maps-v3-client.js +2 -12
  73. package/dist/esm/api/maps-v3-client.js.map +1 -1
  74. package/dist/esm/index.js +5 -4
  75. package/dist/esm/index.js.map +1 -1
  76. package/dist/esm/layers/h3-tile-layer.js +21 -37
  77. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  78. package/dist/esm/layers/quadbin-tile-layer.js +18 -38
  79. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
  80. package/dist/esm/layers/raster-tile-layer.js +19 -34
  81. package/dist/esm/layers/raster-tile-layer.js.map +1 -1
  82. package/dist/esm/layers/schema/carto-raster-tile-loader.js +12 -4
  83. package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -1
  84. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +13 -8
  85. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  86. package/dist/esm/layers/schema/carto-tile.js +1 -1
  87. package/dist/esm/layers/schema/carto-tile.js.map +1 -1
  88. package/dist/esm/layers/schema/carto-vector-tile-loader.js +63 -4
  89. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
  90. package/dist/esm/layers/utils.js +14 -0
  91. package/dist/esm/layers/utils.js.map +1 -0
  92. package/dist/esm/layers/{carto-tile-layer.js → vector-tile-layer.js} +39 -15
  93. package/dist/esm/layers/vector-tile-layer.js.map +1 -0
  94. package/dist/esm/sources/base-source.js +49 -0
  95. package/dist/esm/sources/base-source.js.map +1 -0
  96. package/dist/esm/sources/common.js +26 -0
  97. package/dist/esm/sources/common.js.map +1 -0
  98. package/dist/esm/sources/h3-query-source.js +32 -0
  99. package/dist/esm/sources/h3-query-source.js.map +1 -0
  100. package/dist/esm/sources/h3-table-source.js +32 -0
  101. package/dist/esm/sources/h3-table-source.js.map +1 -0
  102. package/dist/esm/sources/h3-tileset-source.js +14 -0
  103. package/dist/esm/sources/h3-tileset-source.js.map +1 -0
  104. package/dist/esm/sources/index.js +12 -0
  105. package/dist/esm/sources/index.js.map +1 -0
  106. package/dist/esm/sources/quadbin-query-source.js +32 -0
  107. package/dist/esm/sources/quadbin-query-source.js.map +1 -0
  108. package/dist/esm/sources/quadbin-table-source.js +32 -0
  109. package/dist/esm/sources/quadbin-table-source.js.map +1 -0
  110. package/dist/esm/sources/quadbin-tileset-source.js +14 -0
  111. package/dist/esm/sources/quadbin-tileset-source.js.map +1 -0
  112. package/dist/esm/sources/raster-source.js +14 -0
  113. package/dist/esm/sources/raster-source.js.map +1 -0
  114. package/dist/esm/sources/utils.js +69 -0
  115. package/dist/esm/sources/utils.js.map +1 -0
  116. package/dist/esm/sources/vector-query-source.js +25 -0
  117. package/dist/esm/sources/vector-query-source.js.map +1 -0
  118. package/dist/esm/sources/vector-table-source.js +25 -0
  119. package/dist/esm/sources/vector-table-source.js.map +1 -0
  120. package/dist/esm/sources/vector-tileset-source.js +14 -0
  121. package/dist/esm/sources/vector-tileset-source.js.map +1 -0
  122. package/dist/esm/utils.js +3 -0
  123. package/dist/esm/utils.js.map +1 -1
  124. package/dist/esm/workers/cartoRasterTile.js +4 -0
  125. package/dist/esm/workers/cartoRasterTile.js.map +1 -0
  126. package/dist/esm/workers/cartoSpatialTile.js +4 -0
  127. package/dist/esm/workers/cartoSpatialTile.js.map +1 -0
  128. package/dist/esm/workers/cartoVectorTile.js +4 -0
  129. package/dist/esm/workers/cartoVectorTile.js.map +1 -0
  130. package/dist.min.js +25 -25
  131. package/package.json +11 -9
  132. package/src/api/layer-map.ts +4 -8
  133. package/src/api/maps-api-common.ts +0 -1
  134. package/src/api/maps-v3-client.ts +6 -5
  135. package/src/index.ts +34 -5
  136. package/src/layers/h3-tile-layer.ts +22 -35
  137. package/src/layers/quadbin-tile-layer.ts +19 -33
  138. package/src/layers/raster-tile-layer.ts +22 -26
  139. package/src/layers/schema/carto-raster-tile-loader.ts +26 -6
  140. package/src/layers/schema/carto-spatial-tile-loader.ts +25 -11
  141. package/src/layers/schema/carto-tile.ts +1 -1
  142. package/src/layers/schema/carto-vector-tile-loader.ts +79 -9
  143. package/src/layers/utils.ts +11 -0
  144. package/src/layers/{carto-tile-layer.ts → vector-tile-layer.ts} +40 -21
  145. package/src/sources/base-source.ts +55 -0
  146. package/src/sources/common.ts +132 -0
  147. package/src/sources/h3-query-source.ts +45 -0
  148. package/src/sources/h3-table-source.ts +46 -0
  149. package/src/sources/h3-tileset-source.ts +16 -0
  150. package/src/sources/index.ts +32 -0
  151. package/src/sources/quadbin-query-source.ts +46 -0
  152. package/src/sources/quadbin-table-source.ts +46 -0
  153. package/src/sources/quadbin-tileset-source.ts +16 -0
  154. package/src/sources/raster-source.ts +16 -0
  155. package/src/sources/utils.ts +63 -0
  156. package/src/sources/vector-query-source.ts +23 -0
  157. package/src/sources/vector-table-source.ts +23 -0
  158. package/src/sources/vector-tileset-source.ts +16 -0
  159. package/src/utils.ts +6 -0
  160. package/src/workers/cartoRasterTile.ts +4 -0
  161. package/src/workers/cartoSpatialTile.ts +4 -0
  162. package/src/workers/cartoVectorTile.ts +4 -0
  163. package/typed/api/layer-map.d.ts +2 -3
  164. package/typed/api/layer-map.d.ts.map +1 -1
  165. package/typed/api/maps-api-common.d.ts +0 -1
  166. package/typed/api/maps-api-common.d.ts.map +1 -1
  167. package/typed/api/maps-v3-client.d.ts +0 -3
  168. package/typed/api/maps-v3-client.d.ts.map +1 -1
  169. package/typed/index.d.ts +6 -4
  170. package/typed/index.d.ts.map +1 -1
  171. package/typed/layers/h3-tile-layer.d.ts +5 -8
  172. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  173. package/typed/layers/quadbin-tile-layer.d.ts +5 -9
  174. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
  175. package/typed/layers/raster-tile-layer.d.ts +6 -10
  176. package/typed/layers/raster-tile-layer.d.ts.map +1 -1
  177. package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
  178. package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
  179. package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
  180. package/typed/layers/utils.d.ts +5 -0
  181. package/typed/layers/utils.d.ts.map +1 -0
  182. package/typed/layers/{carto-tile-layer.d.ts → vector-tile-layer.d.ts} +11 -7
  183. package/typed/layers/vector-tile-layer.d.ts.map +1 -0
  184. package/typed/sources/base-source.d.ts +4 -0
  185. package/typed/sources/base-source.d.ts.map +1 -0
  186. package/typed/sources/common.d.ts +116 -0
  187. package/typed/sources/common.d.ts.map +1 -0
  188. package/typed/sources/h3-query-source.d.ts +5 -0
  189. package/typed/sources/h3-query-source.d.ts.map +1 -0
  190. package/typed/sources/h3-table-source.d.ts +5 -0
  191. package/typed/sources/h3-table-source.d.ts.map +1 -0
  192. package/typed/sources/h3-tileset-source.d.ts +5 -0
  193. package/typed/sources/h3-tileset-source.d.ts.map +1 -0
  194. package/typed/sources/index.d.ts +23 -0
  195. package/typed/sources/index.d.ts.map +1 -0
  196. package/typed/sources/quadbin-query-source.d.ts +5 -0
  197. package/typed/sources/quadbin-query-source.d.ts.map +1 -0
  198. package/typed/sources/quadbin-table-source.d.ts +5 -0
  199. package/typed/sources/quadbin-table-source.d.ts.map +1 -0
  200. package/typed/sources/quadbin-tileset-source.d.ts +5 -0
  201. package/typed/sources/quadbin-tileset-source.d.ts.map +1 -0
  202. package/typed/sources/raster-source.d.ts +5 -0
  203. package/typed/sources/raster-source.d.ts.map +1 -0
  204. package/typed/sources/utils.d.ts +15 -0
  205. package/typed/sources/utils.d.ts.map +1 -0
  206. package/typed/sources/vector-query-source.d.ts +5 -0
  207. package/typed/sources/vector-query-source.d.ts.map +1 -0
  208. package/typed/sources/vector-table-source.d.ts +5 -0
  209. package/typed/sources/vector-table-source.d.ts.map +1 -0
  210. package/typed/sources/vector-tileset-source.d.ts +5 -0
  211. package/typed/sources/vector-tileset-source.d.ts.map +1 -0
  212. package/typed/utils.d.ts +1 -0
  213. package/typed/utils.d.ts.map +1 -1
  214. package/typed/workers/cartoRasterTile.d.ts +2 -0
  215. package/typed/workers/cartoRasterTile.d.ts.map +1 -0
  216. package/typed/workers/cartoSpatialTile.d.ts +2 -0
  217. package/typed/workers/cartoSpatialTile.d.ts.map +1 -0
  218. package/typed/workers/cartoVectorTile.d.ts +2 -0
  219. package/typed/workers/cartoVectorTile.d.ts.map +1 -0
  220. package/dist/es5/layers/carto-tile-layer.js.map +0 -1
  221. package/dist/esm/layers/carto-tile-layer.js.map +0 -1
  222. package/typed/api/index.js +0 -3
  223. package/typed/api/layer-map.js +0 -264
  224. package/typed/api/maps-api-common.js +0 -50
  225. package/typed/api/maps-client.js +0 -125
  226. package/typed/api/maps-v3-client.js +0 -304
  227. package/typed/api/parseMap.js +0 -178
  228. package/typed/basemap.js +0 -9
  229. package/typed/config.js +0 -35
  230. package/typed/index.js +0 -10
  231. package/typed/layers/carto-layer.js +0 -173
  232. package/typed/layers/carto-tile-layer.d.ts.map +0 -1
  233. package/typed/layers/carto-tile-layer.js +0 -105
  234. package/typed/layers/h3-tile-layer.js +0 -47
  235. package/typed/layers/h3-tileset-2d.js +0 -85
  236. package/typed/layers/quadkey-tile-layer.d.ts +0 -21
  237. package/typed/layers/quadkey-tile-layer.d.ts.map +0 -1
  238. package/typed/layers/quadkey-tile-layer.js +0 -42
  239. package/typed/layers/quadkey-tileset-2d.d.ts +0 -15
  240. package/typed/layers/quadkey-tileset-2d.d.ts.map +0 -1
  241. package/typed/layers/quadkey-tileset-2d.js +0 -36
  242. package/typed/layers/schema/carto-tile.js +0 -161
  243. package/typed/layers/spatial-index-tile-layer.js +0 -40
  244. package/typed/style/color-bins-style.js +0 -12
  245. package/typed/style/color-categories-style.js +0 -16
  246. package/typed/style/color-continuous-style.js +0 -12
  247. package/typed/style/palette.js +0 -62
  248. package/typed/style/utils.js +0 -15
  249. package/typed/utils.js +0 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-tile.ts"],"names":["KeyValueObjectReader","pbf","end","readFields","_readField","key","value","tag","obj","readString","PropertiesReader","read","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":["KeyValueObjectReader","pbf","end","readFields","_readField","key","value","tag","obj","readString","PropertiesReader","read","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"}
@@ -11,19 +11,29 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
11
11
 
12
12
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
13
 
14
+ var _earcut = _interopRequireDefault(require("earcut"));
15
+
14
16
  var _cartoTile = require("./carto-tile");
15
17
 
16
18
  var _tileLoaderUtils = require("./tile-loader-utils");
17
19
 
20
+ var _utils = require("../../utils");
21
+
22
+ var VERSION = typeof "8.10.0-alpha.4" !== 'undefined' ? "8.10.0-alpha.4" : 'latest';
23
+ var id = 'cartoVectorTile';
24
+ var DEFAULT_OPTIONS = {
25
+ cartoVectorTile: {
26
+ workerUrl: (0, _utils.getWorkerUrl)(id, VERSION)
27
+ }
28
+ };
18
29
  var CartoVectorTileLoader = {
19
30
  name: 'CARTO Vector Tile',
20
- version: '1',
21
- id: 'cartoVectorTile',
31
+ version: VERSION,
32
+ id: id,
22
33
  module: 'carto',
23
34
  extensions: ['pbf'],
24
35
  mimeTypes: ['application/vnd.carto-vector-tile'],
25
36
  category: 'geometry',
26
- worker: false,
27
37
  parse: function () {
28
38
  var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
29
39
  return _regenerator.default.wrap(function _callee$(_context) {
@@ -47,12 +57,62 @@ var CartoVectorTileLoader = {
47
57
  return parse;
48
58
  }(),
49
59
  parseSync: parseCartoVectorTile,
50
- options: {}
60
+ worker: true,
61
+ options: DEFAULT_OPTIONS
51
62
  };
52
63
 
64
+ function triangulatePolygon(polygons, target, _ref) {
65
+ var startPosition = _ref.startPosition,
66
+ endPosition = _ref.endPosition,
67
+ indices = _ref.indices;
68
+ var coordLength = polygons.positions.size;
69
+ var start = startPosition * coordLength;
70
+ var end = endPosition * coordLength;
71
+ var polygonPositions = polygons.positions.value.subarray(start, end);
72
+ var holes = indices.slice(1).map(function (n) {
73
+ return n - startPosition;
74
+ });
75
+ var triangles = (0, _earcut.default)(polygonPositions, holes, coordLength);
76
+
77
+ for (var t = 0, tl = triangles.length; t < tl; ++t) {
78
+ target.push(startPosition + triangles[t]);
79
+ }
80
+ }
81
+
82
+ function triangulate(polygons) {
83
+ var polygonIndices = polygons.polygonIndices,
84
+ positions = polygons.positions,
85
+ primitivePolygonIndices = polygons.primitivePolygonIndices;
86
+ var triangles = [];
87
+ var rangeStart = 0;
88
+
89
+ for (var i = 0; i < polygonIndices.value.length - 1; i++) {
90
+ var startPosition = polygonIndices.value[i];
91
+ var endPosition = polygonIndices.value[i + 1];
92
+ var rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);
93
+ var indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);
94
+ rangeStart = rangeEnd;
95
+ triangulatePolygon(polygons, triangles, {
96
+ startPosition: startPosition,
97
+ endPosition: endPosition,
98
+ indices: indices
99
+ });
100
+ }
101
+
102
+ polygons.triangles = {
103
+ value: new Uint32Array(triangles),
104
+ size: 1
105
+ };
106
+ }
107
+
53
108
  function parseCartoVectorTile(arrayBuffer, options) {
54
109
  if (!arrayBuffer) return null;
55
110
  var tile = (0, _tileLoaderUtils.parsePbf)(arrayBuffer, _cartoTile.TileReader);
111
+
112
+ if (tile.polygons && !tile.polygons.triangles) {
113
+ triangulate(tile.polygons);
114
+ }
115
+
56
116
  return tile;
57
117
  }
58
118
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["CartoVectorTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoVectorTile","parseSync","tile","TileReader"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AAEA,IAAMA,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;AAAA,2EAAE,iBAAOC,WAAP,EAAoBC,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAgCC,oBAAoB,CAACF,WAAD,EAAcC,OAAd,CAApD;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KATyC;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,MAAMI,IAAI,GAAG,+BAASJ,WAAT,EAAsBK,qBAAtB,CAAb;AAGA,SAAOD,IAAP;AACD;;eAEcd,qB","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":["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","TileReader"],"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,29 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.injectAccessToken = injectAccessToken;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
13
+
14
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
15
+
16
+ function injectAccessToken(loadOptions, accessToken) {
17
+ var _loadOptions$fetch, _loadOptions$fetch$he;
18
+
19
+ 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)) {
20
+ var _loadOptions$fetch2;
21
+
22
+ loadOptions.fetch = _objectSpread(_objectSpread({}, loadOptions.fetch), {}, {
23
+ headers: _objectSpread(_objectSpread({}, (_loadOptions$fetch2 = loadOptions.fetch) === null || _loadOptions$fetch2 === void 0 ? void 0 : _loadOptions$fetch2.headers), {}, {
24
+ Authorization: "Bearer ".concat(accessToken)
25
+ })
26
+ });
27
+ }
28
+ }
29
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/layers/utils.ts"],"names":["injectAccessToken","loadOptions","accessToken","fetch","headers","Authorization"],"mappings":";;;;;;;;;;;;;;;AAGO,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,mCACKF,WAAW,CAACE,KADjB;AAEEC,MAAAA,OAAO,yDAAMH,WAAW,CAACE,KAAlB,wDAAM,oBAAmBC,OAAzB;AAAkCC,QAAAA,aAAa,mBAAYH,WAAZ;AAA/C;AAFT;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"}
@@ -37,6 +37,10 @@ var _gis = require("@loaders.gl/gis");
37
37
 
38
38
  var _mapsApiCommon = require("../api/maps-api-common");
39
39
 
40
+ var _common = require("../sources/common");
41
+
42
+ var _utils = require("./utils");
43
+
40
44
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
41
45
 
42
46
  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; } }
@@ -49,28 +53,54 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
49
53
  var defaultTileFormat = _mapsApiCommon.TILE_FORMATS.BINARY;
50
54
 
51
55
  var defaultProps = _objectSpread(_objectSpread({}, _geoLayers.MVTLayer.defaultProps), {}, {
56
+ data: _common.TilejsonPropType,
52
57
  formatTiles: defaultTileFormat
53
58
  });
54
59
 
55
- var CartoTileLayer = function (_MVTLayer) {
56
- (0, _inherits2.default)(CartoTileLayer, _MVTLayer);
60
+ var VectorTileLayer = function (_MVTLayer) {
61
+ (0, _inherits2.default)(VectorTileLayer, _MVTLayer);
57
62
 
58
- var _super = _createSuper(CartoTileLayer);
63
+ var _super = _createSuper(VectorTileLayer);
59
64
 
60
- function CartoTileLayer() {
61
- (0, _classCallCheck2.default)(this, CartoTileLayer);
65
+ function VectorTileLayer() {
66
+ (0, _classCallCheck2.default)(this, VectorTileLayer);
62
67
  return _super.apply(this, arguments);
63
68
  }
64
69
 
65
- (0, _createClass2.default)(CartoTileLayer, [{
70
+ (0, _createClass2.default)(VectorTileLayer, [{
66
71
  key: "initializeState",
67
72
  value: function initializeState() {
68
- (0, _get2.default)((0, _getPrototypeOf2.default)(CartoTileLayer.prototype), "initializeState", this).call(this);
69
- var binary = this.props.formatTiles === _mapsApiCommon.TILE_FORMATS.BINARY;
73
+ (0, _get2.default)((0, _getPrototypeOf2.default)(VectorTileLayer.prototype), "initializeState", this).call(this);
74
+ var binary = this.props.formatTiles === _mapsApiCommon.TILE_FORMATS.BINARY || _mapsApiCommon.TILE_FORMATS.MVT;
70
75
  this.setState({
71
76
  binary: binary
72
77
  });
73
78
  }
79
+ }, {
80
+ key: "updateState",
81
+ value: function updateState(parameters) {
82
+ var props = parameters.props;
83
+
84
+ if (props.data) {
85
+ (0, _get2.default)((0, _getPrototypeOf2.default)(VectorTileLayer.prototype), "updateState", this).call(this, parameters);
86
+ var formatTiles = new URL(props.data.tiles[0]).searchParams.get('formatTiles');
87
+ var mvt = formatTiles === _mapsApiCommon.TILE_FORMATS.MVT;
88
+ this.setState({
89
+ mvt: mvt
90
+ });
91
+ }
92
+ }
93
+ }, {
94
+ key: "getLoadOptions",
95
+ value: function getLoadOptions() {
96
+ var loadOptions = (0, _get2.default)((0, _getPrototypeOf2.default)(VectorTileLayer.prototype), "getLoadOptions", this).call(this) || {};
97
+ var tileJSON = this.props.data;
98
+ (0, _utils.injectAccessToken)(loadOptions, tileJSON.accessToken);
99
+ loadOptions.gis = {
100
+ format: 'binary'
101
+ };
102
+ return loadOptions;
103
+ }
74
104
  }, {
75
105
  key: "getTileData",
76
106
  value: function getTileData(tile) {
@@ -81,17 +111,8 @@ var CartoTileLayer = function (_MVTLayer) {
81
111
  }
82
112
 
83
113
  var loadOptions = this.getLoadOptions();
84
- var _this$props = this.props,
85
- fetch = _this$props.fetch,
86
- formatTiles = _this$props.formatTiles;
114
+ var fetch = this.props.fetch;
87
115
  var signal = tile.signal;
88
-
89
- if (formatTiles === _mapsApiCommon.TILE_FORMATS.BINARY) {
90
- loadOptions = _objectSpread(_objectSpread({}, loadOptions), {}, {
91
- mimeType: 'application/vnd.carto-vector-tile'
92
- });
93
- }
94
-
95
116
  return fetch(url, {
96
117
  propName: 'data',
97
118
  layer: this,
@@ -106,6 +127,10 @@ var CartoTileLayer = function (_MVTLayer) {
106
127
  return null;
107
128
  }
108
129
 
130
+ if (this.state.mvt) {
131
+ return (0, _get2.default)((0, _getPrototypeOf2.default)(VectorTileLayer.prototype), "renderSubLayers", this).call(this, props);
132
+ }
133
+
109
134
  var tileBbox = props.tile.bbox;
110
135
  var west = tileBbox.west,
111
136
  south = tileBbox.south,
@@ -124,7 +149,7 @@ var CartoTileLayer = function (_MVTLayer) {
124
149
  }, {
125
150
  key: "getPickingInfo",
126
151
  value: function getPickingInfo(params) {
127
- var info = (0, _get2.default)((0, _getPrototypeOf2.default)(CartoTileLayer.prototype), "getPickingInfo", this).call(this, params);
152
+ var info = (0, _get2.default)((0, _getPrototypeOf2.default)(VectorTileLayer.prototype), "getPickingInfo", this).call(this, params);
128
153
 
129
154
  if (this.state.binary && info.index !== -1) {
130
155
  var data = params.sourceLayer.props.data;
@@ -136,10 +161,10 @@ var CartoTileLayer = function (_MVTLayer) {
136
161
  return info;
137
162
  }
138
163
  }]);
139
- return CartoTileLayer;
164
+ return VectorTileLayer;
140
165
  }(_geoLayers.MVTLayer);
141
166
 
142
- exports.default = CartoTileLayer;
143
- (0, _defineProperty2.default)(CartoTileLayer, "layerName", 'CartoTileLayer');
144
- (0, _defineProperty2.default)(CartoTileLayer, "defaultProps", defaultProps);
145
- //# sourceMappingURL=carto-tile-layer.js.map
167
+ exports.default = VectorTileLayer;
168
+ (0, _defineProperty2.default)(VectorTileLayer, "layerName", 'VectorTileLayer');
169
+ (0, _defineProperty2.default)(VectorTileLayer, "defaultProps", defaultProps);
170
+ //# sourceMappingURL=vector-tile-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/layers/vector-tile-layer.ts"],"names":["CartoVectorTileLoader","defaultTileFormat","TILE_FORMATS","BINARY","defaultProps","MVTLayer","data","TilejsonPropType","formatTiles","VectorTileLayer","binary","props","MVT","setState","parameters","URL","tiles","searchParams","get","mvt","loadOptions","tileJSON","accessToken","gis","format","tile","url","state","Promise","reject","getLoadOptions","fetch","signal","propName","layer","tileBbox","bbox","west","south","east","north","subLayerProps","autoHighlight","extensions","ClipExtension","clipBounds","subLayer","GeoJsonLayer","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"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.cartoBaseSource = cartoBaseSource;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
+
16
+ var _common = require("./common");
17
+
18
+ var _utils = require("./utils");
19
+
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
23
+
24
+ function cartoBaseSource(_x, _x2, _x3) {
25
+ return _cartoBaseSource.apply(this, arguments);
26
+ }
27
+
28
+ function _cartoBaseSource() {
29
+ _cartoBaseSource = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(endpoint, options, urlParameters) {
30
+ var mergedOptions, baseUrl, accessToken, format, headers, errorContext, mapInstantiation, dataUrl, tilejson;
31
+ return _regenerator.default.wrap(function _callee$(_context) {
32
+ while (1) {
33
+ switch (_context.prev = _context.next) {
34
+ case 0:
35
+ mergedOptions = _objectSpread(_objectSpread(_objectSpread({}, _common.SOURCE_DEFAULTS), options), {}, {
36
+ endpoint: endpoint
37
+ });
38
+ baseUrl = (0, _utils.buildApiEndpoint)(mergedOptions);
39
+ accessToken = mergedOptions.accessToken, format = mergedOptions.format;
40
+ headers = _objectSpread({
41
+ Authorization: "Bearer ".concat(options.accessToken)
42
+ }, options.headers);
43
+ errorContext = {
44
+ requestType: 'Map instantiation',
45
+ connection: options.connectionName,
46
+ type: endpoint,
47
+ source: JSON.stringify(urlParameters, undefined, 2)
48
+ };
49
+ _context.next = 7;
50
+ return (0, _utils.requestWithParameters)({
51
+ baseUrl: baseUrl,
52
+ parameters: urlParameters,
53
+ headers: headers,
54
+ errorContext: errorContext
55
+ });
56
+
57
+ case 7:
58
+ mapInstantiation = _context.sent;
59
+ dataUrl = mapInstantiation[format].url[0];
60
+ errorContext.requestType = 'Map data';
61
+
62
+ if (!(format === 'tilejson')) {
63
+ _context.next = 15;
64
+ break;
65
+ }
66
+
67
+ _context.next = 13;
68
+ return (0, _utils.requestWithParameters)({
69
+ baseUrl: dataUrl,
70
+ headers: headers,
71
+ errorContext: errorContext
72
+ });
73
+
74
+ case 13:
75
+ tilejson = _context.sent;
76
+ return _context.abrupt("return", _objectSpread(_objectSpread({}, tilejson), {}, {
77
+ accessToken: accessToken
78
+ }));
79
+
80
+ case 15:
81
+ _context.next = 17;
82
+ return (0, _utils.requestWithParameters)({
83
+ baseUrl: dataUrl,
84
+ headers: headers,
85
+ errorContext: errorContext
86
+ });
87
+
88
+ case 17:
89
+ return _context.abrupt("return", _context.sent);
90
+
91
+ case 18:
92
+ case "end":
93
+ return _context.stop();
94
+ }
95
+ }
96
+ }, _callee);
97
+ }));
98
+ return _cartoBaseSource.apply(this, arguments);
99
+ }
100
+ //# sourceMappingURL=base-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sources/base-source.ts"],"names":["cartoBaseSource","endpoint","options","urlParameters","mergedOptions","SOURCE_DEFAULTS","baseUrl","accessToken","format","headers","Authorization","errorContext","requestType","connection","connectionName","type","source","JSON","stringify","undefined","parameters","mapInstantiation","dataUrl","url","tilejson"],"mappings":";;;;;;;;;;;;;;;AAEA;;AAUA;;;;;;SAEsBA,e;;;;;+EAAf,iBACLC,QADK,EAELC,OAFK,EAGLC,aAHK;AAAA;AAAA;AAAA;AAAA;AAAA;AAKCC,YAAAA,aALD,iDAKqBC,uBALrB,GAKyCH,OALzC;AAKkDD,cAAAA,QAAQ,EAARA;AALlD;AAMCK,YAAAA,OAND,GAMW,6BAAiBF,aAAjB,CANX;AAOEG,YAAAA,WAPF,GAOyBH,aAPzB,CAOEG,WAPF,EAOeC,MAPf,GAOyBJ,aAPzB,CAOeI,MAPf;AAQCC,YAAAA,OARD;AAQYC,cAAAA,aAAa,mBAAYR,OAAO,CAACK,WAApB;AARzB,eAQ+DL,OAAO,CAACO,OARvE;AAUCE,YAAAA,YAVD,GAUiC;AACpCC,cAAAA,WAAW,EAAE,mBADuB;AAEpCC,cAAAA,UAAU,EAAEX,OAAO,CAACY,cAFgB;AAGpCC,cAAAA,IAAI,EAAEd,QAH8B;AAIpCe,cAAAA,MAAM,EAAEC,IAAI,CAACC,SAAL,CAAef,aAAf,EAA8BgB,SAA9B,EAAyC,CAAzC;AAJ4B,aAVjC;AAAA;AAAA,mBAgB0B,kCAAgD;AAC7Eb,cAAAA,OAAO,EAAPA,OAD6E;AAE7Ec,cAAAA,UAAU,EAAEjB,aAFiE;AAG7EM,cAAAA,OAAO,EAAPA,OAH6E;AAI7EE,cAAAA,YAAY,EAAZA;AAJ6E,aAAhD,CAhB1B;;AAAA;AAgBCU,YAAAA,gBAhBD;AAuBCC,YAAAA,OAvBD,GAuBWD,gBAAgB,CAACb,MAAD,CAAhB,CAAyBe,GAAzB,CAA6B,CAA7B,CAvBX;AAwBLZ,YAAAA,YAAY,CAACC,WAAb,GAA2B,UAA3B;;AAxBK,kBA0BDJ,MAAM,KAAK,UA1BV;AAAA;AAAA;AAAA;;AAAA;AAAA,mBA2BoB,kCAAgC;AACrDF,cAAAA,OAAO,EAAEgB,OAD4C;AAErDb,cAAAA,OAAO,EAAPA,OAFqD;AAGrDE,cAAAA,YAAY,EAAZA;AAHqD,aAAhC,CA3BpB;;AAAA;AA2BGa,YAAAA,QA3BH;AAAA,6EAgCQA,QAhCR;AAgCkBjB,cAAAA,WAAW,EAAXA;AAhClB;;AAAA;AAAA;AAAA,mBAmCQ,kCAAkD;AAC7DD,cAAAA,OAAO,EAAEgB,OADoD;AAE7Db,cAAAA,OAAO,EAAPA,OAF6D;AAG7DE,cAAAA,YAAY,EAAZA;AAH6D,aAAlD,CAnCR;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,G","sourcesContent":["import type {MapType} from '../api/maps-api-common';\nimport {APIErrorContext} from '../api/carto-api-error';\nimport {\n CartoSourceOptionalOptions,\n CartoSourceRequiredOptions,\n CartoTilejsonResult,\n GeojsonResult,\n JsonResult,\n SOURCE_DEFAULTS,\n Tilejson,\n TilejsonMapInstantiation\n} from './common';\nimport {buildApiEndpoint, requestWithParameters} from './utils';\n\nexport async function cartoBaseSource<UrlParameters extends Record<string, string>>(\n endpoint: MapType,\n options: Partial<CartoSourceOptionalOptions> & CartoSourceRequiredOptions,\n urlParameters: UrlParameters\n): Promise<CartoTilejsonResult | GeojsonResult | JsonResult> {\n const mergedOptions = {...SOURCE_DEFAULTS, ...options, endpoint};\n const baseUrl = buildApiEndpoint(mergedOptions);\n const {accessToken, format} = mergedOptions;\n const headers = {Authorization: `Bearer ${options.accessToken}`, ...options.headers};\n\n const errorContext: APIErrorContext = {\n requestType: 'Map instantiation',\n connection: options.connectionName,\n type: endpoint,\n source: JSON.stringify(urlParameters, undefined, 2)\n };\n const mapInstantiation = await requestWithParameters<TilejsonMapInstantiation>({\n baseUrl,\n parameters: urlParameters,\n headers,\n errorContext\n });\n\n const dataUrl = mapInstantiation[format].url[0];\n errorContext.requestType = 'Map data';\n\n if (format === 'tilejson') {\n const tilejson = await requestWithParameters<Tilejson>({\n baseUrl: dataUrl,\n headers,\n errorContext\n });\n return {...tilejson, accessToken};\n }\n\n return await requestWithParameters<GeojsonResult | JsonResult>({\n baseUrl: dataUrl,\n headers,\n errorContext\n });\n}\n"],"file":"base-source.js"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.TilejsonPropType = exports.DEFAULT_HEADERS = exports.DEFAULT_PARAMETERS = exports.MAX_GET_LENGTH = exports.V3_MINOR_VERSION = exports.DEFAULT_CLIENT = exports.SOURCE_DEFAULTS = void 0;
9
+
10
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
11
+
12
+ var SOURCE_DEFAULTS = {
13
+ apiBaseUrl: 'https://gcp-us-east1.api.carto.com',
14
+ clientId: 'deck-gl-carto',
15
+ format: 'tilejson',
16
+ formatTiles: 'binary',
17
+ headers: {}
18
+ };
19
+ exports.SOURCE_DEFAULTS = SOURCE_DEFAULTS;
20
+ var DEFAULT_CLIENT = 'deck-gl-carto';
21
+ exports.DEFAULT_CLIENT = DEFAULT_CLIENT;
22
+ var V3_MINOR_VERSION = '3.2';
23
+ exports.V3_MINOR_VERSION = V3_MINOR_VERSION;
24
+ var MAX_GET_LENGTH = 8192;
25
+ exports.MAX_GET_LENGTH = MAX_GET_LENGTH;
26
+ var DEFAULT_PARAMETERS = {
27
+ client: DEFAULT_CLIENT,
28
+ v: V3_MINOR_VERSION
29
+ };
30
+ exports.DEFAULT_PARAMETERS = DEFAULT_PARAMETERS;
31
+ var DEFAULT_HEADERS = {
32
+ Accept: 'application/json',
33
+ 'Content-Type': 'application/json'
34
+ };
35
+ exports.DEFAULT_HEADERS = DEFAULT_HEADERS;
36
+ var TilejsonPropType = {
37
+ type: 'object',
38
+ value: null,
39
+ validate: function validate(value, propType) {
40
+ return propType.optional && value === null || (0, _typeof2.default)(value) === 'object' && Array.isArray(value.tiles) && value.tiles.every(function (url) {
41
+ return typeof url === 'string';
42
+ });
43
+ },
44
+ compare: 2,
45
+ async: true
46
+ };
47
+ exports.TilejsonPropType = TilejsonPropType;
48
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sources/common.ts"],"names":["SOURCE_DEFAULTS","apiBaseUrl","clientId","format","formatTiles","headers","DEFAULT_CLIENT","V3_MINOR_VERSION","MAX_GET_LENGTH","DEFAULT_PARAMETERS","client","v","DEFAULT_HEADERS","Accept","TilejsonPropType","type","value","validate","propType","optional","Array","isArray","tiles","every","url","compare","async"],"mappings":";;;;;;;;;;;AAyCO,IAAMA,eAA2C,GAAG;AACzDC,EAAAA,UAAU,EAAE,oCAD6C;AAEzDC,EAAAA,QAAQ,EAAE,eAF+C;AAGzDC,EAAAA,MAAM,EAAE,UAHiD;AAIzDC,EAAAA,WAAW,EAAE,QAJ4C;AAKzDC,EAAAA,OAAO,EAAE;AALgD,CAApD;;AAkEA,IAAMC,cAAc,GAAG,eAAvB;;AACA,IAAMC,gBAAgB,GAAG,KAAzB;;AACA,IAAMC,cAAc,GAAG,IAAvB;;AAEA,IAAMC,kBAAkB,GAAG;AAChCC,EAAAA,MAAM,EAAEJ,cADwB;AAEhCK,EAAAA,CAAC,EAAEJ;AAF6B,CAA3B;;AAKA,IAAMK,eAAe,GAAG;AAC7BC,EAAAA,MAAM,EAAE,kBADqB;AAE7B,kBAAgB;AAFa,CAAxB;;AAKA,IAAMC,gBAAgB,GAAG;AAC9BC,EAAAA,IAAI,EAAE,QADwB;AAE9BC,EAAAA,KAAK,EAAE,IAFuB;AAG9BC,EAAAA,QAAQ,EAAE,kBAACD,KAAD,EAA6BE,QAA7B;AAAA,WACPA,QAAQ,CAACC,QAAT,IAAqBH,KAAK,KAAK,IAAhC,IACC,sBAAOA,KAAP,MAAiB,QAAjB,IACCI,KAAK,CAACC,OAAN,CAAcL,KAAK,CAACM,KAApB,CADD,IAECN,KAAK,CAACM,KAAN,CAAYC,KAAZ,CAAkB,UAAAC,GAAG;AAAA,aAAI,OAAOA,GAAP,KAAe,QAAnB;AAAA,KAArB,CAJM;AAAA,GAHoB;AAQ9BC,EAAAA,OAAO,EAAE,CARqB;AAS9BC,EAAAA,KAAK,EAAE;AATuB,CAAzB","sourcesContent":["/* eslint-disable camelcase */\nimport type {Feature} from 'geojson';\nimport {Format, MapInstantiation, TileFormat, QueryParameters} from '../api/maps-api-common';\n\nexport type CartoSourceRequiredOptions = {\n accessToken: string;\n connectionName: string;\n};\n\nexport type CartoSourceOptionalOptions = {\n apiBaseUrl: string;\n clientId: string;\n format: Format;\n formatTiles: TileFormat;\n headers: Record<string, string>;\n mapsUrl?: string;\n};\n\nexport type CartoSourceOptions = CartoSourceRequiredOptions & Partial<CartoSourceOptionalOptions>;\n\nexport type CartoAggregationOptions = {\n aggregationExp: string;\n aggregationResLevel?: number;\n};\n\nexport type CartoQuerySourceOptions = {\n spatialDataColumn?: string;\n sqlQuery: string;\n queryParameters?: QueryParameters;\n};\n\nexport type CartoTableSourceOptions = {\n columns?: string[];\n spatialDataColumn?: string;\n tableName: string;\n};\n\nexport type CartoTilesetSourceOptions = {\n tableName: string;\n};\n\nexport const SOURCE_DEFAULTS: CartoSourceOptionalOptions = {\n apiBaseUrl: 'https://gcp-us-east1.api.carto.com',\n clientId: 'deck-gl-carto',\n format: 'tilejson',\n formatTiles: 'binary',\n headers: {}\n};\n\nexport type TilejsonMapInstantiation = MapInstantiation & {\n tilejson: {url: string[]};\n};\n\nexport interface Tilejson {\n tilejson: string;\n name: string;\n description: string;\n version: string;\n attribution: string;\n scheme: string;\n tiles: string[];\n properties_tiles: string[];\n minresolution: number;\n maxresolution: number;\n minzoom: number;\n maxzoom: number;\n bounds: [number, number, number, number];\n center: [number, number, number];\n vector_layers: VectorLayer[];\n tilestats: Tilestats;\n}\n\nexport interface Tilestats {\n layerCount: number;\n layers: Layer[];\n}\n\nexport interface Layer {\n layer: string;\n count: number;\n attributeCount: number;\n attributes: Attribute[];\n}\n\nexport interface Attribute {\n attribute: string;\n type: string;\n}\n\nexport interface VectorLayer {\n id: string;\n minzoom: number;\n maxzoom: number;\n fields: Record<string, string>;\n}\n\nexport type CartoTilejsonResult = Tilejson & {accessToken: string};\nexport type GeojsonResult = {type: 'FeatureCollection'; features: Feature[]};\nexport type JsonResult = any[];\nexport interface TilejsonSource<T> {\n (options: T & {format?: 'tilejson'}): Promise<CartoTilejsonResult>;\n}\nexport interface TypedSource<T> extends TilejsonSource<T> {\n (options: T & {format: 'geojson'}): Promise<GeojsonResult>;\n (options: T & {format: 'json'}): Promise<JsonResult>;\n}\n\nexport const DEFAULT_CLIENT = 'deck-gl-carto';\nexport const V3_MINOR_VERSION = '3.2';\nexport const MAX_GET_LENGTH = 8192;\n\nexport const DEFAULT_PARAMETERS = {\n client: DEFAULT_CLIENT,\n v: V3_MINOR_VERSION\n};\n\nexport const DEFAULT_HEADERS = {\n Accept: 'application/json',\n 'Content-Type': 'application/json'\n};\n\nexport const TilejsonPropType = {\n type: 'object' as const,\n value: null as null | CartoTilejsonResult,\n validate: (value: CartoTilejsonResult, propType) =>\n (propType.optional && value === null) ||\n (typeof value === 'object' &&\n Array.isArray(value.tiles) &&\n value.tiles.every(url => typeof url === 'string')),\n compare: 2,\n async: true\n};\n"],"file":"common.js"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.cartoH3QuerySource = void 0;
9
+
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
+
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+
14
+ var _baseSource = require("./base-source");
15
+
16
+ var cartoH3QuerySource = function () {
17
+ var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(options) {
18
+ var aggregationExp, _options$aggregationR, aggregationResLevel, sqlQuery, _options$spatialDataC, spatialDataColumn, queryParameters, urlParameters;
19
+
20
+ return _regenerator.default.wrap(function _callee$(_context) {
21
+ while (1) {
22
+ switch (_context.prev = _context.next) {
23
+ case 0:
24
+ aggregationExp = options.aggregationExp, _options$aggregationR = options.aggregationResLevel, aggregationResLevel = _options$aggregationR === void 0 ? 4 : _options$aggregationR, sqlQuery = options.sqlQuery, _options$spatialDataC = options.spatialDataColumn, spatialDataColumn = _options$spatialDataC === void 0 ? 'h3:h3' : _options$spatialDataC, queryParameters = options.queryParameters;
25
+ urlParameters = {
26
+ aggregationExp: aggregationExp,
27
+ q: sqlQuery
28
+ };
29
+
30
+ if (aggregationResLevel) {
31
+ urlParameters.aggregationResLevel = String(aggregationResLevel);
32
+ }
33
+
34
+ if (spatialDataColumn) {
35
+ urlParameters.geo_column = spatialDataColumn;
36
+ }
37
+
38
+ if (queryParameters) {
39
+ urlParameters.queryParameters = JSON.stringify(queryParameters);
40
+ }
41
+
42
+ return _context.abrupt("return", (0, _baseSource.cartoBaseSource)('query', options, urlParameters));
43
+
44
+ case 6:
45
+ case "end":
46
+ return _context.stop();
47
+ }
48
+ }
49
+ }, _callee);
50
+ }));
51
+
52
+ return function cartoH3QuerySource(_x) {
53
+ return _ref.apply(this, arguments);
54
+ };
55
+ }();
56
+
57
+ exports.cartoH3QuerySource = cartoH3QuerySource;
58
+ //# sourceMappingURL=h3-query-source.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/sources/h3-query-source.ts"],"names":["cartoH3QuerySource","options","aggregationExp","aggregationResLevel","sqlQuery","spatialDataColumn","queryParameters","urlParameters","q","String","geo_column","JSON","stringify"],"mappings":";;;;;;;;;;;;;AACA;;AAmBA,IAAMA,kBAA6D;AAAA,uEAAG,iBACpEC,OADoE;AAAA;;AAAA;AAAA;AAAA;AAAA;AAIlEC,YAAAA,cAJkE,GAShED,OATgE,CAIlEC,cAJkE,0BAShED,OATgE,CAKlEE,mBALkE,EAKlEA,mBALkE,sCAK5C,CAL4C,0BAMlEC,QANkE,GAShEH,OATgE,CAMlEG,QANkE,0BAShEH,OATgE,CAOlEI,iBAPkE,EAOlEA,iBAPkE,sCAO9C,OAP8C,0BAQlEC,eARkE,GAShEL,OATgE,CAQlEK,eARkE;AAU9DC,YAAAA,aAV8D,GAU/B;AAACL,cAAAA,cAAc,EAAdA,cAAD;AAAiBM,cAAAA,CAAC,EAAEJ;AAApB,aAV+B;;AAYpE,gBAAID,mBAAJ,EAAyB;AACvBI,cAAAA,aAAa,CAACJ,mBAAd,GAAoCM,MAAM,CAACN,mBAAD,CAA1C;AACD;;AACD,gBAAIE,iBAAJ,EAAuB;AACrBE,cAAAA,aAAa,CAACG,UAAd,GAA2BL,iBAA3B;AACD;;AACD,gBAAIC,eAAJ,EAAqB;AACnBC,cAAAA,aAAa,CAACD,eAAd,GAAgCK,IAAI,CAACC,SAAL,CAAeN,eAAf,CAAhC;AACD;;AApBmE,6CAqB7D,iCAA+B,OAA/B,EAAwCL,OAAxC,EAAiDM,aAAjD,CArB6D;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAAH;;AAAA,kBAA7DP,kBAA6D;AAAA;AAAA;AAAA,GAAnE","sourcesContent":["/* eslint-disable camelcase */\nimport {cartoBaseSource} from './base-source';\nimport {\n CartoAggregationOptions,\n CartoQuerySourceOptions,\n CartoSourceOptions,\n TilejsonSource\n} from './common';\n\nexport type CartoH3QuerySourceOptions = CartoSourceOptions &\n CartoQuerySourceOptions &\n CartoAggregationOptions;\ntype UrlParameters = {\n aggregationExp: string;\n aggregationResLevel?: string;\n geo_column?: string;\n q: string;\n queryParameters?: string;\n};\n\nconst cartoH3QuerySource: TilejsonSource<CartoH3QuerySourceOptions> = async function (\n options: CartoH3QuerySourceOptions\n): Promise<any> {\n const {\n aggregationExp,\n aggregationResLevel = 4,\n sqlQuery,\n spatialDataColumn = 'h3:h3',\n queryParameters\n } = options;\n const urlParameters: UrlParameters = {aggregationExp, q: sqlQuery};\n\n if (aggregationResLevel) {\n urlParameters.aggregationResLevel = String(aggregationResLevel);\n }\n if (spatialDataColumn) {\n urlParameters.geo_column = spatialDataColumn;\n }\n if (queryParameters) {\n urlParameters.queryParameters = JSON.stringify(queryParameters);\n }\n return cartoBaseSource<UrlParameters>('query', options, urlParameters);\n};\n\nexport {cartoH3QuerySource};\n"],"file":"h3-query-source.js"}