@deck.gl/carto 8.9.0-alpha.2 → 8.9.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 (149) hide show
  1. package/dist/dist.dev.js +1940 -1675
  2. package/dist/es5/api/layer-map.js +117 -18
  3. package/dist/es5/api/layer-map.js.map +1 -1
  4. package/dist/es5/api/maps-v3-client.js +10 -8
  5. package/dist/es5/api/maps-v3-client.js.map +1 -1
  6. package/dist/es5/api/parseMap.js +62 -7
  7. package/dist/es5/api/parseMap.js.map +1 -1
  8. package/dist/es5/api/types.js +2 -0
  9. package/dist/es5/api/types.js.map +1 -0
  10. package/dist/es5/index.js +0 -20
  11. package/dist/es5/index.js.map +1 -1
  12. package/dist/es5/layers/carto-layer.js +19 -2
  13. package/dist/es5/layers/carto-layer.js.map +1 -1
  14. package/dist/es5/layers/carto-tile-layer.js +33 -107
  15. package/dist/es5/layers/carto-tile-layer.js.map +1 -1
  16. package/dist/es5/layers/h3-tile-layer.js +10 -1
  17. package/dist/es5/layers/h3-tile-layer.js.map +1 -1
  18. package/dist/es5/layers/quadbin-layer.js.map +1 -1
  19. package/dist/es5/layers/quadbin-tile-layer.js +10 -1
  20. package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
  21. package/dist/es5/layers/quadbin-tileset-2d.js +13 -11
  22. package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -1
  23. package/dist/es5/layers/quadbin-utils.js +6 -82
  24. package/dist/es5/layers/quadbin-utils.js.map +1 -1
  25. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +16 -32
  26. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  27. package/dist/es5/layers/schema/carto-tile.js +30 -6
  28. package/dist/es5/layers/schema/carto-tile.js.map +1 -1
  29. package/dist/es5/layers/schema/carto-vector-tile-loader.js +81 -0
  30. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -0
  31. package/dist/es5/layers/schema/spatialjson-utils.js +4 -3
  32. package/dist/es5/layers/schema/spatialjson-utils.js.map +1 -1
  33. package/dist/es5/layers/schema/tile-loader-utils.js +34 -0
  34. package/dist/es5/layers/schema/tile-loader-utils.js.map +1 -0
  35. package/dist/es5/layers/spatial-index-tile-layer.js +40 -0
  36. package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
  37. package/dist/esm/api/layer-map.js +89 -9
  38. package/dist/esm/api/layer-map.js.map +1 -1
  39. package/dist/esm/api/maps-v3-client.js +5 -2
  40. package/dist/esm/api/maps-v3-client.js.map +1 -1
  41. package/dist/esm/api/parseMap.js +67 -7
  42. package/dist/esm/api/parseMap.js.map +1 -1
  43. package/dist/esm/api/types.js +2 -0
  44. package/dist/esm/api/types.js.map +1 -0
  45. package/dist/esm/index.js +0 -1
  46. package/dist/esm/index.js.map +1 -1
  47. package/dist/esm/layers/carto-layer.js +18 -0
  48. package/dist/esm/layers/carto-layer.js.map +1 -1
  49. package/dist/esm/layers/carto-tile-layer.js +31 -82
  50. package/dist/esm/layers/carto-tile-layer.js.map +1 -1
  51. package/dist/esm/layers/h3-tile-layer.js +6 -1
  52. package/dist/esm/layers/h3-tile-layer.js.map +1 -1
  53. package/dist/esm/layers/quadbin-layer.js.map +1 -1
  54. package/dist/esm/layers/quadbin-tile-layer.js +6 -1
  55. package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
  56. package/dist/esm/layers/quadbin-tileset-2d.js +12 -10
  57. package/dist/esm/layers/quadbin-tileset-2d.js.map +1 -1
  58. package/dist/esm/layers/quadbin-utils.js +2 -67
  59. package/dist/esm/layers/quadbin-utils.js.map +1 -1
  60. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +14 -29
  61. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  62. package/dist/esm/layers/schema/carto-tile.js +22 -6
  63. package/dist/esm/layers/schema/carto-tile.js.map +1 -1
  64. package/dist/esm/layers/schema/carto-vector-tile-loader.js +40 -0
  65. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -0
  66. package/dist/esm/layers/schema/spatialjson-utils.js +4 -3
  67. package/dist/esm/layers/schema/spatialjson-utils.js.map +1 -1
  68. package/dist/esm/layers/schema/tile-loader-utils.js +23 -0
  69. package/dist/esm/layers/schema/tile-loader-utils.js.map +1 -0
  70. package/dist/esm/layers/spatial-index-tile-layer.js +40 -1
  71. package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
  72. package/dist.min.js +4 -4
  73. package/package.json +4 -3
  74. package/src/api/layer-map.ts +102 -17
  75. package/src/api/maps-v3-client.ts +5 -3
  76. package/src/api/parseMap.ts +91 -17
  77. package/src/api/types.ts +108 -0
  78. package/src/index.ts +0 -5
  79. package/src/layers/carto-layer.ts +9 -2
  80. package/src/layers/carto-tile-layer.ts +32 -82
  81. package/src/layers/h3-tile-layer.ts +7 -1
  82. package/src/layers/quadbin-layer.ts +1 -1
  83. package/src/layers/quadbin-tile-layer.ts +7 -1
  84. package/src/layers/quadbin-tileset-2d.ts +14 -12
  85. package/src/layers/quadbin-utils.ts +4 -85
  86. package/src/layers/schema/carto-spatial-tile-loader.ts +12 -29
  87. package/src/layers/schema/carto-tile.ts +31 -6
  88. package/src/layers/schema/carto-vector-tile-loader.ts +39 -0
  89. package/src/layers/schema/spatialjson-utils.ts +4 -4
  90. package/src/layers/schema/tile-loader-utils.ts +22 -0
  91. package/src/layers/spatial-index-tile-layer.ts +37 -1
  92. package/typed/api/layer-map.d.ts +14 -13
  93. package/typed/api/layer-map.d.ts.map +1 -1
  94. package/typed/api/maps-v3-client.d.ts +1 -0
  95. package/typed/api/maps-v3-client.d.ts.map +1 -1
  96. package/typed/api/parseMap.d.ts +1 -0
  97. package/typed/api/parseMap.d.ts.map +1 -1
  98. package/typed/api/types.d.ts +87 -0
  99. package/typed/api/types.d.ts.map +1 -0
  100. package/typed/index.d.ts +0 -1
  101. package/typed/index.d.ts.map +1 -1
  102. package/typed/layers/carto-layer.d.ts.map +1 -1
  103. package/typed/layers/carto-tile-layer.d.ts +2 -0
  104. package/typed/layers/carto-tile-layer.d.ts.map +1 -1
  105. package/typed/layers/h3-tile-layer.d.ts.map +1 -1
  106. package/typed/layers/quadbin-layer.d.ts +1 -1
  107. package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
  108. package/typed/layers/quadbin-tileset-2d.d.ts +6 -5
  109. package/typed/layers/quadbin-tileset-2d.d.ts.map +1 -1
  110. package/typed/layers/quadbin-utils.d.ts +2 -12
  111. package/typed/layers/quadbin-utils.d.ts.map +1 -1
  112. package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
  113. package/typed/layers/schema/carto-tile.d.ts +4 -0
  114. package/typed/layers/schema/carto-tile.d.ts.map +1 -1
  115. package/typed/layers/schema/carto-vector-tile-loader.d.ts +4 -0
  116. package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -0
  117. package/typed/layers/schema/spatialjson-utils.d.ts +1 -1
  118. package/typed/layers/schema/spatialjson-utils.d.ts.map +1 -1
  119. package/typed/layers/schema/tile-loader-utils.d.ts +5 -0
  120. package/typed/layers/schema/tile-loader-utils.d.ts.map +1 -0
  121. package/typed/layers/spatial-index-tile-layer.d.ts +2 -1
  122. package/typed/layers/spatial-index-tile-layer.d.ts.map +1 -1
  123. package/typed/api/index.js +0 -3
  124. package/typed/api/layer-map.js +0 -264
  125. package/typed/api/maps-api-common.js +0 -50
  126. package/typed/api/maps-client.js +0 -125
  127. package/typed/api/maps-v3-client.js +0 -304
  128. package/typed/api/parseMap.js +0 -178
  129. package/typed/basemap.js +0 -9
  130. package/typed/config.js +0 -35
  131. package/typed/index.js +0 -10
  132. package/typed/layers/carto-layer.js +0 -173
  133. package/typed/layers/carto-tile-layer.js +0 -105
  134. package/typed/layers/h3-tile-layer.js +0 -47
  135. package/typed/layers/h3-tileset-2d.js +0 -85
  136. package/typed/layers/quadkey-tile-layer.d.ts +0 -21
  137. package/typed/layers/quadkey-tile-layer.d.ts.map +0 -1
  138. package/typed/layers/quadkey-tile-layer.js +0 -42
  139. package/typed/layers/quadkey-tileset-2d.d.ts +0 -15
  140. package/typed/layers/quadkey-tileset-2d.d.ts.map +0 -1
  141. package/typed/layers/quadkey-tileset-2d.js +0 -36
  142. package/typed/layers/schema/carto-tile.js +0 -161
  143. package/typed/layers/spatial-index-tile-layer.js +0 -40
  144. package/typed/style/color-bins-style.js +0 -12
  145. package/typed/style/color-categories-style.js +0 -16
  146. package/typed/style/color-continuous-style.js +0 -12
  147. package/typed/style/palette.js +0 -62
  148. package/typed/style/utils.js +0 -15
  149. package/typed/utils.js +0 -4
@@ -35,6 +35,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
35
35
 
36
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
37
 
38
+ 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; }
39
+
40
+ 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; }
41
+
38
42
  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); }; }
39
43
 
40
44
  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; } }
@@ -129,7 +133,12 @@ var H3TileLayer = function (_CompositeLayer) {
129
133
  TilesetClass: _h3Tileset2d.default,
130
134
  renderSubLayers: renderSubLayers,
131
135
  minZoom: minresolution,
132
- maxZoom: maxresolution
136
+ maxZoom: maxresolution,
137
+ loadOptions: _objectSpread(_objectSpread({}, this.getLoadOptions()), {}, {
138
+ cartoSpatialTile: {
139
+ scheme: 'h3'
140
+ }
141
+ })
133
142
  })];
134
143
  }
135
144
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/h3-tile-layer.ts"],"names":["renderSubLayers","props","data","index","tile","length","H3HexagonLayer","getHexagon","d","id","centerHexagon","highPrecision","defaultProps","aggregationResLevel","H3TileLayer","_checkH3Lib","setState","tileJSON","changeFlags","dataChanged","tiles","state","minresolution","parseInt","maxresolution","minZoom","Math","max","zoom","latitude","maxZoom","min","SpatialIndexTileLayer","TilesetClass","H3Tileset2D","CompositeLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAQA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,KAAK,EAAI;AAC/B,MAAOC,IAAP,GAAeD,KAAf,CAAOC,IAAP;AACA,MAAOC,KAAP,GAAgBF,KAAK,CAACG,IAAtB,CAAOD,KAAP;AACA,MAAI,CAACD,IAAD,IAAS,CAACA,IAAI,CAACG,MAAnB,EAA2B,OAAO,IAAP;AAE3B,SAAO,IAAIC,yBAAJ,CAAmBL,KAAnB,EAA0B;AAC/BM,IAAAA,UAAU,EAAE,oBAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,EAAN;AAAA,KADkB;AAE/BC,IAAAA,aAAa,EAAEP,KAFgB;AAG/BQ,IAAAA,aAAa,EAAE;AAHgB,GAA1B,CAAP;AAKD,CAVD;;AAYA,IAAMC,YAA+C,GAAG;AACtDC,EAAAA,mBAAmB,EAAE;AADiC,CAAxD;;IAgBqBC,W;;;;;;;;;;;;;;;;;;;;;WAWnB,2BAAwB;AACtBR,gCAAeS,WAAf;;AACA,WAAKC,QAAL,CAAc;AAACd,QAAAA,IAAI,EAAE,IAAP;AAAae,QAAAA,QAAQ,EAAE;AAAvB,OAAd;AACD;;;WAED,2BAAyD;AAAA,UAA5CC,WAA4C,QAA5CA,WAA4C;;AACvD,UAAIA,WAAW,CAACC,WAAhB,EAA6B;AAC3B,YAAKjB,IAAL,GAAa,KAAKD,KAAlB,CAAKC,IAAL;AACA,YAAMe,QAAQ,GAAGf,IAAjB;AACAA,QAAAA,IAAI,GAAIe,QAAD,CAAkBG,KAAzB;AACA,aAAKJ,QAAL,CAAc;AAACd,UAAAA,IAAI,EAAJA,IAAD;AAAOe,UAAAA,QAAQ,EAARA;AAAP,SAAd;AACD;AACF;;;WAED,wBAA0C;AACxC,wBAAyB,KAAKI,KAA9B;AAAA,UAAOnB,IAAP,eAAOA,IAAP;AAAA,UAAae,QAAb,eAAaA,QAAb;AACA,UAAIK,aAAa,GAAGC,QAAQ,CAACN,QAAQ,CAACK,aAAV,CAA5B;AACA,UAAIE,aAAa,GAAGD,QAAQ,CAACN,QAAQ,CAACO,aAAV,CAA5B;;AAIA,UAAI,KAAKvB,KAAL,CAAWwB,OAAf,EAAwB;AACtBH,QAAAA,aAAa,GAAGI,IAAI,CAACC,GAAL,CACdL,aADc,EAEd,uCAAqB;AAACM,UAAAA,IAAI,EAAE,KAAK3B,KAAL,CAAWwB,OAAlB;AAA2BI,UAAAA,QAAQ,EAAE;AAArC,SAArB,CAFc,CAAhB;AAID;;AACD,UAAI,KAAK5B,KAAL,CAAW6B,OAAf,EAAwB;AACtBN,QAAAA,aAAa,GAAGE,IAAI,CAACK,GAAL,CACdP,aADc,EAEd,uCAAqB;AAACI,UAAAA,IAAI,EAAE,KAAK3B,KAAL,CAAW6B,OAAlB;AAA2BD,UAAAA,QAAQ,EAAE;AAArC,SAArB,CAFc,CAAhB;AAID;;AAID,aAAO,CACL,IAAIG,8BAAJ,CAA0B,KAAK/B,KAA/B,EAAsC;AACpCQ,QAAAA,EAAE,0BAAmB,KAAKR,KAAL,CAAWQ,EAA9B,CADkC;AAEpCP,QAAAA,IAAI,EAAJA,IAFoC;AAIpC+B,QAAAA,YAAY,EAAEC,oBAJsB;AAKpClC,QAAAA,eAAe,EAAfA,eALoC;AAOpCyB,QAAAA,OAAO,EAAEH,aAP2B;AAQpCQ,QAAAA,OAAO,EAAEN;AAR2B,OAAtC,CADK,CAAP;AAYD;;;EA3DqEW,oB;;;8BAAnDrB,W,eAGA,a;8BAHAA,W,kBAIGF,Y","sourcesContent":["import {\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayersList,\n UpdateParameters,\n DefaultProps\n} from '@deck.gl/core';\nimport {H3HexagonLayer} from '@deck.gl/geo-layers';\nimport H3Tileset2D, {getHexagonResolution} from './h3-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\n\nconst renderSubLayers = props => {\n const {data} = props;\n const {index} = props.tile;\n if (!data || !data.length) return null;\n\n return new H3HexagonLayer(props, {\n getHexagon: d => d.id,\n centerHexagon: index,\n highPrecision: true\n });\n};\n\nconst defaultProps: DefaultProps<H3HexagonLayerProps> = {\n aggregationResLevel: 4\n};\n\n/** All properties supported by H3TileLayer. */\nexport type H3TileLayerProps<DataT = any> = _H3TileLayerProps<DataT> & CompositeLayerProps<DataT>;\n\n// TODO: use type from h3-hexagon-layer when available\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype H3HexagonLayerProps<DataT = any> = Record<string, any>;\n\n/** Properties added by H3TileLayer. */\ntype _H3TileLayerProps<DataT> = H3HexagonLayerProps<DataT> & {\n aggregationResLevel?: number;\n};\n\nexport default class H3TileLayer<DataT = any, ExtraPropsT = {}> extends CompositeLayer<\n ExtraPropsT & Required<_H3TileLayerProps<DataT>>\n> {\n static layerName = 'H3TileLayer';\n static defaultProps = defaultProps;\n\n state!: {\n tileJSON: any;\n data: any;\n };\n\n initializeState(): void {\n H3HexagonLayer._checkH3Lib();\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 let minresolution = parseInt(tileJSON.minresolution);\n let maxresolution = parseInt(tileJSON.maxresolution);\n\n // Convert Mercator zooms provided in props into H3 res levels\n // and clip into valid range provided from the tilejson\n if (this.props.minZoom) {\n minresolution = Math.max(\n minresolution,\n getHexagonResolution({zoom: this.props.minZoom, latitude: 0})\n );\n }\n if (this.props.maxZoom) {\n maxresolution = Math.min(\n maxresolution,\n getHexagonResolution({zoom: this.props.maxZoom, latitude: 0})\n );\n }\n\n // The naming is unfortunate, but minZoom & maxZoom in the context\n // of a Tileset2D refer to the resolution levels, not the Mercator zooms\n return [\n new SpatialIndexTileLayer(this.props, {\n id: `h3-tile-layer-${this.props.id}`,\n data,\n // @ts-expect-error Tileset2D should be generic over TileIndex\n TilesetClass: H3Tileset2D,\n renderSubLayers,\n // minZoom and maxZoom are H3 resolutions, however we must use this naming as that is what the Tileset2D class expects\n minZoom: minresolution,\n maxZoom: maxresolution\n })\n ];\n }\n}\n"],"file":"h3-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/h3-tile-layer.ts"],"names":["renderSubLayers","props","data","index","tile","length","H3HexagonLayer","getHexagon","d","id","centerHexagon","highPrecision","defaultProps","aggregationResLevel","H3TileLayer","_checkH3Lib","setState","tileJSON","changeFlags","dataChanged","tiles","state","minresolution","parseInt","maxresolution","minZoom","Math","max","zoom","latitude","maxZoom","min","SpatialIndexTileLayer","TilesetClass","H3Tileset2D","loadOptions","getLoadOptions","cartoSpatialTile","scheme","CompositeLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAQA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,KAAK,EAAI;AAC/B,MAAOC,IAAP,GAAeD,KAAf,CAAOC,IAAP;AACA,MAAOC,KAAP,GAAgBF,KAAK,CAACG,IAAtB,CAAOD,KAAP;AACA,MAAI,CAACD,IAAD,IAAS,CAACA,IAAI,CAACG,MAAnB,EAA2B,OAAO,IAAP;AAE3B,SAAO,IAAIC,yBAAJ,CAAmBL,KAAnB,EAA0B;AAC/BM,IAAAA,UAAU,EAAE,oBAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,EAAN;AAAA,KADkB;AAE/BC,IAAAA,aAAa,EAAEP,KAFgB;AAG/BQ,IAAAA,aAAa,EAAE;AAHgB,GAA1B,CAAP;AAKD,CAVD;;AAYA,IAAMC,YAA+C,GAAG;AACtDC,EAAAA,mBAAmB,EAAE;AADiC,CAAxD;;IAgBqBC,W;;;;;;;;;;;;;;;;;;;;;WAWnB,2BAAwB;AACtBR,gCAAeS,WAAf;;AACA,WAAKC,QAAL,CAAc;AAACd,QAAAA,IAAI,EAAE,IAAP;AAAae,QAAAA,QAAQ,EAAE;AAAvB,OAAd;AACD;;;WAED,2BAAyD;AAAA,UAA5CC,WAA4C,QAA5CA,WAA4C;;AACvD,UAAIA,WAAW,CAACC,WAAhB,EAA6B;AAC3B,YAAKjB,IAAL,GAAa,KAAKD,KAAlB,CAAKC,IAAL;AACA,YAAMe,QAAQ,GAAGf,IAAjB;AACAA,QAAAA,IAAI,GAAIe,QAAD,CAAkBG,KAAzB;AACA,aAAKJ,QAAL,CAAc;AAACd,UAAAA,IAAI,EAAJA,IAAD;AAAOe,UAAAA,QAAQ,EAARA;AAAP,SAAd;AACD;AACF;;;WAED,wBAA0C;AACxC,wBAAyB,KAAKI,KAA9B;AAAA,UAAOnB,IAAP,eAAOA,IAAP;AAAA,UAAae,QAAb,eAAaA,QAAb;AACA,UAAIK,aAAa,GAAGC,QAAQ,CAACN,QAAQ,CAACK,aAAV,CAA5B;AACA,UAAIE,aAAa,GAAGD,QAAQ,CAACN,QAAQ,CAACO,aAAV,CAA5B;;AAIA,UAAI,KAAKvB,KAAL,CAAWwB,OAAf,EAAwB;AACtBH,QAAAA,aAAa,GAAGI,IAAI,CAACC,GAAL,CACdL,aADc,EAEd,uCAAqB;AAACM,UAAAA,IAAI,EAAE,KAAK3B,KAAL,CAAWwB,OAAlB;AAA2BI,UAAAA,QAAQ,EAAE;AAArC,SAArB,CAFc,CAAhB;AAID;;AACD,UAAI,KAAK5B,KAAL,CAAW6B,OAAf,EAAwB;AACtBN,QAAAA,aAAa,GAAGE,IAAI,CAACK,GAAL,CACdP,aADc,EAEd,uCAAqB;AAACI,UAAAA,IAAI,EAAE,KAAK3B,KAAL,CAAW6B,OAAlB;AAA2BD,UAAAA,QAAQ,EAAE;AAArC,SAArB,CAFc,CAAhB;AAID;;AAID,aAAO,CACL,IAAIG,8BAAJ,CAA0B,KAAK/B,KAA/B,EAAsC;AACpCQ,QAAAA,EAAE,0BAAmB,KAAKR,KAAL,CAAWQ,EAA9B,CADkC;AAEpCP,QAAAA,IAAI,EAAJA,IAFoC;AAIpC+B,QAAAA,YAAY,EAAEC,oBAJsB;AAKpClC,QAAAA,eAAe,EAAfA,eALoC;AAOpCyB,QAAAA,OAAO,EAAEH,aAP2B;AAQpCQ,QAAAA,OAAO,EAAEN,aAR2B;AASpCW,QAAAA,WAAW,kCACN,KAAKC,cAAL,EADM;AAETC,UAAAA,gBAAgB,EAAE;AAChBC,YAAAA,MAAM,EAAE;AADQ;AAFT;AATyB,OAAtC,CADK,CAAP;AAkBD;;;EAjEqEC,oB;;;8BAAnDzB,W,eAGA,a;8BAHAA,W,kBAIGF,Y","sourcesContent":["import {\n CompositeLayer,\n CompositeLayerProps,\n Layer,\n LayersList,\n UpdateParameters,\n DefaultProps\n} from '@deck.gl/core';\nimport {H3HexagonLayer} from '@deck.gl/geo-layers';\nimport H3Tileset2D, {getHexagonResolution} from './h3-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\n\nconst renderSubLayers = props => {\n const {data} = props;\n const {index} = props.tile;\n if (!data || !data.length) return null;\n\n return new H3HexagonLayer(props, {\n getHexagon: d => d.id,\n centerHexagon: index,\n highPrecision: true\n });\n};\n\nconst defaultProps: DefaultProps<H3HexagonLayerProps> = {\n aggregationResLevel: 4\n};\n\n/** All properties supported by H3TileLayer. */\nexport type H3TileLayerProps<DataT = any> = _H3TileLayerProps<DataT> & CompositeLayerProps<DataT>;\n\n// TODO: use type from h3-hexagon-layer when available\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype H3HexagonLayerProps<DataT = any> = Record<string, any>;\n\n/** Properties added by H3TileLayer. */\ntype _H3TileLayerProps<DataT> = H3HexagonLayerProps<DataT> & {\n aggregationResLevel?: number;\n};\n\nexport default class H3TileLayer<DataT = any, ExtraPropsT = {}> extends CompositeLayer<\n ExtraPropsT & Required<_H3TileLayerProps<DataT>>\n> {\n static layerName = 'H3TileLayer';\n static defaultProps = defaultProps;\n\n state!: {\n tileJSON: any;\n data: any;\n };\n\n initializeState(): void {\n H3HexagonLayer._checkH3Lib();\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 let minresolution = parseInt(tileJSON.minresolution);\n let maxresolution = parseInt(tileJSON.maxresolution);\n\n // Convert Mercator zooms provided in props into H3 res levels\n // and clip into valid range provided from the tilejson\n if (this.props.minZoom) {\n minresolution = Math.max(\n minresolution,\n getHexagonResolution({zoom: this.props.minZoom, latitude: 0})\n );\n }\n if (this.props.maxZoom) {\n maxresolution = Math.min(\n maxresolution,\n getHexagonResolution({zoom: this.props.maxZoom, latitude: 0})\n );\n }\n\n // The naming is unfortunate, but minZoom & maxZoom in the context\n // of a Tileset2D refer to the resolution levels, not the Mercator zooms\n return [\n new SpatialIndexTileLayer(this.props, {\n id: `h3-tile-layer-${this.props.id}`,\n data,\n // @ts-expect-error Tileset2D should be generic over TileIndex\n TilesetClass: H3Tileset2D,\n renderSubLayers,\n // minZoom and maxZoom are H3 resolutions, however we must use this naming as that is what the Tileset2D class expects\n minZoom: minresolution,\n maxZoom: maxresolution,\n loadOptions: {\n ...this.getLoadOptions(),\n cartoSpatialTile: {\n scheme: 'h3'\n }\n }\n })\n ];\n }\n}\n"],"file":"h3-tile-layer.js"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-layer.ts"],"names":["defaultProps","getQuadbin","type","value","d","quadbin","QuadbinLayer","props","data","_normalize","positionFormat","getPolygon","x","objectInfo","GeoCellLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AAIA;;;;;;AAEA,IAAMA,YAA6C,GAAG;AACpDC,EAAAA,UAAU,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,eAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,OAAN;AAAA;AAA3B;AADwC,CAAtD;;IAiBqBC,Y;;;;;;;;;;;;WAOnB,yBAAuD;AACrD,wBAA2B,KAAKC,KAAhC;AAAA,UAAOC,IAAP,eAAOA,IAAP;AAAA,UAAaP,UAAb,eAAaA,UAAb;AAEA,aAAO;AACLO,QAAAA,IAAI,EAAJA,IADK;AAELC,QAAAA,UAAU,EAAE,KAFP;AAGLC,QAAAA,cAAc,EAAE,IAHX;AAKLC,QAAAA,UAAU,EAAE,oBAACC,CAAD,EAAWC,UAAX;AAAA,iBAA0B,qCAAkBZ,UAAU,CAACW,CAAD,EAAIC,UAAJ,CAA5B,CAA1B;AAAA;AALP,OAAP;AAOD;;;EAjBqEC,wB;;;8BAAnDR,Y,eAIA,c;8BAJAA,Y,kBAKGN,Y","sourcesContent":["import {AccessorFunction, DefaultProps} from '@deck.gl/core';\nimport {\n _GeoCellLayer as GeoCellLayer,\n _GeoCellLayerProps as GeoCellLayerProps\n} from '@deck.gl/geo-layers';\nimport {getQuadbinPolygon} from './quadbin-utils';\n\nconst defaultProps: DefaultProps<QuadbinLayerProps> = {\n getQuadbin: {type: 'accessor', value: d => d.quadbin}\n};\n\n/** All properties supported by QuadbinLayer. */\nexport type QuadbinLayerProps<DataT = any> = _QuadbinLayerProps<DataT> & GeoCellLayerProps<DataT>;\n\n/** Properties added by QuadbinLayer. */\ntype _QuadbinLayerProps<DataT> = {\n /**\n * Called for each data object to retrieve the quadbin string identifier.\n *\n * By default, it reads `quadbin` property of data object.\n */\n getQuadbin?: AccessorFunction<DataT, string>;\n};\n\nexport default class QuadbinLayer<DataT = any, ExtraProps = {}> extends GeoCellLayer<\n DataT,\n Required<_QuadbinLayerProps<DataT>> & ExtraProps\n> {\n static layerName = 'QuadbinLayer';\n static defaultProps = defaultProps;\n\n indexToBounds(): Partial<GeoCellLayer['props']> | null {\n const {data, getQuadbin} = this.props;\n\n return {\n data,\n _normalize: false,\n positionFormat: 'XY',\n\n getPolygon: (x: DataT, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo))\n };\n }\n}\n"],"file":"quadbin-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/quadbin-layer.ts"],"names":["defaultProps","getQuadbin","type","value","d","quadbin","QuadbinLayer","props","data","_normalize","positionFormat","getPolygon","x","objectInfo","GeoCellLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;AACA;;AAIA;;;;;;AAEA,IAAMA,YAA6C,GAAG;AACpDC,EAAAA,UAAU,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,eAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,OAAN;AAAA;AAA3B;AADwC,CAAtD;;IAiBqBC,Y;;;;;;;;;;;;WAOnB,yBAAuD;AACrD,wBAA2B,KAAKC,KAAhC;AAAA,UAAOC,IAAP,eAAOA,IAAP;AAAA,UAAaP,UAAb,eAAaA,UAAb;AAEA,aAAO;AACLO,QAAAA,IAAI,EAAJA,IADK;AAELC,QAAAA,UAAU,EAAE,KAFP;AAGLC,QAAAA,cAAc,EAAE,IAHX;AAKLC,QAAAA,UAAU,EAAE,oBAACC,CAAD,EAAWC,UAAX;AAAA,iBAA0B,qCAAkBZ,UAAU,CAACW,CAAD,EAAIC,UAAJ,CAA5B,CAA1B;AAAA;AALP,OAAP;AAOD;;;EAjBqEC,wB;;;8BAAnDR,Y,eAIA,c;8BAJAA,Y,kBAKGN,Y","sourcesContent":["import {AccessorFunction, DefaultProps} from '@deck.gl/core';\nimport {\n _GeoCellLayer as GeoCellLayer,\n _GeoCellLayerProps as GeoCellLayerProps\n} from '@deck.gl/geo-layers';\nimport {getQuadbinPolygon} from './quadbin-utils';\n\nconst defaultProps: DefaultProps<QuadbinLayerProps> = {\n getQuadbin: {type: 'accessor', value: d => d.quadbin}\n};\n\n/** All properties supported by QuadbinLayer. */\nexport type QuadbinLayerProps<DataT = any> = _QuadbinLayerProps<DataT> & GeoCellLayerProps<DataT>;\n\n/** Properties added by QuadbinLayer. */\ntype _QuadbinLayerProps<DataT> = {\n /**\n * Called for each data object to retrieve the quadbin string identifier.\n *\n * By default, it reads `quadbin` property of data object.\n */\n getQuadbin?: AccessorFunction<DataT, bigint>;\n};\n\nexport default class QuadbinLayer<DataT = any, ExtraProps = {}> extends GeoCellLayer<\n DataT,\n Required<_QuadbinLayerProps<DataT>> & ExtraProps\n> {\n static layerName = 'QuadbinLayer';\n static defaultProps = defaultProps;\n\n indexToBounds(): Partial<GeoCellLayer['props']> | null {\n const {data, getQuadbin} = this.props;\n\n return {\n data,\n _normalize: false,\n positionFormat: 'XY',\n\n getPolygon: (x: DataT, objectInfo) => getQuadbinPolygon(getQuadbin(x, objectInfo))\n };\n }\n}\n"],"file":"quadbin-layer.js"}
@@ -29,6 +29,10 @@ var _quadbinTileset2d = _interopRequireDefault(require("./quadbin-tileset-2d"));
29
29
 
30
30
  var _spatialIndexTileLayer = _interopRequireDefault(require("./spatial-index-tile-layer"));
31
31
 
32
+ 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; }
33
+
34
+ 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; }
35
+
32
36
  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); }; }
33
37
 
34
38
  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; } }
@@ -101,7 +105,12 @@ var QuadbinTileLayer = function (_CompositeLayer) {
101
105
  data: data,
102
106
  TilesetClass: _quadbinTileset2d.default,
103
107
  renderSubLayers: renderSubLayers,
104
- maxZoom: maxZoom
108
+ maxZoom: maxZoom,
109
+ loadOptions: _objectSpread(_objectSpread({}, this.getLoadOptions()), {}, {
110
+ cartoSpatialTile: {
111
+ scheme: 'quadbin'
112
+ }
113
+ })
105
114
  })];
106
115
  }
107
116
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["renderSubLayers","props","data","length","QuadbinLayer","getQuadbin","d","id","defaultProps","aggregationResLevel","QuadbinTileLayer","setState","tileJSON","changeFlags","dataChanged","tiles","state","maxZoom","parseInt","maxresolution","SpatialIndexTileLayer","TilesetClass","QuadbinTileset2D","CompositeLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAQA;;AACA;;AACA;;;;;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,KAAK,EAAI;AAC/B,MAAOC,IAAP,GAAeD,KAAf,CAAOC,IAAP;AACA,MAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B,OAAO,IAAP;AAC3B,SAAO,IAAIC,qBAAJ,CAAiBH,KAAjB,EAAwB;AAC7BI,IAAAA,UAAU,EAAE,oBAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,EAAN;AAAA;AADgB,GAAxB,CAAP;AAGD,CAND;;AAQA,IAAMC,YAAiD,GAAG;AACxDC,EAAAA,mBAAmB,EAAE;AADmC,CAA1D;;IAaqBC,gB;;;;;;;;;;;;;;;;;;;;;WAUnB,2BAAwB;AACtB,WAAKC,QAAL,CAAc;AAACT,QAAAA,IAAI,EAAE,IAAP;AAAaU,QAAAA,QAAQ,EAAE;AAAvB,OAAd;AACD;;;WAED,2BAAyD;AAAA,UAA5CC,WAA4C,QAA5CA,WAA4C;;AACvD,UAAIA,WAAW,CAACC,WAAhB,EAA6B;AAC3B,YAAKZ,IAAL,GAAa,KAAKD,KAAlB,CAAKC,IAAL;AACA,YAAMU,QAAQ,GAAGV,IAAjB;AACAA,QAAAA,IAAI,GAAIU,QAAD,CAAkBG,KAAzB;AACA,aAAKJ,QAAL,CAAc;AAACT,UAAAA,IAAI,EAAJA,IAAD;AAAOU,UAAAA,QAAQ,EAARA;AAAP,SAAd;AACD;AACF;;;WAED,wBAA0C;AACxC,wBAAyB,KAAKI,KAA9B;AAAA,UAAOd,IAAP,eAAOA,IAAP;AAAA,UAAaU,QAAb,eAAaA,QAAb;AACA,UAAMK,OAAO,GAAGC,QAAQ,CAACN,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAEO,aAAX,CAAxB;AACA,aAAO,CACL,IAAIC,8BAAJ,CAA0B,KAAKnB,KAA/B,EAAsC;AACpCM,QAAAA,EAAE,+BAAwB,KAAKN,KAAL,CAAWM,EAAnC,CADkC;AAEpCL,QAAAA,IAAI,EAAJA,IAFoC;AAIpCmB,QAAAA,YAAY,EAAEC,yBAJsB;AAKpCtB,QAAAA,eAAe,EAAfA,eALoC;AAMpCiB,QAAAA,OAAO,EAAPA;AANoC,OAAtC,CADK,CAAP;AAUD;;;EApCyEM,oB;;;8BAAvDb,gB,eAGA,kB;8BAHAA,gB,kBAIGF,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';\n\nconst renderSubLayers = props => {\n const {data} = props;\n if (!data || !data.length) return null;\n return new QuadbinLayer(props, {\n getQuadbin: d => 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<DataT>;\n\n/** Properties added by QuadbinTileLayer. */\ntype _QuadbinTileLayerProps<DataT> = QuadbinLayerProps<DataT> & {\n aggregationResLevel?: number;\n};\n\nexport default class QuadbinTileLayer<DataT = any, ExtraProps = {}> extends CompositeLayer<\n ExtraProps & Required<_QuadbinTileLayerProps<DataT>>\n> {\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 })\n ];\n }\n}\n"],"file":"quadbin-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["renderSubLayers","props","data","length","QuadbinLayer","getQuadbin","d","id","defaultProps","aggregationResLevel","QuadbinTileLayer","setState","tileJSON","changeFlags","dataChanged","tiles","state","maxZoom","parseInt","maxresolution","SpatialIndexTileLayer","TilesetClass","QuadbinTileset2D","loadOptions","getLoadOptions","cartoSpatialTile","scheme","CompositeLayer"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAQA;;AACA;;AACA;;;;;;;;;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAAAC,KAAK,EAAI;AAC/B,MAAOC,IAAP,GAAeD,KAAf,CAAOC,IAAP;AACA,MAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B,OAAO,IAAP;AAC3B,SAAO,IAAIC,qBAAJ,CAAiBH,KAAjB,EAAwB;AAC7BI,IAAAA,UAAU,EAAE,oBAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,EAAN;AAAA;AADgB,GAAxB,CAAP;AAGD,CAND;;AAQA,IAAMC,YAAiD,GAAG;AACxDC,EAAAA,mBAAmB,EAAE;AADmC,CAA1D;;IAaqBC,gB;;;;;;;;;;;;;;;;;;;;;WAUnB,2BAAwB;AACtB,WAAKC,QAAL,CAAc;AAACT,QAAAA,IAAI,EAAE,IAAP;AAAaU,QAAAA,QAAQ,EAAE;AAAvB,OAAd;AACD;;;WAED,2BAAyD;AAAA,UAA5CC,WAA4C,QAA5CA,WAA4C;;AACvD,UAAIA,WAAW,CAACC,WAAhB,EAA6B;AAC3B,YAAKZ,IAAL,GAAa,KAAKD,KAAlB,CAAKC,IAAL;AACA,YAAMU,QAAQ,GAAGV,IAAjB;AACAA,QAAAA,IAAI,GAAIU,QAAD,CAAkBG,KAAzB;AACA,aAAKJ,QAAL,CAAc;AAACT,UAAAA,IAAI,EAAJA,IAAD;AAAOU,UAAAA,QAAQ,EAARA;AAAP,SAAd;AACD;AACF;;;WAED,wBAA0C;AACxC,wBAAyB,KAAKI,KAA9B;AAAA,UAAOd,IAAP,eAAOA,IAAP;AAAA,UAAaU,QAAb,eAAaA,QAAb;AACA,UAAMK,OAAO,GAAGC,QAAQ,CAACN,QAAD,aAACA,QAAD,uBAACA,QAAQ,CAAEO,aAAX,CAAxB;AACA,aAAO,CACL,IAAIC,8BAAJ,CAA0B,KAAKnB,KAA/B,EAAsC;AACpCM,QAAAA,EAAE,+BAAwB,KAAKN,KAAL,CAAWM,EAAnC,CADkC;AAEpCL,QAAAA,IAAI,EAAJA,IAFoC;AAIpCmB,QAAAA,YAAY,EAAEC,yBAJsB;AAKpCtB,QAAAA,eAAe,EAAfA,eALoC;AAMpCiB,QAAAA,OAAO,EAAPA,OANoC;AAOpCM,QAAAA,WAAW,kCACN,KAAKC,cAAL,EADM;AAETC,UAAAA,gBAAgB,EAAE;AAChBC,YAAAA,MAAM,EAAE;AADQ;AAFT;AAPyB,OAAtC,CADK,CAAP;AAgBD;;;EA1CyEC,oB;;;8BAAvDjB,gB,eAGA,kB;8BAHAA,gB,kBAIGF,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';\n\nconst renderSubLayers = props => {\n const {data} = props;\n if (!data || !data.length) return null;\n return new QuadbinLayer(props, {\n getQuadbin: d => 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<DataT>;\n\n/** Properties added by QuadbinTileLayer. */\ntype _QuadbinTileLayerProps<DataT> = QuadbinLayerProps<DataT> & {\n aggregationResLevel?: number;\n};\n\nexport default class QuadbinTileLayer<DataT = any, ExtraProps = {}> extends CompositeLayer<\n ExtraProps & Required<_QuadbinTileLayerProps<DataT>>\n> {\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: {\n scheme: 'quadbin'\n }\n }\n })\n ];\n }\n}\n"],"file":"quadbin-tile-layer.js"}
@@ -21,7 +21,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
21
21
 
22
22
  var _geoLayers = require("@deck.gl/geo-layers");
23
23
 
24
- var _quadbinUtils = require("./quadbin-utils");
24
+ var _quadbin = require("quadbin");
25
25
 
26
26
  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); }; }
27
27
 
@@ -40,36 +40,38 @@ var QuadbinTileset2D = function (_Tileset2D) {
40
40
  (0, _createClass2.default)(QuadbinTileset2D, [{
41
41
  key: "getTileIndices",
42
42
  value: function getTileIndices(opts) {
43
- return (0, _get2.default)((0, _getPrototypeOf2.default)(QuadbinTileset2D.prototype), "getTileIndices", this).call(this, opts).map(_quadbinUtils.tileToQuadbin).map(function (i) {
43
+ return (0, _get2.default)((0, _getPrototypeOf2.default)(QuadbinTileset2D.prototype), "getTileIndices", this).call(this, opts).map(_quadbin.tileToCell).map(function (q) {
44
44
  return {
45
- i: i
45
+ q: q,
46
+ i: (0, _quadbin.bigIntToHex)(q)
46
47
  };
47
48
  });
48
49
  }
49
50
  }, {
50
51
  key: "getTileId",
51
52
  value: function getTileId(_ref) {
52
- var i = _ref.i;
53
- return i;
53
+ var q = _ref.q,
54
+ i = _ref.i;
55
+ return i || (0, _quadbin.bigIntToHex)(q);
54
56
  }
55
57
  }, {
56
58
  key: "getTileMetadata",
57
59
  value: function getTileMetadata(_ref2) {
58
- var i = _ref2.i;
59
- return (0, _get2.default)((0, _getPrototypeOf2.default)(QuadbinTileset2D.prototype), "getTileMetadata", this).call(this, (0, _quadbinUtils.quadbinToTile)(i));
60
+ var q = _ref2.q;
61
+ return (0, _get2.default)((0, _getPrototypeOf2.default)(QuadbinTileset2D.prototype), "getTileMetadata", this).call(this, (0, _quadbin.cellToTile)(q));
60
62
  }
61
63
  }, {
62
64
  key: "getTileZoom",
63
65
  value: function getTileZoom(_ref3) {
64
- var i = _ref3.i;
65
- return Number((0, _quadbinUtils.quadbinZoom)(i));
66
+ var q = _ref3.q;
67
+ return Number((0, _quadbin.getResolution)(q));
66
68
  }
67
69
  }, {
68
70
  key: "getParentIndex",
69
71
  value: function getParentIndex(_ref4) {
70
- var i = _ref4.i;
72
+ var q = _ref4.q;
71
73
  return {
72
- i: (0, _quadbinUtils.quadbinParent)(i)
74
+ q: (0, _quadbin.cellToParent)(q)
73
75
  };
74
76
  }
75
77
  }]);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-tileset-2d.ts"],"names":["QuadbinTileset2D","opts","map","tileToQuadbin","i","Number","Tileset2D"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;IAIqBA,gB;;;;;;;;;;;;WAEnB,wBAAeC,IAAf,EAAyC;AACvC,aAAO,iHACWA,IADX,EAEJC,GAFI,CAEAC,2BAFA,EAGJD,GAHI,CAGA,UAAAE,CAAC;AAAA,eAAK;AAACA,UAAAA,CAAC,EAADA;AAAD,SAAL;AAAA,OAHD,CAAP;AAID;;;WAGD,yBAAyC;AAAA,UAA9BA,CAA8B,QAA9BA,CAA8B;AACvC,aAAOA,CAAP;AACD;;;WAGD,gCAAuC;AAAA,UAAtBA,CAAsB,SAAtBA,CAAsB;AACrC,+HAA6B,iCAAcA,CAAd,CAA7B;AACD;;;WAGD,4BAA2C;AAAA,UAA9BA,CAA8B,SAA9BA,CAA8B;AACzC,aAAOC,MAAM,CAAC,+BAAYD,CAAZ,CAAD,CAAb;AACD;;;WAGD,+BAAwD;AAAA,UAAxCA,CAAwC,SAAxCA,CAAwC;AACtD,aAAO;AAACA,QAAAA,CAAC,EAAE,iCAAcA,CAAd;AAAJ,OAAP;AACD;;;EA3B2CE,qB","sourcesContent":["import {_Tileset2D as Tileset2D} from '@deck.gl/geo-layers';\nimport {tileToQuadbin, quadbinToTile, quadbinParent, quadbinZoom} from './quadbin-utils';\n\ntype QuadbinTileIndex = {i: string};\n\nexport default class QuadbinTileset2D extends Tileset2D {\n // @ts-expect-error for spatial indices, TileSet2d should be parametrized by TileIndexT\n getTileIndices(opts): QuadbinTileIndex[] {\n return super\n .getTileIndices(opts)\n .map(tileToQuadbin)\n .map(i => ({i}));\n }\n\n // @ts-expect-error TileIndex must be generic\n getTileId({i}: QuadbinTileIndex): string {\n return i;\n }\n\n // @ts-expect-error TileIndex must be generic\n getTileMetadata({i}: QuadbinTileIndex) {\n return super.getTileMetadata(quadbinToTile(i));\n }\n\n // @ts-expect-error TileIndex must be generic\n getTileZoom({i}: QuadbinTileIndex): number {\n return Number(quadbinZoom(i));\n }\n\n // @ts-expect-error TileIndex must be generic\n getParentIndex({i}: QuadbinTileIndex): QuadbinTileIndex {\n return {i: quadbinParent(i)};\n }\n}\n"],"file":"quadbin-tileset-2d.js"}
1
+ {"version":3,"sources":["../../../src/layers/quadbin-tileset-2d.ts"],"names":["QuadbinTileset2D","opts","map","tileToCell","q","i","Number","Tileset2D"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;IAMqBA,gB;;;;;;;;;;;;WAEnB,wBAAeC,IAAf,EAAyC;AACvC,aAAO,iHACWA,IADX,EAEJC,GAFI,CAEAC,mBAFA,EAGJD,GAHI,CAGA,UAAAE,CAAC;AAAA,eAAK;AAACA,UAAAA,CAAC,EAADA,CAAD;AAAIC,UAAAA,CAAC,EAAE,0BAAYD,CAAZ;AAAP,SAAL;AAAA,OAHD,CAAP;AAID;;;WAGD,yBAA4C;AAAA,UAAjCA,CAAiC,QAAjCA,CAAiC;AAAA,UAA9BC,CAA8B,QAA9BA,CAA8B;AAC1C,aAAOA,CAAC,IAAI,0BAAYD,CAAZ,CAAZ;AACD;;;WAGD,gCAAuC;AAAA,UAAtBA,CAAsB,SAAtBA,CAAsB;AACrC,+HAA6B,yBAAWA,CAAX,CAA7B;AACD;;;WAGD,4BAA2C;AAAA,UAA9BA,CAA8B,SAA9BA,CAA8B;AACzC,aAAOE,MAAM,CAAC,4BAAcF,CAAd,CAAD,CAAb;AACD;;;WAGD,+BAAwD;AAAA,UAAxCA,CAAwC,SAAxCA,CAAwC;AACtD,aAAO;AAACA,QAAAA,CAAC,EAAE,2BAAaA,CAAb;AAAJ,OAAP;AACD;;;EA3B2CG,qB","sourcesContent":["import {_Tileset2D as Tileset2D} from '@deck.gl/geo-layers';\nimport {bigIntToHex, cellToParent, cellToTile, getResolution, tileToCell} from 'quadbin';\n\n// For calculations bigint representation is used, but\n// for constructing URL also provide the hexidecimal value\ntype QuadbinTileIndex = {q: bigint; i?: string};\n\nexport default class QuadbinTileset2D extends Tileset2D {\n // @ts-expect-error for spatial indices, TileSet2d should be parametrized by TileIndexT\n getTileIndices(opts): QuadbinTileIndex[] {\n return super\n .getTileIndices(opts)\n .map(tileToCell)\n .map(q => ({q, i: bigIntToHex(q)}));\n }\n\n // @ts-expect-error TileIndex must be generic\n getTileId({q, i}: QuadbinTileIndex): string {\n return i || bigIntToHex(q);\n }\n\n // @ts-expect-error TileIndex must be generic\n getTileMetadata({q}: QuadbinTileIndex) {\n return super.getTileMetadata(cellToTile(q));\n }\n\n // @ts-expect-error TileIndex must be generic\n getTileZoom({q}: QuadbinTileIndex): number {\n return Number(getResolution(q));\n }\n\n // @ts-expect-error TileIndex must be generic\n getParentIndex({q}: QuadbinTileIndex): QuadbinTileIndex {\n return {q: cellToParent(q)};\n }\n}\n"],"file":"quadbin-tileset-2d.js"}
@@ -5,12 +5,6 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.indexToBigInt = indexToBigInt;
9
- exports.bigIntToIndex = bigIntToIndex;
10
- exports.tileToQuadbin = tileToQuadbin;
11
- exports.quadbinToTile = quadbinToTile;
12
- exports.quadbinZoom = quadbinZoom;
13
- exports.quadbinParent = quadbinParent;
14
8
  exports.quadbinToWorldBounds = quadbinToWorldBounds;
15
9
  exports.getQuadbinPolygon = getQuadbinPolygon;
16
10
 
@@ -18,85 +12,15 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
18
12
 
19
13
  var _webMercator = require("@math.gl/web-mercator");
20
14
 
21
- var TILE_SIZE = 512;
22
- var B = [0x5555555555555555n, 0x3333333333333333n, 0x0f0f0f0f0f0f0f0fn, 0x00ff00ff00ff00ffn, 0x0000ffff0000ffffn, 0x00000000ffffffffn];
23
- var S = [0n, 1n, 2n, 4n, 8n, 16n];
24
-
25
- function indexToBigInt(index) {
26
- return BigInt("0x".concat(index));
27
- }
28
-
29
- function bigIntToIndex(quadbin) {
30
- return quadbin.toString(16);
31
- }
32
-
33
- function tileToQuadbin(tile) {
34
- if (tile.z < 0 || tile.z > 26) {
35
- throw new Error('Wrong zoom');
36
- }
37
-
38
- var z = BigInt(tile.z);
39
- var x = BigInt(tile.x) << 32n - z;
40
- var y = BigInt(tile.y) << 32n - z;
41
-
42
- for (var i = 0; i < 5; i++) {
43
- var s = S[5 - i];
44
- var b = B[4 - i];
45
- x = (x | x << s) & b;
46
- y = (y | y << s) & b;
47
- }
48
-
49
- var quadbin = 0x4000000000000000n | 1n << 59n | z << 52n | (x | y << 1n) >> 12n | 0xfffffffffffffn >> z * 2n;
50
- return bigIntToIndex(quadbin);
51
- }
15
+ var _quadbin = require("quadbin");
52
16
 
53
- function quadbinToTile(index) {
54
- var quadbin = indexToBigInt(index);
55
- var mode = quadbin >> 59n & 7n;
56
- var modeDep = quadbin >> 57n & 3n;
57
- var z = quadbin >> 52n & 0x1fn;
58
- var q = (quadbin & 0xfffffffffffffn) << 12n;
59
-
60
- if (mode !== 1n && modeDep !== 0n) {
61
- throw new Error('Wrong mode');
62
- }
63
-
64
- var x = q;
65
- var y = q >> 1n;
66
-
67
- for (var i = 0; i < 6; i++) {
68
- var s = S[i];
69
- var b = B[i];
70
- x = (x | x >> s) & b;
71
- y = (y | y >> s) & b;
72
- }
73
-
74
- x = x >> 32n - z;
75
- y = y >> 32n - z;
76
- return {
77
- z: Number(z),
78
- x: Number(x),
79
- y: Number(y)
80
- };
81
- }
82
-
83
- function quadbinZoom(index) {
84
- var quadbin = indexToBigInt(index);
85
- return quadbin >> 52n & 0x1fn;
86
- }
87
-
88
- function quadbinParent(index) {
89
- var quadbin = indexToBigInt(index);
90
- var zparent = quadbinZoom(index) - 1n;
91
- var parent = quadbin & ~(0x1fn << 52n) | zparent << 52n | 0xfffffffffffffn >> zparent * 2n;
92
- return bigIntToIndex(parent);
93
- }
17
+ var TILE_SIZE = 512;
94
18
 
95
19
  function quadbinToWorldBounds(quadbin) {
96
- var _quadbinToTile = quadbinToTile(quadbin),
97
- x = _quadbinToTile.x,
98
- y = _quadbinToTile.y,
99
- z = _quadbinToTile.z;
20
+ var _cellToTile = (0, _quadbin.cellToTile)(quadbin),
21
+ x = _cellToTile.x,
22
+ y = _cellToTile.y,
23
+ z = _cellToTile.z;
100
24
 
101
25
  var mask = 1 << z;
102
26
  var scale = mask / TILE_SIZE;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/quadbin-utils.ts"],"names":["TILE_SIZE","B","S","indexToBigInt","index","BigInt","bigIntToIndex","quadbin","toString","tileToQuadbin","tile","z","Error","x","y","i","s","b","quadbinToTile","mode","modeDep","q","Number","quadbinZoom","quadbinParent","zparent","parent","quadbinToWorldBounds","mask","scale","getQuadbinPolygon","topLeft","bottomRight","w","n","e"],"mappings":"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","sourcesContent":["import {worldToLngLat} from '@math.gl/web-mercator';\n\nconst TILE_SIZE = 512;\n\nconst B = [\n 0x5555555555555555n,\n 0x3333333333333333n,\n 0x0f0f0f0f0f0f0f0fn,\n 0x00ff00ff00ff00ffn,\n 0x0000ffff0000ffffn,\n 0x00000000ffffffffn\n];\nconst S = [0n, 1n, 2n, 4n, 8n, 16n];\n\nexport function indexToBigInt(index: string): bigint {\n return BigInt(`0x${index}`);\n}\n\nexport function bigIntToIndex(quadbin: bigint): string {\n return quadbin.toString(16);\n}\n\nexport function tileToQuadbin(tile): string {\n if (tile.z < 0 || tile.z > 26) {\n throw new Error('Wrong zoom');\n }\n const z = BigInt(tile.z);\n let x = BigInt(tile.x) << (32n - z);\n let y = BigInt(tile.y) << (32n - z);\n\n for (let i = 0; i < 5; i++) {\n const s = S[5 - i];\n const b = B[4 - i];\n x = (x | (x << s)) & b;\n y = (y | (y << s)) & b;\n }\n\n const quadbin =\n 0x4000000000000000n |\n (1n << 59n) | // | (mode << 59) | (mode_dep << 57)\n (z << 52n) |\n ((x | (y << 1n)) >> 12n) |\n (0xfffffffffffffn >> (z * 2n));\n return bigIntToIndex(quadbin);\n}\n\nexport function quadbinToTile(index: string) {\n const quadbin = indexToBigInt(index);\n const mode = (quadbin >> 59n) & 7n;\n const modeDep = (quadbin >> 57n) & 3n;\n const z = (quadbin >> 52n) & 0x1fn;\n const q = (quadbin & 0xfffffffffffffn) << 12n;\n\n if (mode !== 1n && modeDep !== 0n) {\n throw new Error('Wrong mode');\n }\n\n let x = q;\n let y = q >> 1n;\n\n for (let i = 0; i < 6; i++) {\n const s = S[i];\n const b = B[i];\n x = (x | (x >> s)) & b;\n y = (y | (y >> s)) & b;\n }\n\n x = x >> (32n - z);\n y = y >> (32n - z);\n\n return {z: Number(z), x: Number(x), y: Number(y)};\n}\n\nexport function quadbinZoom(index: string) {\n const quadbin = indexToBigInt(index);\n return (quadbin >> 52n) & 0x1fn;\n}\n\nexport function quadbinParent(index: string) {\n const quadbin = indexToBigInt(index);\n const zparent = quadbinZoom(index) - 1n;\n const parent =\n (quadbin & ~(0x1fn << 52n)) | (zparent << 52n) | (0xfffffffffffffn >> (zparent * 2n));\n return bigIntToIndex(parent);\n}\n\nexport function quadbinToWorldBounds(quadbin: string): [number[], number[]] {\n const {x, y, z} = quadbinToTile(quadbin);\n const mask = 1 << z;\n const scale = mask / TILE_SIZE;\n return [\n [x / scale, TILE_SIZE - y / scale],\n [(x + 0.99) / scale, TILE_SIZE - (y + 0.99) / scale]\n ];\n}\n\nexport function getQuadbinPolygon(quadbin: string): number[] {\n const [topLeft, bottomRight] = quadbinToWorldBounds(quadbin);\n const [w, n] = worldToLngLat(topLeft);\n const [e, s] = worldToLngLat(bottomRight);\n return [e, n, e, s, w, s, w, n, e, n];\n}\n"],"file":"quadbin-utils.js"}
1
+ {"version":3,"sources":["../../../src/layers/quadbin-utils.ts"],"names":["TILE_SIZE","quadbinToWorldBounds","quadbin","x","y","z","mask","scale","getQuadbinPolygon","topLeft","bottomRight","w","n","e","s"],"mappings":";;;;;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,SAAS,GAAG,GAAlB;;AAEO,SAASC,oBAAT,CAA8BC,OAA9B,EAAqE;AAC1E,oBAAkB,yBAAWA,OAAX,CAAlB;AAAA,MAAOC,CAAP,eAAOA,CAAP;AAAA,MAAUC,CAAV,eAAUA,CAAV;AAAA,MAAaC,CAAb,eAAaA,CAAb;;AACA,MAAMC,IAAI,GAAG,KAAKD,CAAlB;AACA,MAAME,KAAK,GAAGD,IAAI,GAAGN,SAArB;AACA,SAAO,CACL,CAACG,CAAC,GAAGI,KAAL,EAAYP,SAAS,GAAGI,CAAC,GAAGG,KAA5B,CADK,EAEL,CAAC,CAACJ,CAAC,GAAG,IAAL,IAAaI,KAAd,EAAqBP,SAAS,GAAG,CAACI,CAAC,GAAG,IAAL,IAAaG,KAA9C,CAFK,CAAP;AAID;;AAEM,SAASC,iBAAT,CAA2BN,OAA3B,EAAsD;AAC3D,8BAA+BD,oBAAoB,CAACC,OAAD,CAAnD;AAAA;AAAA,MAAOO,OAAP;AAAA,MAAgBC,WAAhB;;AACA,uBAAe,gCAAcD,OAAd,CAAf;AAAA;AAAA,MAAOE,CAAP;AAAA,MAAUC,CAAV;;AACA,wBAAe,gCAAcF,WAAd,CAAf;AAAA;AAAA,MAAOG,CAAP;AAAA,MAAUC,CAAV;;AACA,SAAO,CAACD,CAAD,EAAID,CAAJ,EAAOC,CAAP,EAAUC,CAAV,EAAaH,CAAb,EAAgBG,CAAhB,EAAmBH,CAAnB,EAAsBC,CAAtB,EAAyBC,CAAzB,EAA4BD,CAA5B,CAAP;AACD","sourcesContent":["import {worldToLngLat} from '@math.gl/web-mercator';\nimport {cellToTile} from 'quadbin';\n\nconst TILE_SIZE = 512;\n\nexport function quadbinToWorldBounds(quadbin: bigint): [number[], number[]] {\n const {x, y, z} = cellToTile(quadbin);\n const mask = 1 << z;\n const scale = mask / TILE_SIZE;\n return [\n [x / scale, TILE_SIZE - y / scale],\n [(x + 0.99) / scale, TILE_SIZE - (y + 0.99) / scale]\n ];\n}\n\nexport function getQuadbinPolygon(quadbin: bigint): number[] {\n const [topLeft, bottomRight] = quadbinToWorldBounds(quadbin);\n const [w, n] = worldToLngLat(topLeft);\n const [e, s] = worldToLngLat(bottomRight);\n return [e, n, e, s, w, s, w, n, e, n];\n}\n"],"file":"quadbin-utils.js"}
@@ -13,11 +13,11 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
13
13
 
14
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
15
 
16
- var _pbf = _interopRequireDefault(require("pbf"));
16
+ var _cartoSpatialTile = require("./carto-spatial-tile");
17
17
 
18
- var _spatialjsonUtils = require("./spatialjson-utils");
18
+ var _tileLoaderUtils = require("./tile-loader-utils");
19
19
 
20
- var _cartoSpatialTile = require("./carto-spatial-tile");
20
+ var _spatialjsonUtils = require("./spatialjson-utils");
21
21
 
22
22
  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; }
23
23
 
@@ -29,7 +29,7 @@ var CartoSpatialTileLoader = {
29
29
  id: 'cartoSpatialTile',
30
30
  module: 'carto',
31
31
  extensions: ['pbf'],
32
- mimeTypes: ['application/vnd.carto-spatial-tile', 'application/x-protobuf'],
32
+ mimeTypes: ['application/vnd.carto-spatial-tile'],
33
33
  category: 'geometry',
34
34
  worker: false,
35
35
  parse: function () {
@@ -55,41 +55,25 @@ var CartoSpatialTileLoader = {
55
55
  return parse;
56
56
  }(),
57
57
  parseSync: parseCartoSpatialTile,
58
- options: {}
59
- };
60
-
61
- function parsePbf(buffer) {
62
- var pbf = new _pbf.default(buffer);
63
-
64
- var tile = _cartoSpatialTile.TileReader.read(pbf);
65
-
66
- return tile;
67
- }
68
-
69
- function unpackProperties(properties) {
70
- if (!properties || !properties.length) {
71
- return [];
58
+ options: {
59
+ cartoSpatialTile: {
60
+ scheme: 'quadbin'
61
+ }
72
62
  }
73
-
74
- return properties.map(function (item) {
75
- var currentRecord = {};
76
- item.data.forEach(function (_ref) {
77
- var key = _ref.key,
78
- value = _ref.value;
79
- currentRecord[key] = value;
80
- });
81
- return currentRecord;
82
- });
83
- }
63
+ };
84
64
 
85
65
  function parseCartoSpatialTile(arrayBuffer, options) {
66
+ var _options$cartoSpatial;
67
+
86
68
  if (!arrayBuffer) return null;
87
- var tile = parsePbf(arrayBuffer);
69
+ var tile = (0, _tileLoaderUtils.parsePbf)(arrayBuffer, _cartoSpatialTile.TileReader);
88
70
  var cells = tile.cells;
71
+ var scheme = options === null || options === void 0 ? void 0 : (_options$cartoSpatial = options.cartoSpatialTile) === null || _options$cartoSpatial === void 0 ? void 0 : _options$cartoSpatial.scheme;
89
72
  var data = {
90
73
  cells: _objectSpread(_objectSpread({}, cells), {}, {
91
- properties: unpackProperties(cells.properties)
92
- })
74
+ properties: (0, _tileLoaderUtils.unpackProperties)(cells.properties)
75
+ }),
76
+ scheme: scheme
93
77
  };
94
78
  return (0, _spatialjsonUtils.binaryToSpatialjson)(data);
95
79
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile-loader.ts"],"names":["CartoSpatialTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoSpatialTile","parseSync","parsePbf","buffer","pbf","Protobuf","tile","TileReader","read","unpackProperties","properties","length","map","item","currentRecord","data","forEach","key","value","cells"],"mappings":";;;;;;;;;;;;;;;AAAA;;AAIA;;AACA;;;;;;AAEA,IAAMA,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,CACT,oCADS,EAET,wBAFS,CANoC;AAU/CC,EAAAA,QAAQ,EAAE,UAVqC;AAW/CC,EAAAA,MAAM,EAAE,KAXuC;AAY/CC,EAAAA,KAAK;AAAA,2EAAE,iBAAOC,WAAP,EAAoBC,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAgCC,qBAAqB,CAACF,WAAD,EAAcC,OAAd,CAArD;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KAZ0C;AAa/CE,EAAAA,SAAS,EAAED,qBAboC;AAc/CD,EAAAA,OAAO,EAAE;AAdsC,CAAjD;;AAiBA,SAASG,QAAT,CAAkBC,MAAlB,EAA6C;AAC3C,MAAMC,GAAG,GAAG,IAAIC,YAAJ,CAAaF,MAAb,CAAZ;;AACA,MAAMG,IAAI,GAAGC,6BAAWC,IAAX,CAAgBJ,GAAhB,CAAb;;AACA,SAAOE,IAAP;AACD;;AAED,SAASG,gBAAT,CAA0BC,UAA1B,EAA0E;AACxE,MAAI,CAACA,UAAD,IAAe,CAACA,UAAU,CAACC,MAA/B,EAAuC;AACrC,WAAO,EAAP;AACD;;AACD,SAAOD,UAAU,CAACE,GAAX,CAAe,UAAAC,IAAI,EAAI;AAC5B,QAAMC,aAAyB,GAAG,EAAlC;AACAD,IAAAA,IAAI,CAACE,IAAL,CAAUC,OAAV,CAAkB,gBAAkB;AAAA,UAAhBC,GAAgB,QAAhBA,GAAgB;AAAA,UAAXC,KAAW,QAAXA,KAAW;AAClCJ,MAAAA,aAAa,CAACG,GAAD,CAAb,GAAqBC,KAArB;AACD,KAFD;AAGA,WAAOJ,aAAP;AACD,GANM,CAAP;AAOD;;AAED,SAASd,qBAAT,CACEF,WADF,EAEEC,OAFF,EAGsB;AACpB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,MAAMQ,IAAI,GAAGJ,QAAQ,CAACJ,WAAD,CAArB;AAEA,MAAOqB,KAAP,GAAgBb,IAAhB,CAAOa,KAAP;AACA,MAAMJ,IAAI,GAAG;AACXI,IAAAA,KAAK,kCAAMA,KAAN;AAAaT,MAAAA,UAAU,EAAED,gBAAgB,CAACU,KAAK,CAACT,UAAP;AAAzC;AADM,GAAb;AAIA,SAAO,2CAAoBK,IAApB,CAAP;AACD;;eAEc3B,sB","sourcesContent":["import Protobuf from 'pbf';\nimport {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {KeyValueProperties} from './carto-tile';\nimport {binaryToSpatialjson, Properties, SpatialJson} from './spatialjson-utils';\nimport {Tile, TileReader} from './carto-spatial-tile';\n\nconst CartoSpatialTileLoader: LoaderWithParser = {\n name: 'CARTO Spatial Tile',\n version: '1',\n id: 'cartoSpatialTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: [\n 'application/vnd.carto-spatial-tile',\n 'application/x-protobuf' // Back-compatibility\n ],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoSpatialTile(arrayBuffer, options),\n parseSync: parseCartoSpatialTile,\n options: {}\n};\n\nfunction parsePbf(buffer: ArrayBuffer): Tile {\n const pbf = new Protobuf(buffer);\n const tile = TileReader.read(pbf);\n return tile;\n}\n\nfunction unpackProperties(properties: KeyValueProperties[]): Properties[] {\n if (!properties || !properties.length) {\n return [];\n }\n return properties.map(item => {\n const currentRecord: Properties = {};\n item.data.forEach(({key, value}) => {\n currentRecord[key] = value;\n });\n return currentRecord;\n });\n}\n\nfunction parseCartoSpatialTile(\n arrayBuffer: ArrayBuffer,\n options?: LoaderOptions\n): SpatialJson | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer);\n\n const {cells} = tile;\n const data = {\n cells: {...cells, properties: unpackProperties(cells.properties)}\n };\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":["CartoSpatialTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoSpatialTile","parseSync","cartoSpatialTile","scheme","tile","TileReader","cells","data","properties"],"mappings":";;;;;;;;;;;;;;;AAEA;;AACA;;AACA;;;;;;AAEA,IAAMA,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;AAAA,2EAAE,iBAAOC,WAAP,EAAoBC,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAgCC,qBAAqB,CAACF,WAAD,EAAcC,OAAd,CAArD;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KAT0C;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,MAAMM,IAAU,GAAG,+BAASN,WAAT,EAAsBO,4BAAtB,CAAnB;AAEA,MAAOC,KAAP,GAAgBF,IAAhB,CAAOE,KAAP;AACA,MAAMH,MAAM,GAAGJ,OAAH,aAAGA,OAAH,gDAAGA,OAAO,CAAEG,gBAAZ,0DAAG,sBAA2BC,MAA1C;AACA,MAAMI,IAAI,GAAG;AACXD,IAAAA,KAAK,kCAAMA,KAAN;AAAaE,MAAAA,UAAU,EAAE,uCAAiBF,KAAK,CAACE,UAAvB;AAAzB,MADM;AAEXL,IAAAA,MAAM,EAANA;AAFW,GAAb;AAKA,SAAO,2CAAoBI,IAApB,CAAP;AACD;;eAEcnB,sB","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {Tile, TileReader} from './carto-spatial-tile';\nimport {parsePbf, unpackProperties} 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 const scheme = options?.cartoSpatialTile?.scheme;\n const data = {\n cells: {...cells, properties: unpackProperties(cells.properties)},\n scheme\n };\n\n return binaryToSpatialjson(data);\n}\n\nexport default CartoSpatialTileLoader;\n"],"file":"carto-spatial-tile-loader.js"}
@@ -114,6 +114,27 @@ var IntsReader = function () {
114
114
  return IntsReader;
115
115
  }();
116
116
 
117
+ var FieldsReader = function () {
118
+ function FieldsReader() {
119
+ (0, _classCallCheck2.default)(this, FieldsReader);
120
+ }
121
+
122
+ (0, _createClass2.default)(FieldsReader, null, [{
123
+ key: "read",
124
+ value: function read(pbf, end) {
125
+ return pbf.readFields(FieldsReader._readField, {
126
+ id: 0
127
+ }, end);
128
+ }
129
+ }, {
130
+ key: "_readField",
131
+ value: function _readField(tag, obj, pbf) {
132
+ if (tag === 1) obj.id = pbf.readVarint();
133
+ }
134
+ }]);
135
+ return FieldsReader;
136
+ }();
137
+
117
138
  var NumericPropReader = function () {
118
139
  function NumericPropReader() {
119
140
  (0, _classCallCheck2.default)(this, NumericPropReader);
@@ -172,7 +193,8 @@ var PointsReader = function () {
172
193
  globalFeatureIds: null,
173
194
  featureIds: null,
174
195
  properties: [],
175
- numericProps: {}
196
+ numericProps: {},
197
+ fields: []
176
198
  }, end);
177
199
  }
178
200
  }, {
@@ -181,7 +203,7 @@ var PointsReader = function () {
181
203
  if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 2) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 3) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 4) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));else if (tag === 5) {
182
204
  var entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
183
205
  obj.numericProps[entry.key] = entry.value;
184
- }
206
+ } else if (tag === 6) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));
185
207
  }
186
208
  }]);
187
209
  return PointsReader;
@@ -201,7 +223,8 @@ var LinesReader = function () {
201
223
  globalFeatureIds: null,
202
224
  featureIds: null,
203
225
  properties: [],
204
- numericProps: {}
226
+ numericProps: {},
227
+ fields: []
205
228
  }, end);
206
229
  }
207
230
  }, {
@@ -210,7 +233,7 @@ var LinesReader = function () {
210
233
  if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 2) obj.pathIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 5) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));else if (tag === 6) {
211
234
  var entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
212
235
  obj.numericProps[entry.key] = entry.value;
213
- }
236
+ } else if (tag === 7) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));
214
237
  }
215
238
  }]);
216
239
  return LinesReader;
@@ -232,7 +255,8 @@ var PolygonsReader = function () {
232
255
  primitivePolygonIndices: null,
233
256
  triangles: null,
234
257
  properties: [],
235
- numericProps: {}
258
+ numericProps: {},
259
+ fields: []
236
260
  }, end);
237
261
  }
238
262
  }, {
@@ -241,7 +265,7 @@ var PolygonsReader = function () {
241
265
  if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 2) obj.polygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 5) obj.primitivePolygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 6) obj.triangles = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);else if (tag === 7) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));else if (tag === 8) {
242
266
  var entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);
243
267
  obj.numericProps[entry.key] = entry.value;
244
- }
268
+ } else if (tag === 9) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));
245
269
  }
246
270
  }]);
247
271
  return PolygonsReader;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-tile.ts"],"names":["KeyValueObjectReader","pbf","end","readFields","_readField","key","value","tag","obj","readString","PropertiesReader","data","push","read","readVarint","pos","DoublesReader","size","Float32Array","readPackedDouble","IntsReader","Uint32Array","readPackedVarint","NumericPropReader","NumericPropKeyValueReader","PointsReader","positions","globalFeatureIds","featureIds","properties","numericProps","entry","LinesReader","pathIndices","PolygonsReader","polygonIndices","primitivePolygonIndices","triangles","TileReader","points","lines","polygons"],"mappings":";;;;;;;;;;;;;IAMMA,oB;;;;;;;WACJ,cAAYC,GAAZ,EAAiBC,GAAjB,EAA+C;AAC7C,aAAOD,GAAG,CAACE,UAAJ,CAAeH,oBAAoB,CAACI,UAApC,EAAgD;AAACC,QAAAA,GAAG,EAAE,EAAN;AAAUC,QAAAA,KAAK,EAAE;AAAjB,OAAhD,EAAsEJ,GAAtE,CAAP;AACD;;;WACD,oBAA8BK,GAA9B,EAA2CC,GAA3C,EAAgEP,GAAhE,EAAqE;AACnE,UAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACH,GAAJ,GAAUJ,GAAG,CAACQ,UAAJ,EAAV,CAAf,KACK,IAAIF,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACF,KAAJ,GAAYL,GAAG,CAACQ,UAAJ,EAAZ;AACrB;;;;;IASUC,gB;;;;;;;WACX,cAAYT,GAAZ,EAAiBC,GAAjB,EAA+B;AAC7B,aAAOD,GAAG,CAACE,UAAJ,CAAeO,gBAAgB,CAACN,UAAhC,EAA4C;AAACO,QAAAA,IAAI,EAAE;AAAP,OAA5C,EAAwDT,GAAxD,CAAP;AACD;;;WACD,oBAA8BK,GAA9B,EAA2CC,GAA3C,EAAoEP,GAApE,EAAyE;AACvE,UAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACG,IAAJ,CAASC,IAAT,CAAcZ,oBAAoB,CAACa,IAArB,CAA0BZ,GAA1B,EAA+BA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAAtD,CAAd;AAChB;;;;;;;IAUGC,a;;;;;;;WACJ,cAAYf,GAAZ,EAAiBC,GAAjB,EAAwC;AAGtC,4BAAsBD,GAAG,CAACE,UAAJ,CAAea,aAAa,CAACZ,UAA7B,EAAyC;AAACE,QAAAA,KAAK,EAAE,EAAR;AAAYW,QAAAA,IAAI,EAAE;AAAlB,OAAzC,EAA+Df,GAA/D,CAAtB;AAAA,UAAOI,KAAP,mBAAOA,KAAP;AAAA,UAAcW,IAAd,mBAAcA,IAAd;;AACA,aAAO;AAACX,QAAAA,KAAK,EAAE,IAAIY,YAAJ,CAAiBZ,KAAjB,CAAR;AAAiCW,QAAAA,IAAI,EAAJA;AAAjC,OAAP;AACD;;;WACD,oBAA8BV,GAA9B,EAA2CC,GAA3C,EAAgDP,GAAhD,EAAqD;AACnD,UAAIM,GAAG,KAAK,CAAZ,EAAeN,GAAG,CAACkB,gBAAJ,CAAqBX,GAAG,CAACF,KAAzB,EAAf,KACK,IAAIC,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACS,IAAJ,GAAWhB,GAAG,CAACa,UAAJ,CAAe,IAAf,CAAX;AACrB;;;;;IAUGM,U;;;;;;;WACJ,cAAYnB,GAAZ,EAAiBC,GAAjB,EAAqC;AACnC,6BAAsBD,GAAG,CAACE,UAAJ,CAAeiB,UAAU,CAAChB,UAA1B,EAAsC;AAACE,QAAAA,KAAK,EAAE,EAAR;AAAYW,QAAAA,IAAI,EAAE;AAAlB,OAAtC,EAA4Df,GAA5D,CAAtB;AAAA,UAAOI,KAAP,oBAAOA,KAAP;AAAA,UAAcW,IAAd,oBAAcA,IAAd;;AACA,aAAO;AAACX,QAAAA,KAAK,EAAE,IAAIe,WAAJ,CAAgBf,KAAhB,CAAR;AAAgCW,QAAAA,IAAI,EAAJA;AAAhC,OAAP;AACD;;;WACD,oBAA8BV,GAA9B,EAA2CC,GAA3C,EAAgDP,GAAhD,EAAqD;AACnD,UAAIM,GAAG,KAAK,CAAZ,EAAeN,GAAG,CAACqB,gBAAJ,CAAqBd,GAAG,CAACF,KAAzB,EAAf,KACK,IAAIC,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACS,IAAJ,GAAWhB,GAAG,CAACa,UAAJ,CAAe,IAAf,CAAX;AACrB;;;;;IASGS,iB;;;;;;;WACJ,cAAYtB,GAAZ,EAAiBC,GAAjB,EAA4C;AAC1C,aAAOD,GAAG,CAACE,UAAJ,CAAeoB,iBAAiB,CAACnB,UAAjC,EAA6C;AAACE,QAAAA,KAAK,EAAE;AAAR,OAA7C,EAA0DJ,GAA1D,CAAP;AACD;;;WACD,oBAA8BK,GAA9B,EAA2CC,GAA3C,EAA6DP,GAA7D,EAAkE;AAChE,UAAIM,GAAG,KAAK,CAAZ,EAAeN,GAAG,CAACkB,gBAAJ,CAAqBX,GAAG,CAACF,KAAzB;AAChB;;;;;IASUkB,yB;;;;;;;WACX,cAAYvB,GAAZ,EAAiBC,GAAjB,EAAqD;AACnD,aAAOD,GAAG,CAACE,UAAJ,CAAeqB,yBAAyB,CAACpB,UAAzC,EAAqD;AAACC,QAAAA,GAAG,EAAE,EAAN;AAAUC,QAAAA,KAAK,EAAE;AAAjB,OAArD,EAA6EJ,GAA7E,CAAP;AACD;;;WACD,oBAA8BK,GAA9B,EAA2CC,GAA3C,EAAsEP,GAAtE,EAA2E;AACzE,UAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACH,GAAJ,GAAUJ,GAAG,CAACQ,UAAJ,EAAV,CAAf,KACK,IAAIF,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACF,KAAJ,GAAYiB,iBAAiB,CAACV,IAAlB,CAAuBZ,GAAvB,EAA4BA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAAnD,CAAZ;AACrB;;;;;;;IAaGU,Y;;;;;;;WACJ,cAAYxB,GAAZ,EAAiBC,GAAjB,EAAuC;AACrC,aAAOD,GAAG,CAACE,UAAJ,CACLsB,YAAY,CAACrB,UADR,EAEL;AAACsB,QAAAA,SAAS,EAAE,IAAZ;AAAkBC,QAAAA,gBAAgB,EAAE,IAApC;AAA0CC,QAAAA,UAAU,EAAE,IAAtD;AAA4DC,QAAAA,UAAU,EAAE,EAAxE;AAA4EC,QAAAA,YAAY,EAAE;AAA1F,OAFK,EAGL5B,GAHK,CAAP;AAKD;;;WACD,oBAA8BK,GAA9B,EAA2CC,GAA3C,EAAwDP,GAAxD,EAA6D;AAC3D,UAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACkB,SAAJ,GAAgBV,aAAa,CAACH,IAAd,CAAmBZ,GAAnB,EAAwBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA/C,CAAhB,CAAf,KACK,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACmB,gBAAJ,GAAuBP,UAAU,CAACP,IAAX,CAAgBZ,GAAhB,EAAqBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA5C,CAAvB,CAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACoB,UAAJ,GAAiBR,UAAU,CAACP,IAAX,CAAgBZ,GAAhB,EAAqBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA5C,CAAjB,CAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACqB,UAAJ,CAAejB,IAAf,CAAoBF,gBAAgB,CAACG,IAAjB,CAAsBZ,GAAtB,EAA2BA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAAlD,CAApB,EAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EAAe;AAClB,YAAMwB,KAAK,GAAGP,yBAAyB,CAACX,IAA1B,CAA+BZ,GAA/B,EAAoCA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA3D,CAAd;AACAP,QAAAA,GAAG,CAACsB,YAAJ,CAAiBC,KAAK,CAAC1B,GAAvB,IAA8B0B,KAAK,CAACzB,KAApC;AACD;AACF;;;;;IAQG0B,W;;;;;;;WACJ,cAAY/B,GAAZ,EAAiBC,GAAjB,EAAsC;AACpC,aAAOD,GAAG,CAACE,UAAJ,CACL6B,WAAW,CAAC5B,UADP,EAEL;AACEsB,QAAAA,SAAS,EAAE,IADb;AAEEO,QAAAA,WAAW,EAAE,IAFf;AAGEN,QAAAA,gBAAgB,EAAE,IAHpB;AAIEC,QAAAA,UAAU,EAAE,IAJd;AAKEC,QAAAA,UAAU,EAAE,EALd;AAMEC,QAAAA,YAAY,EAAE;AANhB,OAFK,EAUL5B,GAVK,CAAP;AAYD;;;WACD,oBAA8BK,GAA9B,EAA2CC,GAA3C,EAAuDP,GAAvD,EAA4D;AAC1D,UAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACkB,SAAJ,GAAgBV,aAAa,CAACH,IAAd,CAAmBZ,GAAnB,EAAwBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA/C,CAAhB,CAAf,KACK,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACyB,WAAJ,GAAkBb,UAAU,CAACP,IAAX,CAAgBZ,GAAhB,EAAqBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA5C,CAAlB,CAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACmB,gBAAJ,GAAuBP,UAAU,CAACP,IAAX,CAAgBZ,GAAhB,EAAqBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA5C,CAAvB,CAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACoB,UAAJ,GAAiBR,UAAU,CAACP,IAAX,CAAgBZ,GAAhB,EAAqBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA5C,CAAjB,CAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACqB,UAAJ,CAAejB,IAAf,CAAoBF,gBAAgB,CAACG,IAAjB,CAAsBZ,GAAtB,EAA2BA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAAlD,CAApB,EAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EAAe;AAClB,YAAMwB,KAAK,GAAGP,yBAAyB,CAACX,IAA1B,CAA+BZ,GAA/B,EAAoCA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA3D,CAAd;AACAP,QAAAA,GAAG,CAACsB,YAAJ,CAAiBC,KAAK,CAAC1B,GAAvB,IAA8B0B,KAAK,CAACzB,KAApC;AACD;AACF;;;;;IAUG4B,c;;;;;;;WACJ,cAAYjC,GAAZ,EAAiBC,GAAjB,EAAyC;AACvC,aAAOD,GAAG,CAACE,UAAJ,CACL+B,cAAc,CAAC9B,UADV,EAEL;AACEsB,QAAAA,SAAS,EAAE,IADb;AAEES,QAAAA,cAAc,EAAE,IAFlB;AAGER,QAAAA,gBAAgB,EAAE,IAHpB;AAIEC,QAAAA,UAAU,EAAE,IAJd;AAKEQ,QAAAA,uBAAuB,EAAE,IAL3B;AAMEC,QAAAA,SAAS,EAAE,IANb;AAOER,QAAAA,UAAU,EAAE,EAPd;AAQEC,QAAAA,YAAY,EAAE;AARhB,OAFK,EAYL5B,GAZK,CAAP;AAcD;;;WACD,oBAA8BK,GAA9B,EAA2CC,GAA3C,EAA0DP,GAA1D,EAA+D;AAC7D,UAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACkB,SAAJ,GAAgBV,aAAa,CAACH,IAAd,CAAmBZ,GAAnB,EAAwBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA/C,CAAhB,CAAf,KACK,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAAC2B,cAAJ,GAAqBf,UAAU,CAACP,IAAX,CAAgBZ,GAAhB,EAAqBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA5C,CAArB,CAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACmB,gBAAJ,GAAuBP,UAAU,CAACP,IAAX,CAAgBZ,GAAhB,EAAqBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA5C,CAAvB,CAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACoB,UAAJ,GAAiBR,UAAU,CAACP,IAAX,CAAgBZ,GAAhB,EAAqBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA5C,CAAjB,CAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EACHC,GAAG,CAAC4B,uBAAJ,GAA8BhB,UAAU,CAACP,IAAX,CAAgBZ,GAAhB,EAAqBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA5C,CAA9B,CADG,KAEA,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAAC6B,SAAJ,GAAgBjB,UAAU,CAACP,IAAX,CAAgBZ,GAAhB,EAAqBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA5C,CAAhB,CAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACqB,UAAJ,CAAejB,IAAf,CAAoBF,gBAAgB,CAACG,IAAjB,CAAsBZ,GAAtB,EAA2BA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAAlD,CAApB,EAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EAAe;AAClB,YAAMwB,KAAK,GAAGP,yBAAyB,CAACX,IAA1B,CAA+BZ,GAA/B,EAAoCA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA3D,CAAd;AACAP,QAAAA,GAAG,CAACsB,YAAJ,CAAiBC,KAAK,CAAC1B,GAAvB,IAA8B0B,KAAK,CAACzB,KAApC;AACD;AACF;;;;;IAWUgC,U;;;;;;;WACX,cAAYrC,GAAZ,EAAiBC,GAAjB,EAAqC;AACnC,aAAOD,GAAG,CAACE,UAAJ,CAAemC,UAAU,CAAClC,UAA1B,EAAsC;AAACmC,QAAAA,MAAM,EAAE,IAAT;AAAeC,QAAAA,KAAK,EAAE,IAAtB;AAA4BC,QAAAA,QAAQ,EAAE;AAAtC,OAAtC,EAAmFvC,GAAnF,CAAP;AACD;;;WACD,oBAA8BK,GAA9B,EAA2CC,GAA3C,EAAsDP,GAAtD,EAA2D;AACzD,UAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAAC+B,MAAJ,GAAad,YAAY,CAACZ,IAAb,CAAkBZ,GAAlB,EAAuBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA9C,CAAb,CAAf,KACK,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACgC,KAAJ,GAAYR,WAAW,CAACnB,IAAZ,CAAiBZ,GAAjB,EAAsBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAA7C,CAAZ,CAAf,KACA,IAAIR,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACiC,QAAJ,GAAeP,cAAc,CAACrB,IAAf,CAAoBZ,GAApB,EAAyBA,GAAG,CAACa,UAAJ,KAAmBb,GAAG,CAACc,GAAhD,CAAf;AACrB","sourcesContent":["// 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 interface KeyValueProperties {\n data: KeyValueObject[];\n}\n\nexport class PropertiesReader {\n static read(pbf, end?: number) {\n return pbf.readFields(PropertiesReader._readField, {data: []}, end);\n }\n static _readField(this: void, tag: number, obj: KeyValueProperties, pbf) {\n if (tag === 1) obj.data.push(KeyValueObjectReader.read(pbf, pbf.readVarint() + pbf.pos));\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 // TODO perhaps we can do better and directly map from the source\n // ArrayBuffer using ArrayBuffer.slice()\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) pbf.readPackedDouble(obj.value);\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// 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) pbf.readPackedDouble(obj.value);\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: KeyValueProperties[];\n numericProps: Record<string, NumericProp>;\n}\n\nclass PointsReader {\n static read(pbf, end?: number): Points {\n return pbf.readFields(\n PointsReader._readField,\n {positions: null, globalFeatureIds: null, featureIds: null, properties: [], numericProps: {}},\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 }\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 },\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 }\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 },\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 }\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","data","push","read","readVarint","pos","DoublesReader","size","Float32Array","readPackedDouble","IntsReader","Uint32Array","readPackedVarint","FieldsReader","id","NumericPropReader","NumericPropKeyValueReader","PointsReader","positions","globalFeatureIds","featureIds","properties","numericProps","fields","entry","LinesReader","pathIndices","PolygonsReader","polygonIndices","primitivePolygonIndices","triangles","TileReader","points","lines","polygons"],"mappings":"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","sourcesContent":["// 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 interface KeyValueProperties {\n data: KeyValueObject[];\n}\n\nexport class PropertiesReader {\n static read(pbf, end?: number) {\n return pbf.readFields(PropertiesReader._readField, {data: []}, end);\n }\n static _readField(this: void, tag: number, obj: KeyValueProperties, pbf) {\n if (tag === 1) obj.data.push(KeyValueObjectReader.read(pbf, pbf.readVarint() + pbf.pos));\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 // TODO perhaps we can do better and directly map from the source\n // ArrayBuffer using ArrayBuffer.slice()\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) pbf.readPackedDouble(obj.value);\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) pbf.readPackedDouble(obj.value);\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: KeyValueProperties[];\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"}