@deck.gl/carto 9.1.9 → 9.1.11

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 (79) hide show
  1. package/dist/api/fetch-map.d.ts.map +1 -1
  2. package/dist/api/fetch-map.js +1 -0
  3. package/dist/api/fetch-map.js.map +1 -1
  4. package/dist/api/parse-map.d.ts.map +1 -1
  5. package/dist/api/parse-map.js.map +1 -1
  6. package/dist/cartoPropertiesTile-worker.js +9 -1
  7. package/dist/cartoRasterTile-worker.js +9 -1
  8. package/dist/cartoSpatialTile-worker.js +9 -1
  9. package/dist/cartoVectorTile-worker.js +9 -1
  10. package/dist/dist.dev.js +469 -138
  11. package/dist/index.cjs +423 -139
  12. package/dist/index.cjs.map +4 -4
  13. package/dist/layers/cluster-tile-layer.d.ts.map +1 -1
  14. package/dist/layers/cluster-tile-layer.js +6 -5
  15. package/dist/layers/cluster-tile-layer.js.map +1 -1
  16. package/dist/layers/cluster-utils.d.ts.map +1 -1
  17. package/dist/layers/cluster-utils.js +3 -28
  18. package/dist/layers/cluster-utils.js.map +1 -1
  19. package/dist/layers/h3-tile-layer.d.ts.map +1 -1
  20. package/dist/layers/h3-tile-layer.js +5 -5
  21. package/dist/layers/h3-tile-layer.js.map +1 -1
  22. package/dist/layers/heatmap-tile-layer.d.ts.map +1 -1
  23. package/dist/layers/heatmap-tile-layer.js.map +1 -1
  24. package/dist/layers/label-utils.d.ts +7 -0
  25. package/dist/layers/label-utils.d.ts.map +1 -0
  26. package/dist/layers/label-utils.js +218 -0
  27. package/dist/layers/label-utils.js.map +1 -0
  28. package/dist/layers/point-label-layer.d.ts +6 -0
  29. package/dist/layers/point-label-layer.d.ts.map +1 -1
  30. package/dist/layers/point-label-layer.js +13 -1
  31. package/dist/layers/point-label-layer.js.map +1 -1
  32. package/dist/layers/quadbin-tile-layer.d.ts.map +1 -1
  33. package/dist/layers/quadbin-tile-layer.js +5 -5
  34. package/dist/layers/quadbin-tile-layer.js.map +1 -1
  35. package/dist/layers/raster-tile-layer.js +4 -4
  36. package/dist/layers/raster-tile-layer.js.map +1 -1
  37. package/dist/layers/schema/carto-properties-tile-loader.js +1 -1
  38. package/dist/layers/schema/carto-properties-tile-loader.js.map +1 -1
  39. package/dist/layers/schema/carto-raster-tile-loader.js +1 -1
  40. package/dist/layers/schema/carto-raster-tile-loader.js.map +1 -1
  41. package/dist/layers/schema/carto-spatial-tile-loader.js +1 -1
  42. package/dist/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  43. package/dist/layers/schema/carto-tile.d.ts +3 -1
  44. package/dist/layers/schema/carto-tile.d.ts.map +1 -1
  45. package/dist/layers/schema/carto-tile.js.map +1 -1
  46. package/dist/layers/schema/carto-vector-tile-loader.js +1 -1
  47. package/dist/layers/schema/carto-vector-tile-loader.js.map +1 -1
  48. package/dist/layers/schema/spatialjson-utils.d.ts +4 -7
  49. package/dist/layers/schema/spatialjson-utils.d.ts.map +1 -1
  50. package/dist/layers/schema/spatialjson-utils.js.map +1 -1
  51. package/dist/layers/utils.d.ts +3 -2
  52. package/dist/layers/utils.d.ts.map +1 -1
  53. package/dist/layers/utils.js +28 -7
  54. package/dist/layers/utils.js.map +1 -1
  55. package/dist/layers/vector-tile-layer.d.ts +12 -4
  56. package/dist/layers/vector-tile-layer.d.ts.map +1 -1
  57. package/dist/layers/vector-tile-layer.js +76 -35
  58. package/dist/layers/vector-tile-layer.js.map +1 -1
  59. package/dist/utils.d.ts +6 -1
  60. package/dist/utils.d.ts.map +1 -1
  61. package/dist/utils.js +53 -0
  62. package/dist/utils.js.map +1 -1
  63. package/dist.min.js +12 -12
  64. package/package.json +2 -2
  65. package/src/api/fetch-map.ts +2 -0
  66. package/src/api/parse-map.ts +2 -0
  67. package/src/layers/cluster-tile-layer.ts +7 -5
  68. package/src/layers/cluster-utils.ts +3 -29
  69. package/src/layers/h3-tile-layer.ts +6 -6
  70. package/src/layers/heatmap-tile-layer.ts +2 -0
  71. package/src/layers/label-utils.ts +304 -0
  72. package/src/layers/point-label-layer.ts +18 -1
  73. package/src/layers/quadbin-tile-layer.ts +6 -6
  74. package/src/layers/raster-tile-layer.ts +4 -4
  75. package/src/layers/schema/carto-tile.ts +3 -1
  76. package/src/layers/schema/spatialjson-utils.ts +4 -3
  77. package/src/layers/utils.ts +31 -7
  78. package/src/layers/vector-tile-layer.ts +100 -42
  79. package/src/utils.ts +79 -0
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,UAAU,EAAE,YAAY,EAAC,6CAA0C;AAEhF,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAE9E;AAID,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE;IAAC,YAAY,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,UAAU,EAAE,CAAA;CAAC,EAC5D,KAAK,EAAE,MAAM,cAuBd;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAIvD;AAED,wBAAgB,aAAa;;;;;;;EA0B5B;AAED,eAAO,MAAM,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAkD,CAAC;AAE1F,eAAO,MAAM,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OACU,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,uBAAuB,EACvB,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAC,UAAU,EAAE,YAAY,EAAC,6CAA0C;AAEhF,wBAAgB,MAAM,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAE9E;AAID,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE;IAAC,YAAY,EAAE,YAAY,CAAC;IAAC,UAAU,EAAE,UAAU,EAAE,CAAA;CAAC,EAC5D,KAAK,EAAE,MAAM,YAuBd;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,UAIvD;AAED,wBAAgB,aAAa;;;;;;;EA0B5B;AAED,eAAO,MAAM,QAAQ,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,OAAkD,CAAC;AAE1F,eAAO,MAAM,YAAY,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,OACU,CAAC;AAYlD,wBAAgB,iBAAiB,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAmBrE;AAED,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,GAAG,YAAY,EACjD,UAAU,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,WAAW,EAChD,gBAAgB,EAAE,MAAM,EAAE,GAAG,WAAW,GAAG,WAAW,EACtD,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,IAAI,GAAE,CAAC,GAAG,CAAK,GACd,kBAAkB,CASpB;AAED,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,WAAW,CAAC,EAAE,YAAY,GACzB,YAAY,CAQd;AAED,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,YAAY,EACzB,WAAW,EAAE,YAAY,EACzB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,GAClB,IAAI,CAIN"}
package/dist/utils.js CHANGED
@@ -54,4 +54,57 @@ export function scaleIdentity() {
54
54
  }
55
55
  export const isObject = x => x !== null && typeof x === 'object';
56
56
  export const isPureObject = x => isObject(x) && x.constructor === {}.constructor;
57
+ // Helpers for binary data
58
+ const EMPTY_UINT16ARRAY = new Uint16Array();
59
+ const EMPTY_BINARY_PROPS = {
60
+ positions: { value: new Float32Array(), size: 2 },
61
+ properties: [],
62
+ numericProps: {},
63
+ featureIds: { value: EMPTY_UINT16ARRAY, size: 1 },
64
+ globalFeatureIds: { value: EMPTY_UINT16ARRAY, size: 1 }
65
+ };
66
+ export function createEmptyBinary() {
67
+ return {
68
+ shape: 'binary-feature-collection',
69
+ points: {
70
+ type: 'Point',
71
+ ...EMPTY_BINARY_PROPS
72
+ },
73
+ lines: {
74
+ type: 'LineString',
75
+ pathIndices: { value: EMPTY_UINT16ARRAY, size: 1 },
76
+ ...EMPTY_BINARY_PROPS
77
+ },
78
+ polygons: {
79
+ type: 'Polygon',
80
+ polygonIndices: { value: EMPTY_UINT16ARRAY, size: 1 },
81
+ primitivePolygonIndices: { value: EMPTY_UINT16ARRAY, size: 1 },
82
+ ...EMPTY_BINARY_PROPS
83
+ }
84
+ };
85
+ }
86
+ export function createBinaryPointFeature(positions, featureIds, globalFeatureIds, numericProps, properties, size = 2) {
87
+ return {
88
+ type: 'Point',
89
+ positions: { value: new Float32Array(positions), size },
90
+ featureIds: { value: new Uint16Array(featureIds), size: 1 },
91
+ globalFeatureIds: { value: new Uint32Array(globalFeatureIds), size: 1 },
92
+ numericProps,
93
+ properties
94
+ };
95
+ }
96
+ export function initializeNumericProps(numPoints, sourceProps) {
97
+ const numericProps = {};
98
+ if (sourceProps) {
99
+ Object.keys(sourceProps).forEach(prop => {
100
+ numericProps[prop] = { value: new Float32Array(numPoints), size: 1 };
101
+ });
102
+ }
103
+ return numericProps;
104
+ }
105
+ export function copyNumericProps(sourceProps, targetProps, sourceIndex, targetIndex) {
106
+ Object.keys(sourceProps).forEach(prop => {
107
+ targetProps[prop].value[targetIndex] = sourceProps[prop].value[sourceIndex];
108
+ });
109
+ }
57
110
  //# sourceMappingURL=utils.js.map
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,GAAG,EAAC,MAAM,eAAe,CAAC;AAGlC,MAAM,UAAU,MAAM,CAAC,SAAkB,EAAE,OAAgB;IACzD,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACjC,CAAC;AAED,2DAA2D;AAC3D,gCAAgC;AAChC,MAAM,UAAU,iBAAiB,CAC/B,IAA4D,EAC5D,KAAa;IAEb,MAAM,EAAC,UAAU,EAAE,YAAY,EAAC,GAAG,IAAI,CAAC;IACxC,OAAO,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE;QACxC,GAAG,CAAC,MAAM,EAAE,QAAQ;YAClB,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;gBAC7B,OAAO,YAAY,CAAC,QAAkB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACvD,CAAC;YACD,OAAO,MAAM,CAAC,QAAkB,CAAC,CAAC;QACpC,CAAC;QAED,GAAG,CAAC,MAAM,EAAE,QAAQ;YAClB,OAAO,QAAQ,IAAI,YAAY,IAAI,QAAQ,IAAI,MAAM,CAAC;QACxD,CAAC;QAED,OAAO,CAAC,MAAM;YACZ,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACpE,CAAC;QAED,wBAAwB,CAAC,MAAM,EAAE,IAAI;YACnC,OAAO,EAAC,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAC,CAAC;QAChD,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,EAAU,EAAE,OAAe;IACtD,6EAA6E;IAC7E,uDAAuD;IACvD,OAAO,oCAAoC,OAAO,SAAS,EAAE,YAAY,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,IAAI,OAAO,CAAC;IAEZ,SAAS,KAAK,CAAC,CAAC;QACd,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IAErB,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAEpC,KAAK,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE;QAClB,IAAI,CAAC,EAAE,CAAC;YACN,OAAO,GAAG,CAAC,CAAC;QACd,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE;QAChB,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;QAClC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3B,OAAO,SAAS,CAAC;IACnB,CAAC,CAAC;IAEF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ,CAAC;AAE1F,MAAM,CAAC,MAAM,YAAY,GAAwB,CAAC,CAAC,EAAE,CACnD,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,KAAK,EAAE,CAAC,WAAW,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}