@deck.gl/carto 8.9.4 → 8.9.5

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 (113) hide show
  1. package/dist/dist.dev.js +359 -174
  2. package/dist/es5/api/layer-map.js +44 -44
  3. package/dist/es5/api/layer-map.js.map +1 -1
  4. package/dist/es5/api/maps-v3-client.js +22 -4
  5. package/dist/es5/api/maps-v3-client.js.map +1 -1
  6. package/dist/es5/api/parseMap.js +64 -48
  7. package/dist/es5/api/parseMap.js.map +1 -1
  8. package/dist/es5/index.js +8 -0
  9. package/dist/es5/index.js.map +1 -1
  10. package/dist/es5/layers/point-label-layer.js +268 -0
  11. package/dist/es5/layers/point-label-layer.js.map +1 -0
  12. package/dist/es5/layers/schema/carto-spatial-tile-loader.js +1 -9
  13. package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  14. package/dist/es5/layers/schema/carto-spatial-tile.js +5 -31
  15. package/dist/es5/layers/schema/carto-spatial-tile.js.map +1 -1
  16. package/dist/es5/layers/schema/carto-tile.js +12 -6
  17. package/dist/es5/layers/schema/carto-tile.js.map +1 -1
  18. package/dist/es5/layers/schema/carto-vector-tile-loader.js +1 -21
  19. package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
  20. package/dist/es5/layers/schema/fast-pbf.js +22 -0
  21. package/dist/es5/layers/schema/fast-pbf.js.map +1 -0
  22. package/dist/es5/layers/schema/tile-loader-utils.js +0 -17
  23. package/dist/es5/layers/schema/tile-loader-utils.js.map +1 -1
  24. package/dist/es5/layers/spatial-index-tile-layer.js +19 -1
  25. package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
  26. package/dist/esm/api/layer-map.js +29 -21
  27. package/dist/esm/api/layer-map.js.map +1 -1
  28. package/dist/esm/api/maps-v3-client.js +12 -1
  29. package/dist/esm/api/maps-v3-client.js.map +1 -1
  30. package/dist/esm/api/parseMap.js +59 -44
  31. package/dist/esm/api/parseMap.js.map +1 -1
  32. package/dist/esm/index.js +1 -0
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/layers/point-label-layer.js +198 -0
  35. package/dist/esm/layers/point-label-layer.js.map +1 -0
  36. package/dist/esm/layers/schema/carto-spatial-tile-loader.js +2 -4
  37. package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
  38. package/dist/esm/layers/schema/carto-spatial-tile.js +3 -28
  39. package/dist/esm/layers/schema/carto-spatial-tile.js.map +1 -1
  40. package/dist/esm/layers/schema/carto-tile.js +12 -6
  41. package/dist/esm/layers/schema/carto-tile.js.map +1 -1
  42. package/dist/esm/layers/schema/carto-vector-tile-loader.js +2 -18
  43. package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
  44. package/dist/esm/layers/schema/fast-pbf.js +13 -0
  45. package/dist/esm/layers/schema/fast-pbf.js.map +1 -0
  46. package/dist/esm/layers/schema/tile-loader-utils.js +0 -16
  47. package/dist/esm/layers/schema/tile-loader-utils.js.map +1 -1
  48. package/dist/esm/layers/spatial-index-tile-layer.js +21 -1
  49. package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
  50. package/dist.min.js +24 -23
  51. package/package.json +2 -2
  52. package/src/api/layer-map.ts +21 -25
  53. package/src/api/maps-v3-client.ts +19 -4
  54. package/src/api/parseMap.ts +67 -44
  55. package/src/api/types.ts +1 -0
  56. package/src/index.ts +1 -0
  57. package/src/layers/point-label-layer.ts +266 -0
  58. package/src/layers/schema/carto-spatial-tile-loader.ts +2 -5
  59. package/src/layers/schema/carto-spatial-tile.ts +5 -30
  60. package/src/layers/schema/carto-tile.ts +11 -12
  61. package/src/layers/schema/carto-vector-tile-loader.ts +2 -9
  62. package/src/layers/schema/fast-pbf.ts +13 -0
  63. package/src/layers/schema/tile-loader-utils.ts +0 -15
  64. package/src/layers/spatial-index-tile-layer.ts +22 -1
  65. package/typed/api/layer-map.d.ts +1 -2
  66. package/typed/api/layer-map.d.ts.map +1 -1
  67. package/typed/api/maps-v3-client.d.ts +4 -1
  68. package/typed/api/maps-v3-client.d.ts.map +1 -1
  69. package/typed/api/parseMap.d.ts +1 -1
  70. package/typed/api/parseMap.d.ts.map +1 -1
  71. package/typed/api/types.d.ts +1 -0
  72. package/typed/api/types.d.ts.map +1 -1
  73. package/typed/index.d.ts +1 -0
  74. package/typed/index.d.ts.map +1 -1
  75. package/typed/layers/point-label-layer.d.ts +56 -0
  76. package/typed/layers/point-label-layer.d.ts.map +1 -0
  77. package/typed/layers/schema/carto-spa-tile.d.ts +57 -0
  78. package/typed/layers/schema/carto-spa-tile.d.ts.map +1 -0
  79. package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
  80. package/typed/layers/schema/carto-spatial-tile.d.ts +2 -2
  81. package/typed/layers/schema/carto-spatial-tile.d.ts.map +1 -1
  82. package/typed/layers/schema/carto-tile.d.ts +2 -9
  83. package/typed/layers/schema/carto-tile.d.ts.map +1 -1
  84. package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
  85. package/typed/layers/schema/fast-pbf.d.ts +3 -0
  86. package/typed/layers/schema/fast-pbf.d.ts.map +1 -0
  87. package/typed/layers/schema/tile-loader-utils.d.ts +0 -3
  88. package/typed/layers/schema/tile-loader-utils.d.ts.map +1 -1
  89. package/typed/layers/spatial-index-tile-layer.d.ts +1 -0
  90. package/typed/layers/spatial-index-tile-layer.d.ts.map +1 -1
  91. package/typed/api/index.js +0 -3
  92. package/typed/api/layer-map.js +0 -264
  93. package/typed/api/maps-api-common.js +0 -50
  94. package/typed/api/maps-client.js +0 -125
  95. package/typed/api/maps-v3-client.js +0 -304
  96. package/typed/api/parseMap.js +0 -178
  97. package/typed/basemap.js +0 -9
  98. package/typed/config.js +0 -35
  99. package/typed/index.js +0 -10
  100. package/typed/layers/carto-layer.js +0 -173
  101. package/typed/layers/carto-tile-layer.js +0 -105
  102. package/typed/layers/h3-tile-layer.js +0 -47
  103. package/typed/layers/h3-tileset-2d.js +0 -85
  104. package/typed/layers/quadkey-tile-layer.js +0 -42
  105. package/typed/layers/quadkey-tileset-2d.js +0 -36
  106. package/typed/layers/schema/carto-tile.js +0 -161
  107. package/typed/layers/spatial-index-tile-layer.js +0 -40
  108. package/typed/style/color-bins-style.js +0 -12
  109. package/typed/style/color-categories-style.js +0 -16
  110. package/typed/style/color-continuous-style.js +0 -12
  111. package/typed/style/palette.js +0 -62
  112. package/typed/style/utils.js +0 -15
  113. package/typed/utils.js +0 -4
@@ -1,5 +1,5 @@
1
1
  import { TileReader } from './carto-tile';
2
- import { parsePbf, unpackProperties } from './tile-loader-utils';
2
+ import { parsePbf } from './tile-loader-utils';
3
3
  const CartoVectorTileLoader = {
4
4
  name: 'CARTO Vector Tile',
5
5
  version: '1',
@@ -17,23 +17,7 @@ const CartoVectorTileLoader = {
17
17
  function parseCartoVectorTile(arrayBuffer, options) {
18
18
  if (!arrayBuffer) return null;
19
19
  const tile = parsePbf(arrayBuffer, TileReader);
20
- const {
21
- points,
22
- lines,
23
- polygons
24
- } = tile;
25
- const data = {
26
- points: { ...points,
27
- properties: unpackProperties(points.properties)
28
- },
29
- lines: { ...lines,
30
- properties: unpackProperties(lines.properties)
31
- },
32
- polygons: { ...polygons,
33
- properties: unpackProperties(polygons.properties)
34
- }
35
- };
36
- return data;
20
+ return tile;
37
21
  }
38
22
 
39
23
  export default CartoVectorTileLoader;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["TileReader","parsePbf","unpackProperties","CartoVectorTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoVectorTile","parseSync","tile","points","lines","polygons","data","properties"],"mappings":"AAGA,SAAQA,UAAR,QAAyB,cAAzB;AACA,SAAQC,QAAR,EAAkBC,gBAAlB,QAAyC,qBAAzC;AAEA,MAAMC,qBAAuC,GAAG;AAC9CC,EAAAA,IAAI,EAAE,mBADwC;AAE9CC,EAAAA,OAAO,EAAE,GAFqC;AAG9CC,EAAAA,EAAE,EAAE,iBAH0C;AAI9CC,EAAAA,MAAM,EAAE,OAJsC;AAK9CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALkC;AAM9CC,EAAAA,SAAS,EAAE,CAAC,mCAAD,CANmC;AAO9CC,EAAAA,QAAQ,EAAE,UAPoC;AAQ9CC,EAAAA,MAAM,EAAE,KARsC;AAS9CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCC,oBAAoB,CAACF,WAAD,EAAcC,OAAd,CATb;AAU9CE,EAAAA,SAAS,EAAED,oBAVmC;AAW9CD,EAAAA,OAAO,EAAE;AAXqC,CAAhD;;AAcA,SAASC,oBAAT,CACEF,WADF,EAEEC,OAFF,EAGyB;AACvB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMI,IAAI,GAAGhB,QAAQ,CAACY,WAAD,EAAcb,UAAd,CAArB;AAEA,QAAM;AAACkB,IAAAA,MAAD;AAASC,IAAAA,KAAT;AAAgBC,IAAAA;AAAhB,MAA4BH,IAAlC;AACA,QAAMI,IAAI,GAAG;AACXH,IAAAA,MAAM,EAAE,EAAC,GAAGA,MAAJ;AAAYI,MAAAA,UAAU,EAAEpB,gBAAgB,CAACgB,MAAM,CAACI,UAAR;AAAxC,KADG;AAEXH,IAAAA,KAAK,EAAE,EAAC,GAAGA,KAAJ;AAAWG,MAAAA,UAAU,EAAEpB,gBAAgB,CAACiB,KAAK,CAACG,UAAP;AAAvC,KAFI;AAGXF,IAAAA,QAAQ,EAAE,EAAC,GAAGA,QAAJ;AAAcE,MAAAA,UAAU,EAAEpB,gBAAgB,CAACkB,QAAQ,CAACE,UAAV;AAA1C;AAHC,GAAb;AAOA,SAAOD,IAAP;AACD;;AAED,eAAelB,qBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {BinaryFeatures} from '@loaders.gl/schema';\n\nimport {TileReader} from './carto-tile';\nimport {parsePbf, unpackProperties} from './tile-loader-utils';\n\nconst CartoVectorTileLoader: LoaderWithParser = {\n name: 'CARTO Vector Tile',\n version: '1',\n id: 'cartoVectorTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-vector-tile'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),\n parseSync: parseCartoVectorTile,\n options: {}\n};\n\nfunction parseCartoVectorTile(\n arrayBuffer: ArrayBuffer,\n options?: LoaderOptions\n): BinaryFeatures | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n\n const {points, lines, polygons} = tile;\n const data = {\n points: {...points, properties: unpackProperties(points.properties)},\n lines: {...lines, properties: unpackProperties(lines.properties)},\n polygons: {...polygons, properties: unpackProperties(polygons.properties)}\n };\n\n // Note: there is slight, difference in `numericProps` type, however geojson/mvtlayer can cope with this\n return data as unknown as BinaryFeatures;\n}\n\nexport default CartoVectorTileLoader;\n"],"file":"carto-vector-tile-loader.js"}
1
+ {"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["TileReader","parsePbf","CartoVectorTileLoader","name","version","id","module","extensions","mimeTypes","category","worker","parse","arrayBuffer","options","parseCartoVectorTile","parseSync","tile"],"mappings":"AAGA,SAAQA,UAAR,QAAyB,cAAzB;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AAEA,MAAMC,qBAAuC,GAAG;AAC9CC,EAAAA,IAAI,EAAE,mBADwC;AAE9CC,EAAAA,OAAO,EAAE,GAFqC;AAG9CC,EAAAA,EAAE,EAAE,iBAH0C;AAI9CC,EAAAA,MAAM,EAAE,OAJsC;AAK9CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALkC;AAM9CC,EAAAA,SAAS,EAAE,CAAC,mCAAD,CANmC;AAO9CC,EAAAA,QAAQ,EAAE,UAPoC;AAQ9CC,EAAAA,MAAM,EAAE,KARsC;AAS9CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KAAgCC,oBAAoB,CAACF,WAAD,EAAcC,OAAd,CATb;AAU9CE,EAAAA,SAAS,EAAED,oBAVmC;AAW9CD,EAAAA,OAAO,EAAE;AAXqC,CAAhD;;AAcA,SAASC,oBAAT,CACEF,WADF,EAEEC,OAFF,EAGyB;AACvB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMI,IAAI,GAAGf,QAAQ,CAACW,WAAD,EAAcZ,UAAd,CAArB;AAGA,SAAOgB,IAAP;AACD;;AAED,eAAed,qBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {BinaryFeatures} from '@loaders.gl/schema';\n\nimport {TileReader} from './carto-tile';\nimport {parsePbf} from './tile-loader-utils';\n\nconst CartoVectorTileLoader: LoaderWithParser = {\n name: 'CARTO Vector Tile',\n version: '1',\n id: 'cartoVectorTile',\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-vector-tile'],\n category: 'geometry',\n worker: false,\n parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),\n parseSync: parseCartoVectorTile,\n options: {}\n};\n\nfunction parseCartoVectorTile(\n arrayBuffer: ArrayBuffer,\n options?: LoaderOptions\n): BinaryFeatures | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n\n // Note: there is slight, difference in `numericProps` type, however geojson/mvtlayer can cope with this\n return tile as unknown as BinaryFeatures;\n}\n\nexport default CartoVectorTileLoader;\n"],"file":"carto-vector-tile-loader.js"}
@@ -0,0 +1,13 @@
1
+ export function readPackedDouble(pbf, obj) {
2
+ const end = pbf.type === 2 ? pbf.readVarint() + pbf.pos : pbf.pos + 1;
3
+ obj.value = new Float64Array(pbf.buf.buffer.slice(pbf.pos, end));
4
+ pbf.pos = end;
5
+ return obj.value;
6
+ }
7
+ export function readPackedFixed64(pbf, obj) {
8
+ const end = pbf.type === 2 ? pbf.readVarint() + pbf.pos : pbf.pos + 1;
9
+ obj.value = new BigUint64Array(pbf.buf.buffer.slice(pbf.pos, end));
10
+ pbf.pos = end;
11
+ return obj.value;
12
+ }
13
+ //# sourceMappingURL=fast-pbf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/layers/schema/fast-pbf.ts"],"names":["readPackedDouble","pbf","obj","end","type","readVarint","pos","value","Float64Array","buf","buffer","slice","readPackedFixed64","BigUint64Array"],"mappings":"AACA,OAAO,SAASA,gBAAT,CAA0BC,GAA1B,EAA+BC,GAA/B,EAAoC;AACzC,QAAMC,GAAG,GAAGF,GAAG,CAACG,IAAJ,KAAa,CAAb,GAAiBH,GAAG,CAACI,UAAJ,KAAmBJ,GAAG,CAACK,GAAxC,GAA8CL,GAAG,CAACK,GAAJ,GAAU,CAApE;AACAJ,EAAAA,GAAG,CAACK,KAAJ,GAAY,IAAIC,YAAJ,CAAiBP,GAAG,CAACQ,GAAJ,CAAQC,MAAR,CAAeC,KAAf,CAAqBV,GAAG,CAACK,GAAzB,EAA8BH,GAA9B,CAAjB,CAAZ;AACAF,EAAAA,GAAG,CAACK,GAAJ,GAAUH,GAAV;AACA,SAAOD,GAAG,CAACK,KAAX;AACD;AACD,OAAO,SAASK,iBAAT,CAA2BX,GAA3B,EAAgCC,GAAhC,EAAqC;AAC1C,QAAMC,GAAG,GAAGF,GAAG,CAACG,IAAJ,KAAa,CAAb,GAAiBH,GAAG,CAACI,UAAJ,KAAmBJ,GAAG,CAACK,GAAxC,GAA8CL,GAAG,CAACK,GAAJ,GAAU,CAApE;AACAJ,EAAAA,GAAG,CAACK,KAAJ,GAAY,IAAIM,cAAJ,CAAmBZ,GAAG,CAACQ,GAAJ,CAAQC,MAAR,CAAeC,KAAf,CAAqBV,GAAG,CAACK,GAAzB,EAA8BH,GAA9B,CAAnB,CAAZ;AACAF,EAAAA,GAAG,CAACK,GAAJ,GAAUH,GAAV;AACA,SAAOD,GAAG,CAACK,KAAX;AACD","sourcesContent":["// Optimized (100X speed improvement) reading functions for binary data\nexport function readPackedDouble(pbf, obj) {\n const end = pbf.type === 2 ? pbf.readVarint() + pbf.pos : pbf.pos + 1;\n obj.value = new Float64Array(pbf.buf.buffer.slice(pbf.pos, end));\n pbf.pos = end;\n return obj.value;\n}\nexport function readPackedFixed64(pbf, obj) {\n const end = pbf.type === 2 ? pbf.readVarint() + pbf.pos : pbf.pos + 1;\n obj.value = new BigUint64Array(pbf.buf.buffer.slice(pbf.pos, end));\n pbf.pos = end;\n return obj.value;\n}\n"],"file":"fast-pbf.js"}
@@ -4,20 +4,4 @@ export function parsePbf(buffer, TileReader) {
4
4
  const tile = TileReader.read(pbf);
5
5
  return tile;
6
6
  }
7
- export function unpackProperties(properties) {
8
- if (!properties || !properties.length) {
9
- return [];
10
- }
11
-
12
- return properties.map(item => {
13
- const currentRecord = {};
14
- item.data.forEach(({
15
- key,
16
- value
17
- }) => {
18
- currentRecord[key] = value;
19
- });
20
- return currentRecord;
21
- });
22
- }
23
7
  //# sourceMappingURL=tile-loader-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/layers/schema/tile-loader-utils.ts"],"names":["Protobuf","parsePbf","buffer","TileReader","pbf","tile","read","unpackProperties","properties","length","map","item","currentRecord","data","forEach","key","value"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,KAArB;AAIA,OAAO,SAASC,QAAT,CAAkBC,MAAlB,EAAuCC,UAAvC,EAAmD;AACxD,QAAMC,GAAG,GAAG,IAAIJ,QAAJ,CAAaE,MAAb,CAAZ;AACA,QAAMG,IAAI,GAAGF,UAAU,CAACG,IAAX,CAAgBF,GAAhB,CAAb;AACA,SAAOC,IAAP;AACD;AAED,OAAO,SAASE,gBAAT,CAA0BC,UAA1B,EAA0E;AAC/E,MAAI,CAACA,UAAD,IAAe,CAACA,UAAU,CAACC,MAA/B,EAAuC;AACrC,WAAO,EAAP;AACD;;AACD,SAAOD,UAAU,CAACE,GAAX,CAAeC,IAAI,IAAI;AAC5B,UAAMC,aAAyB,GAAG,EAAlC;AACAD,IAAAA,IAAI,CAACE,IAAL,CAAUC,OAAV,CAAkB,CAAC;AAACC,MAAAA,GAAD;AAAMC,MAAAA;AAAN,KAAD,KAAkB;AAClCJ,MAAAA,aAAa,CAACG,GAAD,CAAb,GAAqBC,KAArB;AACD,KAFD;AAGA,WAAOJ,aAAP;AACD,GANM,CAAP;AAOD","sourcesContent":["import Protobuf from 'pbf';\nimport {KeyValueProperties} from './carto-tile';\nimport {Properties} from './spatialjson-utils';\n\nexport function parsePbf(buffer: ArrayBuffer, TileReader) {\n const pbf = new Protobuf(buffer);\n const tile = TileReader.read(pbf);\n return tile;\n}\n\nexport function 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"],"file":"tile-loader-utils.js"}
1
+ {"version":3,"sources":["../../../../src/layers/schema/tile-loader-utils.ts"],"names":["Protobuf","parsePbf","buffer","TileReader","pbf","tile","read"],"mappings":"AAAA,OAAOA,QAAP,MAAqB,KAArB;AAEA,OAAO,SAASC,QAAT,CAAkBC,MAAlB,EAAuCC,UAAvC,EAAmD;AACxD,QAAMC,GAAG,GAAG,IAAIJ,QAAJ,CAAaE,MAAb,CAAZ;AACA,QAAMG,IAAI,GAAGF,UAAU,CAACG,IAAX,CAAgBF,GAAhB,CAAb;AACA,SAAOC,IAAP;AACD","sourcesContent":["import Protobuf from 'pbf';\n\nexport function parsePbf(buffer: ArrayBuffer, TileReader) {\n const pbf = new Protobuf(buffer);\n const tile = TileReader.read(pbf);\n return tile;\n}\n"],"file":"tile-loader-utils.js"}
@@ -107,13 +107,33 @@ export default class SpatialIndexTileLayer extends TileLayer {
107
107
  const data = tile.content;
108
108
  const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);
109
109
 
110
- if (!isFeatureIdPresent || !Array.isArray(data)) {
110
+ if (!isFeatureIdPresent || !Array.isArray(data) || !this._featureInTile(tile, hoveredFeatureId)) {
111
111
  return -1;
112
112
  }
113
113
 
114
114
  return data.findIndex(feature => feature.id === hoveredFeatureId);
115
115
  }
116
116
 
117
+ _featureInTile(tile, featureId) {
118
+ const {
119
+ getTileZoom,
120
+ getParentIndex
121
+ } = this.state.tileset;
122
+ const tileZoom = getTileZoom(tile.index);
123
+ const KEY = tile.index.q ? 'q' : 'i';
124
+ let featureIndex = {
125
+ [KEY]: featureId
126
+ };
127
+ let featureZoom = getTileZoom(featureIndex);
128
+
129
+ while (!(featureZoom <= tileZoom)) {
130
+ featureIndex = getParentIndex(featureIndex);
131
+ featureZoom = getTileZoom(featureIndex);
132
+ }
133
+
134
+ return featureIndex[KEY] === tile.index[KEY];
135
+ }
136
+
117
137
  }
118
138
 
119
139
  _defineProperty(SpatialIndexTileLayer, "layerName", 'SpatialIndexTileLayer');
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["registerLoaders","CartoSpatialTileLoader","TileLayer","_getURLFromTemplate","TILE_FORMATS","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","getTileData","tile","data","fetch","props","signal","url","Array","isArray","Promise","reject","loadOptions","getLoadOptions","formatTiles","BINARY","mimeType","propName","layer","updateState","params","oldProps","setState","tileset","_updateAutoHighlight","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","getSubLayerPropsByTile","highlightedObjectIndex","getHighlightedObjectIndex","content","isFeatureIdPresent","findIndex","feature"],"mappings":"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","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport {DefaultProps, UpdateParameters} from '@deck.gl/core';\nimport CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';\nregisterLoaders([CartoSpatialTileLoader]);\n\nimport {PickingInfo} from '@deck.gl/core';\nimport {\n TileLayer,\n _getURLFromTemplate,\n _Tile2DHeader as Tile2DHeader,\n _TileLoadProps as TileLoadProps\n} from '@deck.gl/geo-layers';\nimport {TILE_FORMATS} from '../api/maps-api-common';\n\nfunction isFeatureIdDefined(value: unknown): boolean {\n return value !== undefined && value !== null && value !== '';\n}\n\nconst defaultProps: DefaultProps<SpatialIndexTileLayerProps> = {\n aggregationResLevel: 4\n};\n\n/** All properties supported by SpatialIndexTileLayer. */\nexport type SpatialIndexTileLayerProps<DataT = any> = _SpatialIndexTileLayerProps<DataT> &\n TileLayer<DataT>;\n\n/** Properties added by SpatialIndexTileLayer. */\ntype _SpatialIndexTileLayerProps<DataT = any> = {\n aggregationResLevel?: number;\n};\n\nexport default class SpatialIndexTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends TileLayer<DataT, ExtraProps & Required<_SpatialIndexTileLayerProps<DataT>>> {\n static layerName = 'SpatialIndexTileLayer';\n static defaultProps = defaultProps;\n\n getTileData(tile: TileLoadProps) {\n const {data, getTileData, fetch} = this.props;\n const {signal} = tile;\n\n tile.url =\n typeof data === 'string' || Array.isArray(data) ? _getURLFromTemplate(data, tile) : null;\n if (!tile.url) {\n return Promise.reject('Invalid URL');\n }\n\n if (getTileData) {\n return getTileData(tile);\n }\n\n let loadOptions = this.getLoadOptions();\n // @ts-ignore\n const {formatTiles} = this.props;\n\n // The backend doesn't yet support our custom mime-type, so force it here\n // TODO remove entire `getTileData` method once backend sends the correct mime-type\n if (formatTiles === TILE_FORMATS.BINARY) {\n loadOptions = {\n ...loadOptions,\n mimeType: 'application/vnd.carto-spatial-tile'\n };\n }\n\n return fetch(tile.url, {propName: 'data', layer: this, loadOptions, signal});\n }\n\n updateState(params: UpdateParameters<this>) {\n const {props, oldProps} = params;\n if (props.aggregationResLevel !== oldProps.aggregationResLevel) {\n // Tileset cache is invalid when resLevel changes\n this.setState({tileset: null});\n }\n super.updateState(params);\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const {hoveredFeatureId} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId;\n\n if (hoveredFeature) {\n newHoveredFeatureId = hoveredFeature.id;\n }\n\n if (hoveredFeatureId !== newHoveredFeatureId) {\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId\n });\n }\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile: Tile2DHeader) {\n const {hoveredFeatureId} = this.state;\n const data = tile.content;\n\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);\n if (!isFeatureIdPresent || !Array.isArray(data)) {\n return -1;\n }\n\n return data.findIndex(feature => feature.id === hoveredFeatureId);\n }\n}\n"],"file":"spatial-index-tile-layer.js"}
1
+ {"version":3,"sources":["../../../src/layers/spatial-index-tile-layer.ts"],"names":["registerLoaders","CartoSpatialTileLoader","TileLayer","_getURLFromTemplate","TILE_FORMATS","isFeatureIdDefined","value","undefined","defaultProps","aggregationResLevel","SpatialIndexTileLayer","getTileData","tile","data","fetch","props","signal","url","Array","isArray","Promise","reject","loadOptions","getLoadOptions","formatTiles","BINARY","mimeType","propName","layer","updateState","params","oldProps","setState","tileset","_updateAutoHighlight","info","hoveredFeatureId","state","hoveredFeature","object","newHoveredFeatureId","id","highlightColor","getSubLayerPropsByTile","highlightedObjectIndex","getHighlightedObjectIndex","content","isFeatureIdPresent","_featureInTile","findIndex","feature","featureId","getTileZoom","getParentIndex","tileZoom","index","KEY","q","featureIndex","featureZoom"],"mappings":"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","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport {DefaultProps, UpdateParameters} from '@deck.gl/core';\nimport CartoSpatialTileLoader from './schema/carto-spatial-tile-loader';\nregisterLoaders([CartoSpatialTileLoader]);\n\nimport {PickingInfo} from '@deck.gl/core';\nimport {\n TileLayer,\n _getURLFromTemplate,\n _Tile2DHeader as Tile2DHeader,\n _TileLoadProps as TileLoadProps\n} from '@deck.gl/geo-layers';\nimport {TILE_FORMATS} from '../api/maps-api-common';\n\nfunction isFeatureIdDefined(value: unknown): boolean {\n return value !== undefined && value !== null && value !== '';\n}\n\nconst defaultProps: DefaultProps<SpatialIndexTileLayerProps> = {\n aggregationResLevel: 4\n};\n\n/** All properties supported by SpatialIndexTileLayer. */\nexport type SpatialIndexTileLayerProps<DataT = any> = _SpatialIndexTileLayerProps<DataT> &\n TileLayer<DataT>;\n\n/** Properties added by SpatialIndexTileLayer. */\ntype _SpatialIndexTileLayerProps<DataT = any> = {\n aggregationResLevel?: number;\n};\n\nexport default class SpatialIndexTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends TileLayer<DataT, ExtraProps & Required<_SpatialIndexTileLayerProps<DataT>>> {\n static layerName = 'SpatialIndexTileLayer';\n static defaultProps = defaultProps;\n\n getTileData(tile: TileLoadProps) {\n const {data, getTileData, fetch} = this.props;\n const {signal} = tile;\n\n tile.url =\n typeof data === 'string' || Array.isArray(data) ? _getURLFromTemplate(data, tile) : null;\n if (!tile.url) {\n return Promise.reject('Invalid URL');\n }\n\n if (getTileData) {\n return getTileData(tile);\n }\n\n let loadOptions = this.getLoadOptions();\n // @ts-ignore\n const {formatTiles} = this.props;\n\n // The backend doesn't yet support our custom mime-type, so force it here\n // TODO remove entire `getTileData` method once backend sends the correct mime-type\n if (formatTiles === TILE_FORMATS.BINARY) {\n loadOptions = {\n ...loadOptions,\n mimeType: 'application/vnd.carto-spatial-tile'\n };\n }\n\n return fetch(tile.url, {propName: 'data', layer: this, loadOptions, signal});\n }\n\n updateState(params: UpdateParameters<this>) {\n const {props, oldProps} = params;\n if (props.aggregationResLevel !== oldProps.aggregationResLevel) {\n // Tileset cache is invalid when resLevel changes\n this.setState({tileset: null});\n }\n\n super.updateState(params);\n }\n\n protected _updateAutoHighlight(info: PickingInfo): void {\n const {hoveredFeatureId} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId;\n\n if (hoveredFeature) {\n newHoveredFeatureId = hoveredFeature.id;\n }\n\n if (hoveredFeatureId !== newHoveredFeatureId) {\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId\n });\n }\n }\n\n getSubLayerPropsByTile(tile: Tile2DHeader) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile: Tile2DHeader) {\n const {hoveredFeatureId} = this.state;\n const data = tile.content;\n\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId);\n if (\n !isFeatureIdPresent ||\n !Array.isArray(data) ||\n // Quick check for whether id is within tile. data.findIndex is expensive\n !this._featureInTile(tile, hoveredFeatureId)\n ) {\n return -1;\n }\n\n return data.findIndex(feature => feature.id === hoveredFeatureId);\n }\n\n _featureInTile(tile: Tile2DHeader, featureId: BigInt | number) {\n const {getTileZoom, getParentIndex} = this.state.tileset;\n const tileZoom = getTileZoom(tile.index);\n // @ts-ignore\n const KEY = tile.index.q ? 'q' : 'i';\n let featureIndex = {[KEY]: featureId};\n let featureZoom = getTileZoom(featureIndex);\n while (!(featureZoom <= tileZoom)) {\n featureIndex = getParentIndex(featureIndex);\n featureZoom = getTileZoom(featureIndex);\n }\n\n return featureIndex[KEY] === tile.index[KEY];\n }\n}\n"],"file":"spatial-index-tile-layer.js"}