@deck.gl/carto 8.10.0-alpha.1 → 8.10.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/dist/cartoRasterTile-worker.js +1084 -0
- package/dist/cartoSpatialTile-worker.js +1469 -0
- package/dist/cartoVectorTile-worker.js +1727 -0
- package/dist/dist.dev.js +1740 -883
- package/dist/es5/api/layer-map.js +3 -7
- package/dist/es5/api/layer-map.js.map +1 -1
- package/dist/es5/api/maps-api-common.js +0 -1
- package/dist/es5/api/maps-api-common.js.map +1 -1
- package/dist/es5/api/maps-v3-client.js +5 -20
- package/dist/es5/api/maps-v3-client.js.map +1 -1
- package/dist/es5/index.js +74 -6
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +7 -5
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/h3-tile-layer.js +23 -41
- package/dist/es5/layers/h3-tile-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-layer.js +3 -0
- package/dist/es5/layers/quadbin-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tile-layer.js +21 -42
- package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/es5/layers/raster-tile-layer.js +23 -39
- package/dist/es5/layers/raster-tile-layer.js.map +1 -1
- package/dist/es5/layers/schema/carto-raster-tile-loader.js +13 -4
- package/dist/es5/layers/schema/carto-raster-tile-loader.js.map +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js +14 -8
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/es5/layers/schema/carto-tile.js +1 -1
- package/dist/es5/layers/schema/carto-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-vector-tile-loader.js +64 -4
- package/dist/es5/layers/schema/carto-vector-tile-loader.js.map +1 -1
- package/dist/es5/layers/utils.js +29 -0
- package/dist/es5/layers/utils.js.map +1 -0
- package/dist/es5/layers/{carto-tile-layer.js → vector-tile-layer.js} +49 -24
- package/dist/es5/layers/vector-tile-layer.js.map +1 -0
- package/dist/es5/sources/base-source.js +100 -0
- package/dist/es5/sources/base-source.js.map +1 -0
- package/dist/es5/sources/common.js +48 -0
- package/dist/es5/sources/common.js.map +1 -0
- package/dist/es5/sources/h3-query-source.js +58 -0
- package/dist/es5/sources/h3-query-source.js.map +1 -0
- package/dist/es5/sources/h3-table-source.js +58 -0
- package/dist/es5/sources/h3-table-source.js.map +1 -0
- package/dist/es5/sources/h3-tileset-source.js +43 -0
- package/dist/es5/sources/h3-tileset-source.js.map +1 -0
- package/dist/es5/sources/index.js +94 -0
- package/dist/es5/sources/index.js.map +1 -0
- package/dist/es5/sources/quadbin-query-source.js +58 -0
- package/dist/es5/sources/quadbin-query-source.js.map +1 -0
- package/dist/es5/sources/quadbin-table-source.js +58 -0
- package/dist/es5/sources/quadbin-table-source.js.map +1 -0
- package/dist/es5/sources/quadbin-tileset-source.js +43 -0
- package/dist/es5/sources/quadbin-tileset-source.js.map +1 -0
- package/dist/es5/sources/raster-source.js +43 -0
- package/dist/es5/sources/raster-source.js.map +1 -0
- package/dist/es5/sources/utils.js +136 -0
- package/dist/es5/sources/utils.js.map +1 -0
- package/dist/es5/sources/vector-query-source.js +52 -0
- package/dist/es5/sources/vector-query-source.js.map +1 -0
- package/dist/es5/sources/vector-table-source.js +52 -0
- package/dist/es5/sources/vector-table-source.js.map +1 -0
- package/dist/es5/sources/vector-tileset-source.js +43 -0
- package/dist/es5/sources/vector-tileset-source.js.map +1 -0
- package/dist/es5/utils.js +5 -0
- package/dist/es5/utils.js.map +1 -1
- package/dist/es5/workers/cartoRasterTile.js +10 -0
- package/dist/es5/workers/cartoRasterTile.js.map +1 -0
- package/dist/es5/workers/cartoSpatialTile.js +10 -0
- package/dist/es5/workers/cartoSpatialTile.js.map +1 -0
- package/dist/es5/workers/cartoVectorTile.js +10 -0
- package/dist/es5/workers/cartoVectorTile.js.map +1 -0
- package/dist/esm/api/layer-map.js +3 -7
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-api-common.js +0 -1
- package/dist/esm/api/maps-api-common.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +2 -12
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/index.js +5 -4
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +5 -3
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist/esm/layers/h3-tile-layer.js +21 -37
- package/dist/esm/layers/h3-tile-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-layer.js +4 -1
- package/dist/esm/layers/quadbin-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-tile-layer.js +18 -38
- package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/esm/layers/raster-tile-layer.js +19 -34
- package/dist/esm/layers/raster-tile-layer.js.map +1 -1
- package/dist/esm/layers/schema/carto-raster-tile-loader.js +12 -4
- package/dist/esm/layers/schema/carto-raster-tile-loader.js.map +1 -1
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js +13 -8
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js.map +1 -1
- package/dist/esm/layers/schema/carto-tile.js +1 -1
- package/dist/esm/layers/schema/carto-tile.js.map +1 -1
- package/dist/esm/layers/schema/carto-vector-tile-loader.js +63 -4
- package/dist/esm/layers/schema/carto-vector-tile-loader.js.map +1 -1
- package/dist/esm/layers/utils.js +14 -0
- package/dist/esm/layers/utils.js.map +1 -0
- package/dist/esm/layers/{carto-tile-layer.js → vector-tile-layer.js} +39 -15
- package/dist/esm/layers/vector-tile-layer.js.map +1 -0
- package/dist/esm/sources/base-source.js +49 -0
- package/dist/esm/sources/base-source.js.map +1 -0
- package/dist/esm/sources/common.js +26 -0
- package/dist/esm/sources/common.js.map +1 -0
- package/dist/esm/sources/h3-query-source.js +32 -0
- package/dist/esm/sources/h3-query-source.js.map +1 -0
- package/dist/esm/sources/h3-table-source.js +32 -0
- package/dist/esm/sources/h3-table-source.js.map +1 -0
- package/dist/esm/sources/h3-tileset-source.js +14 -0
- package/dist/esm/sources/h3-tileset-source.js.map +1 -0
- package/dist/esm/sources/index.js +12 -0
- package/dist/esm/sources/index.js.map +1 -0
- package/dist/esm/sources/quadbin-query-source.js +32 -0
- package/dist/esm/sources/quadbin-query-source.js.map +1 -0
- package/dist/esm/sources/quadbin-table-source.js +32 -0
- package/dist/esm/sources/quadbin-table-source.js.map +1 -0
- package/dist/esm/sources/quadbin-tileset-source.js +14 -0
- package/dist/esm/sources/quadbin-tileset-source.js.map +1 -0
- package/dist/esm/sources/raster-source.js +14 -0
- package/dist/esm/sources/raster-source.js.map +1 -0
- package/dist/esm/sources/utils.js +69 -0
- package/dist/esm/sources/utils.js.map +1 -0
- package/dist/esm/sources/vector-query-source.js +25 -0
- package/dist/esm/sources/vector-query-source.js.map +1 -0
- package/dist/esm/sources/vector-table-source.js +25 -0
- package/dist/esm/sources/vector-table-source.js.map +1 -0
- package/dist/esm/sources/vector-tileset-source.js +14 -0
- package/dist/esm/sources/vector-tileset-source.js.map +1 -0
- package/dist/esm/utils.js +3 -0
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/workers/cartoRasterTile.js +4 -0
- package/dist/esm/workers/cartoRasterTile.js.map +1 -0
- package/dist/esm/workers/cartoSpatialTile.js +4 -0
- package/dist/esm/workers/cartoSpatialTile.js.map +1 -0
- package/dist/esm/workers/cartoVectorTile.js +4 -0
- package/dist/esm/workers/cartoVectorTile.js.map +1 -0
- package/dist.min.js +25 -25
- package/package.json +12 -9
- package/src/api/layer-map.ts +4 -8
- package/src/api/maps-api-common.ts +0 -1
- package/src/api/maps-v3-client.ts +6 -5
- package/src/index.ts +34 -5
- package/src/layers/carto-layer.ts +8 -2
- package/src/layers/h3-tile-layer.ts +22 -35
- package/src/layers/quadbin-layer.ts +2 -1
- package/src/layers/quadbin-tile-layer.ts +19 -33
- package/src/layers/raster-tile-layer.ts +22 -26
- package/src/layers/schema/carto-raster-tile-loader.ts +26 -6
- package/src/layers/schema/carto-spatial-tile-loader.ts +25 -11
- package/src/layers/schema/carto-tile.ts +1 -1
- package/src/layers/schema/carto-vector-tile-loader.ts +79 -9
- package/src/layers/utils.ts +11 -0
- package/src/layers/{carto-tile-layer.ts → vector-tile-layer.ts} +40 -21
- package/src/sources/base-source.ts +55 -0
- package/src/sources/common.ts +132 -0
- package/src/sources/h3-query-source.ts +45 -0
- package/src/sources/h3-table-source.ts +46 -0
- package/src/sources/h3-tileset-source.ts +16 -0
- package/src/sources/index.ts +32 -0
- package/src/sources/quadbin-query-source.ts +46 -0
- package/src/sources/quadbin-table-source.ts +46 -0
- package/src/sources/quadbin-tileset-source.ts +16 -0
- package/src/sources/raster-source.ts +16 -0
- package/src/sources/utils.ts +63 -0
- package/src/sources/vector-query-source.ts +23 -0
- package/src/sources/vector-table-source.ts +23 -0
- package/src/sources/vector-tileset-source.ts +16 -0
- package/src/utils.ts +6 -0
- package/src/workers/cartoRasterTile.ts +4 -0
- package/src/workers/cartoSpatialTile.ts +4 -0
- package/src/workers/cartoVectorTile.ts +4 -0
- package/typed/api/layer-map.d.ts +2 -3
- package/typed/api/layer-map.d.ts.map +1 -1
- package/typed/api/maps-api-common.d.ts +0 -1
- package/typed/api/maps-api-common.d.ts.map +1 -1
- package/typed/api/maps-v3-client.d.ts +0 -3
- package/typed/api/maps-v3-client.d.ts.map +1 -1
- package/typed/index.d.ts +6 -4
- package/typed/index.d.ts.map +1 -1
- package/typed/layers/carto-layer.d.ts.map +1 -1
- package/typed/layers/h3-tile-layer.d.ts +5 -8
- package/typed/layers/h3-tile-layer.d.ts.map +1 -1
- package/typed/layers/quadbin-layer.d.ts.map +1 -1
- package/typed/layers/quadbin-tile-layer.d.ts +5 -9
- package/typed/layers/quadbin-tile-layer.d.ts.map +1 -1
- package/typed/layers/raster-tile-layer.d.ts +6 -10
- package/typed/layers/raster-tile-layer.d.ts.map +1 -1
- package/typed/layers/schema/carto-raster-tile-loader.d.ts.map +1 -1
- package/typed/layers/schema/carto-spatial-tile-loader.d.ts.map +1 -1
- package/typed/layers/schema/carto-vector-tile-loader.d.ts.map +1 -1
- package/typed/layers/utils.d.ts +5 -0
- package/typed/layers/utils.d.ts.map +1 -0
- package/typed/layers/{carto-tile-layer.d.ts → vector-tile-layer.d.ts} +11 -7
- package/typed/layers/vector-tile-layer.d.ts.map +1 -0
- package/typed/sources/base-source.d.ts +4 -0
- package/typed/sources/base-source.d.ts.map +1 -0
- package/typed/sources/common.d.ts +116 -0
- package/typed/sources/common.d.ts.map +1 -0
- package/typed/sources/h3-query-source.d.ts +5 -0
- package/typed/sources/h3-query-source.d.ts.map +1 -0
- package/typed/sources/h3-table-source.d.ts +5 -0
- package/typed/sources/h3-table-source.d.ts.map +1 -0
- package/typed/sources/h3-tileset-source.d.ts +5 -0
- package/typed/sources/h3-tileset-source.d.ts.map +1 -0
- package/typed/sources/index.d.ts +23 -0
- package/typed/sources/index.d.ts.map +1 -0
- package/typed/sources/quadbin-query-source.d.ts +5 -0
- package/typed/sources/quadbin-query-source.d.ts.map +1 -0
- package/typed/sources/quadbin-table-source.d.ts +5 -0
- package/typed/sources/quadbin-table-source.d.ts.map +1 -0
- package/typed/sources/quadbin-tileset-source.d.ts +5 -0
- package/typed/sources/quadbin-tileset-source.d.ts.map +1 -0
- package/typed/sources/raster-source.d.ts +5 -0
- package/typed/sources/raster-source.d.ts.map +1 -0
- package/typed/sources/utils.d.ts +15 -0
- package/typed/sources/utils.d.ts.map +1 -0
- package/typed/sources/vector-query-source.d.ts +5 -0
- package/typed/sources/vector-query-source.d.ts.map +1 -0
- package/typed/sources/vector-table-source.d.ts +5 -0
- package/typed/sources/vector-table-source.d.ts.map +1 -0
- package/typed/sources/vector-tileset-source.d.ts +5 -0
- package/typed/sources/vector-tileset-source.d.ts.map +1 -0
- package/typed/utils.d.ts +1 -0
- package/typed/utils.d.ts.map +1 -1
- package/typed/workers/cartoRasterTile.d.ts +2 -0
- package/typed/workers/cartoRasterTile.d.ts.map +1 -0
- package/typed/workers/cartoSpatialTile.d.ts +2 -0
- package/typed/workers/cartoSpatialTile.d.ts.map +1 -0
- package/typed/workers/cartoVectorTile.d.ts +2 -0
- package/typed/workers/cartoVectorTile.d.ts.map +1 -0
- package/dist/es5/layers/carto-tile-layer.js.map +0 -1
- package/dist/esm/layers/carto-tile-layer.js.map +0 -1
- package/typed/api/index.js +0 -3
- package/typed/api/layer-map.js +0 -264
- package/typed/api/maps-api-common.js +0 -50
- package/typed/api/maps-client.js +0 -125
- package/typed/api/maps-v3-client.js +0 -304
- package/typed/api/parseMap.js +0 -178
- package/typed/basemap.js +0 -9
- package/typed/config.js +0 -35
- package/typed/index.js +0 -10
- package/typed/layers/carto-layer.js +0 -173
- package/typed/layers/carto-tile-layer.d.ts.map +0 -1
- package/typed/layers/carto-tile-layer.js +0 -105
- package/typed/layers/h3-tile-layer.js +0 -47
- package/typed/layers/h3-tileset-2d.js +0 -85
- package/typed/layers/quadkey-tile-layer.d.ts +0 -21
- package/typed/layers/quadkey-tile-layer.d.ts.map +0 -1
- package/typed/layers/quadkey-tile-layer.js +0 -42
- package/typed/layers/quadkey-tileset-2d.d.ts +0 -15
- package/typed/layers/quadkey-tileset-2d.d.ts.map +0 -1
- package/typed/layers/quadkey-tileset-2d.js +0 -36
- package/typed/layers/schema/carto-tile.js +0 -161
- package/typed/layers/spatial-index-tile-layer.js +0 -40
- package/typed/style/color-bins-style.js +0 -12
- package/typed/style/color-categories-style.js +0 -16
- package/typed/style/color-continuous-style.js +0 -12
- package/typed/style/palette.js +0 -62
- package/typed/style/utils.js +0 -15
- package/typed/utils.js +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["CompositeLayer","QuadbinLayer","QuadbinTileset2D","SpatialIndexTileLayer","hexToBigInt","renderSubLayers","props","data","length","isBigInt","id","getQuadbin","d","defaultProps","aggregationResLevel","QuadbinTileLayer","
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/quadbin-tile-layer.ts"],"names":["CompositeLayer","QuadbinLayer","QuadbinTileset2D","SpatialIndexTileLayer","hexToBigInt","TilejsonPropType","injectAccessToken","renderSubLayers","props","data","length","isBigInt","id","getQuadbin","d","defaultProps","aggregationResLevel","QuadbinTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","cartoSpatialTile","scheme","renderLayers","tiles","maxresolution","maxZoom","TilesetClass"],"mappings":";AAAA,SAAQA,cAAR,QAAmF,eAAnF;AACA,OAAOC,YAAP,MAA8C,iBAA9C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,SAAQC,WAAR,QAA0B,SAA1B;AACA,SAAQC,gBAAR,QAAoD,mBAApD;AACA,SAAQC,iBAAR,QAAgC,SAAhC;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AACtC,QAAM;AAACC,IAAAA;AAAD,MAASD,KAAf;AACA,MAAI,CAACC,IAAD,IAAS,CAACA,IAAI,CAACC,MAAnB,EAA2B,OAAO,IAAP;AAC3B,QAAMC,QAAQ,GAAG,OAAOF,IAAI,CAAC,CAAD,CAAJ,CAAQG,EAAf,KAAsB,QAAvC;AACA,SAAO,IAAIX,YAAJ,CAAiBO,KAAjB,EAAwB;AAC7BK,IAAAA,UAAU,EAAEF,QAAQ,GAAGG,CAAC,IAAIA,CAAC,CAACF,EAAV,GAAeE,CAAC,IAAIV,WAAW,CAACU,CAAC,CAACF,EAAH;AADtB,GAAxB,CAAP;AAGD,CAPM;AASP,MAAMG,YAAiD,GAAG;AACxDC,EAAAA,mBAAmB,EAAE,CADmC;AAExDP,EAAAA,IAAI,EAAEJ;AAFkD,CAA1D;AAeA,eAAe,MAAMY,gBAAN,SAGLjB,cAHK,CAGgE;AAI7EkB,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKZ,KAAL,CAAWC,IAA5B;AACAH,IAAAA,iBAAiB,CAACa,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACAF,IAAAA,WAAW,CAACG,gBAAZ,GAA+B,EAAC,GAAGH,WAAW,CAACG,gBAAhB;AAAkCC,MAAAA,MAAM,EAAE;AAA1C,KAA/B;AACA,WAAOJ,WAAP;AACD;;AAEDK,EAAAA,YAAY,GAA8B;AACxC,UAAMJ,QAAQ,GAAG,KAAKZ,KAAL,CAAWC,IAA5B;AACA,QAAI,CAACW,QAAL,EAAe,OAAO,IAAP;AAEf,UAAM;AAACK,MAAAA,KAAK,EAAEhB,IAAR;AAAciB,MAAAA,aAAa,EAAEC;AAA7B,QAAwCP,QAA9C;AACA,WAAO,CAEL,IAAIjB,qBAAJ,CAA0B,KAAKK,KAA/B,EAAsC;AACpCI,MAAAA,EAAE,+BAAwB,KAAKJ,KAAL,CAAWI,EAAnC,CADkC;AAEpCH,MAAAA,IAFoC;AAIpCmB,MAAAA,YAAY,EAAE1B,gBAJsB;AAKpCK,MAAAA,eALoC;AAMpCoB,MAAAA,OANoC;AAOpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AAPuB,KAAtC,CAFK,CAAP;AAYD;;AA7B4E;;gBAH1DD,gB,eAIA,kB;;gBAJAA,gB,kBAKGF,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';\nimport QuadbinLayer, {QuadbinLayerProps} from './quadbin-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {hexToBigInt} from 'quadbin';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nexport const renderSubLayers = props => {\n const {data} = props;\n if (!data || !data.length) return null;\n const isBigInt = typeof data[0].id === 'bigint';\n return new QuadbinLayer(props, {\n getQuadbin: isBigInt ? d => d.id : d => hexToBigInt(d.id)\n });\n};\n\nconst defaultProps: DefaultProps<QuadbinTileLayerProps> = {\n aggregationResLevel: 6,\n data: TilejsonPropType\n};\n\n/** All properties supported by QuadbinTileLayer. */\nexport type QuadbinTileLayerProps<DataT = any> = _QuadbinTileLayerProps<DataT> &\n CompositeLayerProps;\n\n/** Properties added by QuadbinTileLayer. */\ntype _QuadbinTileLayerProps<DataT> = Omit<QuadbinLayerProps<DataT>, 'data'> & {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n aggregationResLevel?: number;\n};\n\nexport default class QuadbinTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_QuadbinTileLayerProps<DataT>>> {\n static layerName = 'QuadbinTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.cartoSpatialTile = {...loadOptions.cartoSpatialTile, scheme: 'quadbin'};\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as CartoTilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, maxresolution: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `quadbin-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"quadbin-tile-layer.js"}
|
|
@@ -3,6 +3,8 @@ import { CompositeLayer } from '@deck.gl/core';
|
|
|
3
3
|
import RasterLayer from './raster-layer';
|
|
4
4
|
import QuadbinTileset2D from './quadbin-tileset-2d';
|
|
5
5
|
import SpatialIndexTileLayer from './spatial-index-tile-layer';
|
|
6
|
+
import { TilejsonPropType } from '../sources/common';
|
|
7
|
+
import { injectAccessToken } from './utils';
|
|
6
8
|
export const renderSubLayers = props => {
|
|
7
9
|
var _props$tile, _props$tile$index;
|
|
8
10
|
|
|
@@ -12,50 +14,33 @@ export const renderSubLayers = props => {
|
|
|
12
14
|
tileIndex
|
|
13
15
|
});
|
|
14
16
|
};
|
|
17
|
+
const defaultProps = {
|
|
18
|
+
data: TilejsonPropType
|
|
19
|
+
};
|
|
15
20
|
export default class RasterTileLayer extends CompositeLayer {
|
|
16
|
-
|
|
17
|
-
super(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
initializeState() {
|
|
23
|
-
this.setState({
|
|
24
|
-
data: null,
|
|
25
|
-
tileJSON: null
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
updateState({
|
|
30
|
-
changeFlags
|
|
31
|
-
}) {
|
|
32
|
-
if (changeFlags.dataChanged) {
|
|
33
|
-
let {
|
|
34
|
-
data
|
|
35
|
-
} = this.props;
|
|
36
|
-
const tileJSON = data;
|
|
37
|
-
data = tileJSON.tiles;
|
|
38
|
-
this.setState({
|
|
39
|
-
data,
|
|
40
|
-
tileJSON
|
|
41
|
-
});
|
|
42
|
-
}
|
|
21
|
+
getLoadOptions() {
|
|
22
|
+
const loadOptions = super.getLoadOptions() || {};
|
|
23
|
+
const tileJSON = this.props.data;
|
|
24
|
+
injectAccessToken(loadOptions, tileJSON.accessToken);
|
|
25
|
+
return loadOptions;
|
|
43
26
|
}
|
|
44
27
|
|
|
45
28
|
renderLayers() {
|
|
29
|
+
const tileJSON = this.props.data;
|
|
30
|
+
if (!tileJSON) return null;
|
|
46
31
|
const {
|
|
47
|
-
data,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
const maxZoom = parseInt(tileJSON === null || tileJSON === void 0 ? void 0 : tileJSON.maxzoom);
|
|
32
|
+
tiles: data,
|
|
33
|
+
minzoom: minZoom,
|
|
34
|
+
maxzoom: maxZoom
|
|
35
|
+
} = tileJSON;
|
|
52
36
|
return [new SpatialIndexTileLayer(this.props, {
|
|
53
37
|
id: "raster-tile-layer-".concat(this.props.id),
|
|
54
38
|
data,
|
|
55
39
|
TilesetClass: QuadbinTileset2D,
|
|
56
40
|
renderSubLayers,
|
|
57
41
|
minZoom,
|
|
58
|
-
maxZoom
|
|
42
|
+
maxZoom,
|
|
43
|
+
loadOptions: this.getLoadOptions()
|
|
59
44
|
})];
|
|
60
45
|
}
|
|
61
46
|
|
|
@@ -63,5 +48,5 @@ export default class RasterTileLayer extends CompositeLayer {
|
|
|
63
48
|
|
|
64
49
|
_defineProperty(RasterTileLayer, "layerName", 'RasterTileLayer');
|
|
65
50
|
|
|
66
|
-
_defineProperty(RasterTileLayer, "defaultProps",
|
|
51
|
+
_defineProperty(RasterTileLayer, "defaultProps", defaultProps);
|
|
67
52
|
//# sourceMappingURL=raster-tile-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/raster-tile-layer.ts"],"names":["CompositeLayer","RasterLayer","QuadbinTileset2D","SpatialIndexTileLayer","renderSubLayers","props","tileIndex","tile","index","q","
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/raster-tile-layer.ts"],"names":["CompositeLayer","RasterLayer","QuadbinTileset2D","SpatialIndexTileLayer","TilejsonPropType","injectAccessToken","renderSubLayers","props","tileIndex","tile","index","q","defaultProps","data","RasterTileLayer","getLoadOptions","loadOptions","tileJSON","accessToken","renderLayers","tiles","minzoom","minZoom","maxzoom","maxZoom","id","TilesetClass"],"mappings":";AAAA,SAAQA,cAAR,QAAmF,eAAnF;AACA,OAAOC,WAAP,MAA4C,gBAA5C;AACA,OAAOC,gBAAP,MAA6B,sBAA7B;AACA,OAAOC,qBAAP,MAAkC,4BAAlC;AACA,SAAQC,gBAAR,QAAoD,mBAApD;AACA,SAAQC,iBAAR,QAAgC,SAAhC;AAEA,OAAO,MAAMC,eAAe,GAAGC,KAAK,IAAI;AAAA;;AACtC,QAAMC,SAAS,kBAAGD,KAAK,CAACE,IAAT,qEAAG,YAAYC,KAAf,sDAAG,kBAAmBC,CAArC;AACA,MAAI,CAACH,SAAL,EAAgB,OAAO,IAAP;AAChB,SAAO,IAAIP,WAAJ,CAAgBM,KAAhB,EAAuB;AAACC,IAAAA;AAAD,GAAvB,CAAP;AACD,CAJM;AAMP,MAAMI,YAAgD,GAAG;AACvDC,EAAAA,IAAI,EAAET;AADiD,CAAzD;AAYA,eAAe,MAAMU,eAAN,SAGLd,cAHK,CAG+D;AAI5Ee,EAAAA,cAAc,GAAQ;AACpB,UAAMC,WAAW,GAAG,MAAMD,cAAN,MAA0B,EAA9C;AACA,UAAME,QAAQ,GAAG,KAAKV,KAAL,CAAWM,IAA5B;AACAR,IAAAA,iBAAiB,CAACW,WAAD,EAAcC,QAAQ,CAACC,WAAvB,CAAjB;AACA,WAAOF,WAAP;AACD;;AAEDG,EAAAA,YAAY,GAA8B;AACxC,UAAMF,QAAQ,GAAG,KAAKV,KAAL,CAAWM,IAA5B;AACA,QAAI,CAACI,QAAL,EAAe,OAAO,IAAP;AAEf,UAAM;AAACG,MAAAA,KAAK,EAAEP,IAAR;AAAcQ,MAAAA,OAAO,EAAEC,OAAvB;AAAgCC,MAAAA,OAAO,EAAEC;AAAzC,QAAoDP,QAA1D;AACA,WAAO,CAEL,IAAId,qBAAJ,CAA0B,KAAKI,KAA/B,EAAsC;AACpCkB,MAAAA,EAAE,8BAAuB,KAAKlB,KAAL,CAAWkB,EAAlC,CADkC;AAEpCZ,MAAAA,IAFoC;AAIpCa,MAAAA,YAAY,EAAExB,gBAJsB;AAKpCI,MAAAA,eALoC;AAMpCgB,MAAAA,OANoC;AAOpCE,MAAAA,OAPoC;AAQpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AARuB,KAAtC,CAFK,CAAP;AAaD;;AA7B2E;;gBAHzDD,e,eAIA,iB;;gBAJAA,e,kBAKGF,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, DefaultProps, Layer, LayersList} from '@deck.gl/core';\nimport RasterLayer, {RasterLayerProps} from './raster-layer';\nimport QuadbinTileset2D from './quadbin-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nexport const renderSubLayers = props => {\n const tileIndex = props.tile?.index?.q;\n if (!tileIndex) return null;\n return new RasterLayer(props, {tileIndex});\n};\n\nconst defaultProps: DefaultProps<RasterTileLayerProps> = {\n data: TilejsonPropType\n};\n\n/** All properties supported by RasterTileLayer. */\nexport type RasterTileLayerProps<DataT = any> = _RasterTileLayerProps<DataT> & CompositeLayerProps;\n\n/** Properties added by RasterTileLayer. */\ntype _RasterTileLayerProps<DataT> = Omit<RasterLayerProps<DataT>, 'data'> & {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n};\n\nexport default class RasterTileLayer<\n DataT = any,\n ExtraProps extends {} = {}\n> extends CompositeLayer<ExtraProps & Required<_RasterTileLayerProps<DataT>>> {\n static layerName = 'RasterTileLayer';\n static defaultProps = defaultProps;\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n return loadOptions;\n }\n\n renderLayers(): Layer | null | LayersList {\n const tileJSON = this.props.data as CartoTilejsonResult;\n if (!tileJSON) return null;\n\n const {tiles: data, minzoom: minZoom, maxzoom: maxZoom} = tileJSON;\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `raster-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: QuadbinTileset2D as any,\n renderSubLayers,\n minZoom,\n maxZoom,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"raster-tile-layer.js"}
|
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
import { TileReader } from './carto-raster-tile';
|
|
2
2
|
import { parsePbf } from './tile-loader-utils';
|
|
3
|
+
import { getWorkerUrl } from '../../utils';
|
|
4
|
+
const VERSION = typeof "8.10.0-alpha.4" !== 'undefined' ? "8.10.0-alpha.4" : 'latest';
|
|
5
|
+
const id = 'cartoRasterTile';
|
|
6
|
+
const DEFAULT_OPTIONS = {
|
|
7
|
+
cartoRasterTile: {
|
|
8
|
+
workerUrl: getWorkerUrl(id, VERSION)
|
|
9
|
+
}
|
|
10
|
+
};
|
|
3
11
|
const CartoRasterTileLoader = {
|
|
4
12
|
name: 'CARTO Raster Tile',
|
|
5
|
-
version:
|
|
6
|
-
id
|
|
13
|
+
version: VERSION,
|
|
14
|
+
id,
|
|
7
15
|
module: 'carto',
|
|
8
16
|
extensions: ['pbf'],
|
|
9
17
|
mimeTypes: ['application/vnd.carto-raster-tile'],
|
|
10
18
|
category: 'geometry',
|
|
11
|
-
worker: false,
|
|
12
19
|
parse: async (arrayBuffer, options) => parseCartoRasterTile(arrayBuffer, options),
|
|
13
20
|
parseSync: parseCartoRasterTile,
|
|
14
|
-
|
|
21
|
+
worker: true,
|
|
22
|
+
options: DEFAULT_OPTIONS
|
|
15
23
|
};
|
|
16
24
|
|
|
17
25
|
function parseCartoRasterTile(arrayBuffer, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/layers/schema/carto-raster-tile-loader.ts"],"names":["TileReader","parsePbf","CartoRasterTileLoader","name","version","
|
|
1
|
+
{"version":3,"sources":["../../../../src/layers/schema/carto-raster-tile-loader.ts"],"names":["TileReader","parsePbf","getWorkerUrl","VERSION","id","DEFAULT_OPTIONS","cartoRasterTile","workerUrl","CartoRasterTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoRasterTile","parseSync","worker","tile","bands","blockHeight","blockWidth","numericProps","i","length","data","cells","properties"],"mappings":"AAEA,SAAQA,UAAR,QAAyB,qBAAzB;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AACA,SAAQC,YAAR,QAA2B,aAA3B;AAGA,MAAMC,OAAO,GAAG,4BAAuB,WAAvB,sBAAmD,QAAnE;AACA,MAAMC,EAAE,GAAG,iBAAX;AAQA,MAAMC,eAA6C,GAAG;AACpDC,EAAAA,eAAe,EAAE;AACfC,IAAAA,SAAS,EAAEL,YAAY,CAACE,EAAD,EAAKD,OAAL;AADR;AADmC,CAAtD;AAMA,MAAMK,qBAAuC,GAAG;AAC9CC,EAAAA,IAAI,EAAE,mBADwC;AAE9CC,EAAAA,OAAO,EAAEP,OAFqC;AAG9CC,EAAAA,EAH8C;AAI9CO,EAAAA,MAAM,EAAE,OAJsC;AAK9CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALkC;AAM9CC,EAAAA,SAAS,EAAE,CAAC,mCAAD,CANmC;AAO9CC,EAAAA,QAAQ,EAAE,UAPoC;AAQ9CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KACLC,oBAAoB,CAACF,WAAD,EAAcC,OAAd,CATwB;AAU9CE,EAAAA,SAAS,EAAED,oBAVmC;AAW9CE,EAAAA,MAAM,EAAE,IAXsC;AAY9CH,EAAAA,OAAO,EAAEZ;AAZqC,CAAhD;;AAwBA,SAASa,oBAAT,CACEF,WADF,EAEEC,OAFF,EAGiB;AACf,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMK,IAAI,GAAGpB,QAAQ,CAACe,WAAD,EAAchB,UAAd,CAArB;AACA,QAAM;AAACsB,IAAAA,KAAD;AAAQC,IAAAA,WAAR;AAAqBC,IAAAA;AAArB,MAAmCH,IAAzC;AACA,QAAMI,YAAY,GAAG,EAArB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,KAAK,CAACK,MAA1B,EAAkCD,CAAC,EAAnC,EAAuC;AACrC,UAAM;AAACjB,MAAAA,IAAD;AAAOmB,MAAAA;AAAP,QAAeN,KAAK,CAACI,CAAD,CAA1B;AACAD,IAAAA,YAAY,CAAChB,IAAD,CAAZ,GAAqBmB,IAArB;AACD;;AACD,SAAO;AAACJ,IAAAA,UAAD;AAAaD,IAAAA,WAAb;AAA0BM,IAAAA,KAAK,EAAE;AAACJ,MAAAA,YAAD;AAAeK,MAAAA,UAAU,EAAE;AAA3B;AAAjC,GAAP;AACD;;AAED,eAAetB,qBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {TileReader} from './carto-raster-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\nimport {NumericProps, Properties} from './spatialjson-utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoRasterTile';\n\ntype CartoRasterTileLoaderOptions = LoaderOptions & {\n cartoRasterTile?: {\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoRasterTileLoaderOptions = {\n cartoRasterTile: {\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoRasterTileLoader: LoaderWithParser = {\n name: 'CARTO Raster Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-raster-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoRasterTileLoaderOptions) =>\n parseCartoRasterTile(arrayBuffer, options),\n parseSync: parseCartoRasterTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nexport type Raster = {\n blockWidth: number;\n blockHeight: number;\n cells: {\n numericProps: NumericProps;\n properties: Properties[];\n };\n};\n\nfunction parseCartoRasterTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoRasterTileLoaderOptions\n): Raster | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n const {bands, blockHeight, blockWidth} = tile;\n const numericProps = {};\n for (let i = 0; i < bands.length; i++) {\n const {name, data} = bands[i];\n numericProps[name] = data;\n }\n return {blockWidth, blockHeight, cells: {numericProps, properties: []}};\n}\n\nexport default CartoRasterTileLoader;\n"],"file":"carto-raster-tile-loader.js"}
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import { TileReader } from './carto-spatial-tile';
|
|
2
2
|
import { parsePbf } from './tile-loader-utils';
|
|
3
|
+
import { getWorkerUrl } from '../../utils';
|
|
3
4
|
import { binaryToSpatialjson } from './spatialjson-utils';
|
|
5
|
+
const VERSION = typeof "8.10.0-alpha.4" !== 'undefined' ? "8.10.0-alpha.4" : 'latest';
|
|
6
|
+
const id = 'cartoSpatialTile';
|
|
7
|
+
const DEFAULT_OPTIONS = {
|
|
8
|
+
cartoSpatialTile: {
|
|
9
|
+
scheme: 'quadbin',
|
|
10
|
+
workerUrl: getWorkerUrl(id, VERSION)
|
|
11
|
+
}
|
|
12
|
+
};
|
|
4
13
|
const CartoSpatialTileLoader = {
|
|
5
14
|
name: 'CARTO Spatial Tile',
|
|
6
|
-
version:
|
|
7
|
-
id
|
|
15
|
+
version: VERSION,
|
|
16
|
+
id,
|
|
8
17
|
module: 'carto',
|
|
9
18
|
extensions: ['pbf'],
|
|
10
19
|
mimeTypes: ['application/vnd.carto-spatial-tile'],
|
|
11
20
|
category: 'geometry',
|
|
12
|
-
worker: false,
|
|
13
21
|
parse: async (arrayBuffer, options) => parseCartoSpatialTile(arrayBuffer, options),
|
|
14
22
|
parseSync: parseCartoSpatialTile,
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
scheme: 'quadbin'
|
|
18
|
-
}
|
|
19
|
-
}
|
|
23
|
+
worker: true,
|
|
24
|
+
options: DEFAULT_OPTIONS
|
|
20
25
|
};
|
|
21
26
|
|
|
22
27
|
function parseCartoSpatialTile(arrayBuffer, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile-loader.ts"],"names":["TileReader","parsePbf","binaryToSpatialjson","CartoSpatialTileLoader","name","version","
|
|
1
|
+
{"version":3,"sources":["../../../../src/layers/schema/carto-spatial-tile-loader.ts"],"names":["TileReader","parsePbf","getWorkerUrl","binaryToSpatialjson","VERSION","id","DEFAULT_OPTIONS","cartoSpatialTile","scheme","workerUrl","CartoSpatialTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoSpatialTile","parseSync","worker","tile","cells","data"],"mappings":"AAEA,SAAcA,UAAd,QAA+B,sBAA/B;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AACA,SAAQC,YAAR,QAA2B,aAA3B;AACA,SAAqBC,mBAArB,QAA4D,qBAA5D;AAEA,MAAMC,OAAO,GAAG,4BAAuB,WAAvB,sBAAmD,QAAnE;AACA,MAAMC,EAAE,GAAG,kBAAX;AASA,MAAMC,eAA8C,GAAG;AACrDC,EAAAA,gBAAgB,EAAE;AAChBC,IAAAA,MAAM,EAAE,SADQ;AAEhBC,IAAAA,SAAS,EAAEP,YAAY,CAACG,EAAD,EAAKD,OAAL;AAFP;AADmC,CAAvD;AAOA,MAAMM,sBAAwC,GAAG;AAC/CC,EAAAA,IAAI,EAAE,oBADyC;AAE/CC,EAAAA,OAAO,EAAER,OAFsC;AAG/CC,EAAAA,EAH+C;AAI/CQ,EAAAA,MAAM,EAAE,OAJuC;AAK/CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALmC;AAM/CC,EAAAA,SAAS,EAAE,CAAC,oCAAD,CANoC;AAO/CC,EAAAA,QAAQ,EAAE,UAPqC;AAQ/CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KACLC,qBAAqB,CAACF,WAAD,EAAcC,OAAd,CATwB;AAU/CE,EAAAA,SAAS,EAAED,qBAVoC;AAW/CE,EAAAA,MAAM,EAAE,IAXuC;AAY/CH,EAAAA,OAAO,EAAEb;AAZsC,CAAjD;;AAeA,SAASc,qBAAT,CACEF,WADF,EAEEC,OAFF,EAGsB;AAAA;;AACpB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMK,IAAU,GAAGtB,QAAQ,CAACiB,WAAD,EAAclB,UAAd,CAA3B;AAEA,QAAM;AAACwB,IAAAA;AAAD,MAAUD,IAAhB;AACA,QAAMf,MAAM,GAAGW,OAAH,aAAGA,OAAH,gDAAGA,OAAO,CAAEZ,gBAAZ,0DAAG,sBAA2BC,MAA1C;AACA,QAAMiB,IAAI,GAAG;AAACD,IAAAA,KAAD;AAAQhB,IAAAA;AAAR,GAAb;AAEA,SAAOL,mBAAmB,CAACsB,IAAD,CAA1B;AACD;;AAED,eAAef,sBAAf","sourcesContent":["import {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\n\nimport {Tile, TileReader} from './carto-spatial-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\nimport {IndexScheme, binaryToSpatialjson, SpatialJson} from './spatialjson-utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoSpatialTile';\n\ntype CartoSpatialTileLoaderOptions = LoaderOptions & {\n cartoSpatialTile?: {\n scheme: IndexScheme;\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoSpatialTileLoaderOptions = {\n cartoSpatialTile: {\n scheme: 'quadbin',\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoSpatialTileLoader: LoaderWithParser = {\n name: 'CARTO Spatial Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-spatial-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoSpatialTileLoaderOptions) =>\n parseCartoSpatialTile(arrayBuffer, options),\n parseSync: parseCartoSpatialTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nfunction parseCartoSpatialTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoSpatialTileLoaderOptions\n): SpatialJson | null {\n if (!arrayBuffer) return null;\n const tile: Tile = parsePbf(arrayBuffer, TileReader);\n\n const {cells} = tile;\n const scheme = options?.cartoSpatialTile?.scheme;\n const data = {cells, scheme};\n\n return binaryToSpatialjson(data);\n}\n\nexport default CartoSpatialTileLoader;\n"],"file":"carto-spatial-tile-loader.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/layers/schema/carto-tile.ts"],"names":["readPackedTypedArray","KeyValueObjectReader","read","pbf","end","readFields","_readField","key","value","tag","obj","readString","PropertiesReader","readVarint","pos","DoublesReader","size","Float32Array","Float64Array","IntsReader","Uint32Array","readPackedVarint","FieldsReader","id","NumericPropReader","NumericPropKeyValueReader","PointsReader","positions","globalFeatureIds","featureIds","properties","numericProps","fields","push","entry","LinesReader","pathIndices","PolygonsReader","polygonIndices","primitivePolygonIndices","triangles","TileReader","points","lines","polygons"],"mappings":"AAAA,SAAQA,oBAAR,QAAmC,YAAnC;;AAQA,MAAMC,oBAAN,CAA2B;AACd,SAAJC,IAAI,CAACC,GAAD,EAAMC,GAAN,EAAoC;AAC7C,WAAOD,GAAG,CAACE,UAAJ,CAAeJ,oBAAoB,CAACK,UAApC,EAAgD;AAACC,MAAAA,GAAG,EAAE,EAAN;AAAUC,MAAAA,KAAK,EAAE;AAAjB,KAAhD,EAAsEJ,GAAtE,CAAP;AACD;;AACgB,SAAVE,UAAU,CAAaG,GAAb,EAA0BC,GAA1B,EAA+CP,GAA/C,EAAoD;AACnE,QAAIM,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;;AAPwB;;AAY3B,OAAO,MAAMC,gBAAN,CAAuB;AACjB,SAAJV,IAAI,CAACC,GAAD,EAAMC,GAAN,EAAoB;AAC7B,WAAOD,GAAG,CAACE,UAAJ,CAAeO,gBAAgB,CAACN,UAAhC,EAA4C,EAA5C,EAAgDF,GAAhD,CAAP;AACD;;AACgB,SAAVE,UAAU,CAAaG,GAAb,EAA0BC,GAA1B,EAAuDP,GAAvD,EAA4D;AAC3E,QAAIM,GAAG,KAAK,CAAZ,EAAe;AACb,YAAM;AAACF,QAAAA,GAAD;AAAMC,QAAAA;AAAN,UAAeP,oBAAoB,CAACC,IAArB,CAA0BC,GAA1B,EAA+BA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAAtD,CAArB;AACAJ,MAAAA,GAAG,CAACH,GAAD,CAAH,GAAWC,KAAX;AACD;AACF;;AAT2B;;AAmB9B,MAAMO,aAAN,CAAoB;AACP,SAAJb,IAAI,CAACC,GAAD,EAAMC,GAAN,EAA6B;AACtC,UAAM;AAACI,MAAAA,KAAD;AAAQQ,MAAAA;AAAR,QAAgBb,GAAG,CAACE,UAAJ,CAAeU,aAAa,CAACT,UAA7B,EAAyC;AAACE,MAAAA,KAAK,EAAE,EAAR;AAAYQ,MAAAA,IAAI,EAAE;AAAlB,KAAzC,EAA+DZ,GAA/D,CAAtB;AACA,WAAO;AAACI,MAAAA,KAAK,EAAE,IAAIS,YAAJ,CAAiBT,KAAjB,CAAR;AAAiCQ,MAAAA;AAAjC,KAAP;AACD;;AACgB,SAAVV,UAAU,CAAaG,GAAb,EAA0BC,GAA1B,EAA+BP,GAA/B,EAAoC;AACnD,QAAIM,GAAG,KAAK,CAAZ,EAAeT,oBAAoB,CAACkB,YAAD,EAAef,GAAf,EAAoBO,GAApB,CAApB,CAAf,KACK,IAAID,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACM,IAAJ,GAAWb,GAAG,CAACU,UAAJ,CAAe,IAAf,CAAX;AACrB;;AARiB;;AAkBpB,MAAMM,UAAN,CAAiB;AACJ,SAAJjB,IAAI,CAACC,GAAD,EAAMC,GAAN,EAA0B;AACnC,UAAM;AAACI,MAAAA,KAAD;AAAQQ,MAAAA;AAAR,QAAgBb,GAAG,CAACE,UAAJ,CAAec,UAAU,CAACb,UAA1B,EAAsC;AAACE,MAAAA,KAAK,EAAE,EAAR;AAAYQ,MAAAA,IAAI,EAAE;AAAlB,KAAtC,EAA4DZ,GAA5D,CAAtB;AACA,WAAO;AAACI,MAAAA,KAAK,EAAE,IAAIY,WAAJ,CAAgBZ,KAAhB,CAAR;AAAgCQ,MAAAA;AAAhC,KAAP;AACD;;AACgB,SAAVV,UAAU,CAAaG,GAAb,EAA0BC,GAA1B,EAA+BP,GAA/B,EAAoC;AACnD,QAAIM,GAAG,KAAK,CAAZ,EAAeN,GAAG,CAACkB,gBAAJ,CAAqBX,GAAG,CAACF,KAAzB,EAAf,KACK,IAAIC,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACM,IAAJ,GAAWb,GAAG,CAACU,UAAJ,CAAe,IAAf,CAAX;AACrB;;AARc;;AAiBjB,MAAMS,YAAN,CAAmB;AACN,SAAJpB,IAAI,CAACC,GAAD,EAAMC,GAAN,EAA4B;AACrC,WAAOD,GAAG,CAACE,UAAJ,CAAeiB,YAAY,CAAChB,UAA5B,EAAwC;AAACiB,MAAAA,EAAE,EAAE;AAAL,KAAxC,EAAiDnB,GAAjD,CAAP;AACD;;AACgB,SAAVE,UAAU,CAAaG,GAAb,EAA0BC,GAA1B,EAAuCP,GAAvC,EAA4C;AAC3D,QAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACa,EAAJ,GAASpB,GAAG,CAACU,UAAJ,EAAT;AAChB;;AANgB;;AAenB,MAAMW,iBAAN,CAAwB;AACX,SAAJtB,IAAI,CAACC,GAAD,EAAMC,GAAN,EAAiC;AAC1C,WAAOD,GAAG,CAACE,UAAJ,CAAemB,iBAAiB,CAAClB,UAAjC,EAA6C;AAACE,MAAAA,KAAK,EAAE;AAAR,KAA7C,EAA0DJ,GAA1D,CAAP;AACD;;AACgB,SAAVE,UAAU,CAAaG,GAAb,EAA0BC,GAA1B,EAA4CP,GAA5C,EAAiD;AAChE,QAAIM,GAAG,KAAK,CAAZ,EAAeT,oBAAoB,CAACkB,YAAD,EAAef,GAAf,EAAoBO,GAApB,CAApB;AAChB;;AANqB;;AAexB,OAAO,MAAMe,yBAAN,CAAgC;AAC1B,SAAJvB,IAAI,CAACC,GAAD,EAAMC,GAAN,EAA0C;AACnD,WAAOD,GAAG,CAACE,UAAJ,CAAeoB,yBAAyB,CAACnB,UAAzC,EAAqD;AAACC,MAAAA,GAAG,EAAE,EAAN;AAAUC,MAAAA,KAAK,EAAE;AAAjB,KAArD,EAA6EJ,GAA7E,CAAP;AACD;;AACgB,SAAVE,UAAU,CAAaG,GAAb,EAA0BC,GAA1B,EAAqDP,GAArD,EAA0D;AACzE,QAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACH,GAAJ,GAAUJ,GAAG,CAACQ,UAAJ,EAAV,CAAf,KACK,IAAIF,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACF,KAAJ,GAAYgB,iBAAiB,CAACtB,IAAlB,CAAuBC,GAAvB,EAA4BA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAAnD,CAAZ;AACrB;;AAPoC;;AAqBvC,MAAMY,YAAN,CAAmB;AACN,SAAJxB,IAAI,CAACC,GAAD,EAAMC,GAAN,EAA4B;AACrC,WAAOD,GAAG,CAACE,UAAJ,CACLqB,YAAY,CAACpB,UADR,EAEL;AACEqB,MAAAA,SAAS,EAAE,IADb;AAEEC,MAAAA,gBAAgB,EAAE,IAFpB;AAGEC,MAAAA,UAAU,EAAE,IAHd;AAIEC,MAAAA,UAAU,EAAE,EAJd;AAKEC,MAAAA,YAAY,EAAE,EALhB;AAMEC,MAAAA,MAAM,EAAE;AANV,KAFK,EAUL5B,GAVK,CAAP;AAYD;;AACgB,SAAVE,UAAU,CAAaG,GAAb,EAA0BC,GAA1B,EAAuCP,GAAvC,EAA4C;AAC3D,QAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACiB,SAAJ,GAAgBZ,aAAa,CAACb,IAAd,CAAmBC,GAAnB,EAAwBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA/C,CAAhB,CAAf,KACK,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACkB,gBAAJ,GAAuBT,UAAU,CAACjB,IAAX,CAAgBC,GAAhB,EAAqBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA5C,CAAvB,CAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACmB,UAAJ,GAAiBV,UAAU,CAACjB,IAAX,CAAgBC,GAAhB,EAAqBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA5C,CAAjB,CAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACoB,UAAJ,CAAeG,IAAf,CAAoBrB,gBAAgB,CAACV,IAAjB,CAAsBC,GAAtB,EAA2BA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAAlD,CAApB,EAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EAAe;AAClB,YAAMyB,KAAK,GAAGT,yBAAyB,CAACvB,IAA1B,CAA+BC,GAA/B,EAAoCA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA3D,CAAd;AACAJ,MAAAA,GAAG,CAACqB,YAAJ,CAAiBG,KAAK,CAAC3B,GAAvB,IAA8B2B,KAAK,CAAC1B,KAApC;AACD,KAHI,MAGE,IAAIC,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACsB,MAAJ,CAAWC,IAAX,CAAgBX,YAAY,CAACpB,IAAb,CAAkBC,GAAlB,EAAuBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA9C,CAAhB;AACvB;;AAxBgB;;AAgCnB,MAAMqB,WAAN,CAAkB;AACL,SAAJjC,IAAI,CAACC,GAAD,EAAMC,GAAN,EAA2B;AACpC,WAAOD,GAAG,CAACE,UAAJ,CACL8B,WAAW,CAAC7B,UADP,EAEL;AACEqB,MAAAA,SAAS,EAAE,IADb;AAEES,MAAAA,WAAW,EAAE,IAFf;AAGER,MAAAA,gBAAgB,EAAE,IAHpB;AAIEC,MAAAA,UAAU,EAAE,IAJd;AAKEC,MAAAA,UAAU,EAAE,EALd;AAMEC,MAAAA,YAAY,EAAE,EANhB;AAOEC,MAAAA,MAAM,EAAE;AAPV,KAFK,EAWL5B,GAXK,CAAP;AAaD;;AACgB,SAAVE,UAAU,CAAaG,GAAb,EAA0BC,GAA1B,EAAsCP,GAAtC,EAA2C;AAC1D,QAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACiB,SAAJ,GAAgBZ,aAAa,CAACb,IAAd,CAAmBC,GAAnB,EAAwBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA/C,CAAhB,CAAf,KACK,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAAC0B,WAAJ,GAAkBjB,UAAU,CAACjB,IAAX,CAAgBC,GAAhB,EAAqBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA5C,CAAlB,CAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACkB,gBAAJ,GAAuBT,UAAU,CAACjB,IAAX,CAAgBC,GAAhB,EAAqBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA5C,CAAvB,CAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACmB,UAAJ,GAAiBV,UAAU,CAACjB,IAAX,CAAgBC,GAAhB,EAAqBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA5C,CAAjB,CAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACoB,UAAJ,CAAeG,IAAf,CAAoBrB,gBAAgB,CAACV,IAAjB,CAAsBC,GAAtB,EAA2BA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAAlD,CAApB,EAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EAAe;AAClB,YAAMyB,KAAK,GAAGT,yBAAyB,CAACvB,IAA1B,CAA+BC,GAA/B,EAAoCA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA3D,CAAd;AACAJ,MAAAA,GAAG,CAACqB,YAAJ,CAAiBG,KAAK,CAAC3B,GAAvB,IAA8B2B,KAAK,CAAC1B,KAApC;AACD,KAHI,MAGE,IAAIC,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACsB,MAAJ,CAAWC,IAAX,CAAgBX,YAAY,CAACpB,IAAb,CAAkBC,GAAlB,EAAuBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA9C,CAAhB;AACvB;;AA1Be;;AAoClB,MAAMuB,cAAN,CAAqB;AACR,SAAJnC,IAAI,CAACC,GAAD,EAAMC,GAAN,EAA8B;AACvC,WAAOD,GAAG,CAACE,UAAJ,CACLgC,cAAc,CAAC/B,UADV,EAEL;AACEqB,MAAAA,SAAS,EAAE,IADb;AAEEW,MAAAA,cAAc,EAAE,IAFlB;AAGEV,MAAAA,gBAAgB,EAAE,IAHpB;AAIEC,MAAAA,UAAU,EAAE,IAJd;AAKEU,MAAAA,uBAAuB,EAAE,IAL3B;AAMEC,MAAAA,SAAS,EAAE,IANb;AAOEV,MAAAA,UAAU,EAAE,EAPd;AAQEC,MAAAA,YAAY,EAAE,EARhB;AASEC,MAAAA,MAAM,EAAE;AATV,KAFK,EAaL5B,GAbK,CAAP;AAeD;;AACgB,SAAVE,UAAU,CAAaG,GAAb,EAA0BC,GAA1B,EAAyCP,GAAzC,EAA8C;AAC7D,QAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACiB,SAAJ,GAAgBZ,aAAa,CAACb,IAAd,CAAmBC,GAAnB,EAAwBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA/C,CAAhB,CAAf,KACK,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAAC4B,cAAJ,GAAqBnB,UAAU,CAACjB,IAAX,CAAgBC,GAAhB,EAAqBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA5C,CAArB,CAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACkB,gBAAJ,GAAuBT,UAAU,CAACjB,IAAX,CAAgBC,GAAhB,EAAqBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA5C,CAAvB,CAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACmB,UAAJ,GAAiBV,UAAU,CAACjB,IAAX,CAAgBC,GAAhB,EAAqBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA5C,CAAjB,CAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EACHC,GAAG,CAAC6B,uBAAJ,GAA8BpB,UAAU,CAACjB,IAAX,CAAgBC,GAAhB,EAAqBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA5C,CAA9B,CADG,KAEA,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAAC8B,SAAJ,GAAgBrB,UAAU,CAACjB,IAAX,CAAgBC,GAAhB,EAAqBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA5C,CAAhB,CAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACoB,UAAJ,CAAeG,IAAf,CAAoBrB,gBAAgB,CAACV,IAAjB,CAAsBC,GAAtB,EAA2BA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAAlD,CAApB,EAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EAAe;AAClB,YAAMyB,KAAK,GAAGT,yBAAyB,CAACvB,IAA1B,CAA+BC,GAA/B,EAAoCA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA3D,CAAd;AACAJ,MAAAA,GAAG,CAACqB,YAAJ,CAAiBG,KAAK,CAAC3B,GAAvB,IAA8B2B,KAAK,CAAC1B,KAApC;AACD,KAHI,MAGE,IAAIC,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACsB,MAAJ,CAAWC,IAAX,CAAgBX,YAAY,CAACpB,IAAb,CAAkBC,GAAlB,EAAuBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA9C,CAAhB;AACvB;;AA/BkB;;AA0CrB,OAAO,MAAM2B,UAAN,CAAiB;AACX,SAAJvC,IAAI,CAACC,GAAD,EAAMC,GAAN,EAA0B;AACnC,WAAOD,GAAG,CAACE,UAAJ,CAAeoC,UAAU,CAACnC,UAA1B,EAAsC;AAACoC,MAAAA,MAAM,EAAE,IAAT;AAAeC,MAAAA,KAAK,EAAE,IAAtB;AAA4BC,MAAAA,QAAQ,EAAE;AAAtC,KAAtC,EAAmFxC,GAAnF,CAAP;AACD;;AACgB,SAAVE,UAAU,CAAaG,GAAb,EAA0BC,GAA1B,EAAqCP,GAArC,EAA0C;AACzD,QAAIM,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACgC,MAAJ,GAAahB,YAAY,CAACxB,IAAb,CAAkBC,GAAlB,EAAuBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA9C,CAAb,CAAf,KACK,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACiC,KAAJ,GAAYR,WAAW,CAACjC,IAAZ,CAAiBC,GAAjB,EAAsBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAA7C,CAAZ,CAAf,KACA,IAAIL,GAAG,KAAK,CAAZ,EAAeC,GAAG,CAACkC,QAAJ,GAAeP,cAAc,CAACnC,IAAf,CAAoBC,GAApB,EAAyBA,GAAG,CAACU,UAAJ,KAAmBV,GAAG,CAACW,GAAhD,CAAf;AACrB;;AARqB","sourcesContent":["import {readPackedTypedArray} from './fast-pbf';\n\n// KeyValueObject ========================================\ninterface KeyValueObject {\n key: string;\n value: string;\n}\n\nclass KeyValueObjectReader {\n static read(pbf, end?: number): KeyValueObject {\n return pbf.readFields(KeyValueObjectReader._readField, {key: '', value: ''}, end);\n }\n static _readField(this: void, tag: number, obj: KeyValueObject, pbf) {\n if (tag === 1) obj.key = pbf.readString();\n else if (tag === 2) obj.value = pbf.readString();\n }\n}\n\n// Properties ========================================\n\nexport class PropertiesReader {\n static read(pbf, end?: number) {\n return pbf.readFields(PropertiesReader._readField, {}, end);\n }\n static _readField(this: void, tag: number, obj: Record<string, string>, pbf) {\n if (tag === 1) {\n const {key, value} = KeyValueObjectReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj[key] = value;\n }\n }\n}\n\n// Doubles ========================================\n\ninterface Doubles {\n value: Float32Array;\n size: number;\n}\n\nclass DoublesReader {\n static read(pbf, end?: number): Doubles {\n const {value, size} = pbf.readFields(DoublesReader._readField, {value: [], size: 0}, end);\n return {value: new Float32Array(value), size};\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) readPackedTypedArray(Float64Array, pbf, obj);\n else if (tag === 2) obj.size = pbf.readVarint(true);\n }\n}\n\n// Ints ========================================\n\ninterface Ints {\n value: Uint32Array;\n size: number;\n}\n\nclass IntsReader {\n static read(pbf, end?: number): Ints {\n const {value, size} = pbf.readFields(IntsReader._readField, {value: [], size: 0}, end);\n return {value: new Uint32Array(value), size};\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) pbf.readPackedVarint(obj.value);\n else if (tag === 2) obj.size = pbf.readVarint(true);\n }\n}\n\n// Fields ========================================\n\ninterface Fields {\n id: number;\n}\n\nclass FieldsReader {\n static read(pbf, end?: number): Fields {\n return pbf.readFields(FieldsReader._readField, {id: 0}, end);\n }\n static _readField(this: void, tag: number, obj: Fields, pbf) {\n if (tag === 1) obj.id = pbf.readVarint();\n }\n}\n\n// NumericProp ========================================\n\nexport interface NumericProp {\n value: number[];\n}\n\nclass NumericPropReader {\n static read(pbf, end?: number): NumericProp {\n return pbf.readFields(NumericPropReader._readField, {value: []}, end);\n }\n static _readField(this: void, tag: number, obj: NumericProp, pbf) {\n if (tag === 1) readPackedTypedArray(Float64Array, pbf, obj);\n }\n}\n\n// NumericPropKeyValue ========================================\ninterface NumbericPropKeyValue {\n key: string;\n value: NumericProp;\n}\n\nexport class NumericPropKeyValueReader {\n static read(pbf, end?: number): NumbericPropKeyValue {\n return pbf.readFields(NumericPropKeyValueReader._readField, {key: '', value: null}, end);\n }\n static _readField(this: void, tag: number, obj: NumbericPropKeyValue, pbf) {\n if (tag === 1) obj.key = pbf.readString();\n else if (tag === 2) obj.value = NumericPropReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n\n// Points ========================================\n\ninterface Points {\n positions: Doubles;\n globalFeatureIds: Ints;\n featureIds: Ints;\n properties: Record<string, string>[];\n numericProps: Record<string, NumericProp>;\n fields: Fields[];\n}\n\nclass PointsReader {\n static read(pbf, end?: number): Points {\n return pbf.readFields(\n PointsReader._readField,\n {\n positions: null,\n globalFeatureIds: null,\n featureIds: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Points, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 5) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 6) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\ninterface Lines extends Points {\n pathIndices: Ints;\n}\n// Lines ========================================\n\nclass LinesReader {\n static read(pbf, end?: number): Lines {\n return pbf.readFields(\n LinesReader._readField,\n {\n positions: null,\n pathIndices: null,\n globalFeatureIds: null,\n featureIds: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Lines, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.pathIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 5) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 6) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 7) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n// Polygons ========================================\n\ninterface Polygons extends Points {\n polygonIndices: Ints;\n primitivePolygonIndices: Ints;\n triangles: Ints;\n}\n\nclass PolygonsReader {\n static read(pbf, end?: number): Polygons {\n return pbf.readFields(\n PolygonsReader._readField,\n {\n positions: null,\n polygonIndices: null,\n globalFeatureIds: null,\n featureIds: null,\n primitivePolygonIndices: null,\n triangles: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Polygons, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.polygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 5)\n obj.primitivePolygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 6) obj.triangles = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 7) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 8) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 9) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\n// Tile ========================================\n\nexport interface Tile {\n points: Points;\n lines: Lines;\n polygons: Polygons;\n}\n\nexport class TileReader {\n static read(pbf, end?: number): Tile {\n return pbf.readFields(TileReader._readField, {points: null, lines: null, polygons: null}, end);\n }\n static _readField(this: void, tag: number, obj: Tile, pbf) {\n if (tag === 1) obj.points = PointsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.lines = LinesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.polygons = PolygonsReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n"],"file":"carto-tile.js"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/layers/schema/carto-tile.ts"],"names":["readPackedTypedArray","KeyValueObjectReader","read","pbf","end","readFields","_readField","key","value","tag","obj","readString","PropertiesReader","readVarint","pos","DoublesReader","size","Float32Array","Float64Array","IntsReader","Uint32Array","readPackedVarint","FieldsReader","id","NumericPropReader","NumericPropKeyValueReader","PointsReader","positions","globalFeatureIds","featureIds","properties","numericProps","fields","push","entry","LinesReader","pathIndices","PolygonsReader","polygonIndices","primitivePolygonIndices","triangles","TileReader","points","lines","polygons"],"mappings":"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","sourcesContent":["import {readPackedTypedArray} from './fast-pbf';\n\n// KeyValueObject ========================================\ninterface KeyValueObject {\n key: string;\n value: string;\n}\n\nclass KeyValueObjectReader {\n static read(pbf, end?: number): KeyValueObject {\n return pbf.readFields(KeyValueObjectReader._readField, {key: '', value: null}, end);\n }\n static _readField(this: void, tag: number, obj: KeyValueObject, pbf) {\n if (tag === 1) obj.key = pbf.readString();\n else if (tag === 2) obj.value = pbf.readString();\n }\n}\n\n// Properties ========================================\n\nexport class PropertiesReader {\n static read(pbf, end?: number) {\n return pbf.readFields(PropertiesReader._readField, {}, end);\n }\n static _readField(this: void, tag: number, obj: Record<string, string>, pbf) {\n if (tag === 1) {\n const {key, value} = KeyValueObjectReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj[key] = value;\n }\n }\n}\n\n// Doubles ========================================\n\ninterface Doubles {\n value: Float32Array;\n size: number;\n}\n\nclass DoublesReader {\n static read(pbf, end?: number): Doubles {\n const {value, size} = pbf.readFields(DoublesReader._readField, {value: [], size: 0}, end);\n return {value: new Float32Array(value), size};\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) readPackedTypedArray(Float64Array, pbf, obj);\n else if (tag === 2) obj.size = pbf.readVarint(true);\n }\n}\n\n// Ints ========================================\n\ninterface Ints {\n value: Uint32Array;\n size: number;\n}\n\nclass IntsReader {\n static read(pbf, end?: number): Ints {\n const {value, size} = pbf.readFields(IntsReader._readField, {value: [], size: 0}, end);\n return {value: new Uint32Array(value), size};\n }\n static _readField(this: void, tag: number, obj, pbf) {\n if (tag === 1) pbf.readPackedVarint(obj.value);\n else if (tag === 2) obj.size = pbf.readVarint(true);\n }\n}\n\n// Fields ========================================\n\ninterface Fields {\n id: number;\n}\n\nclass FieldsReader {\n static read(pbf, end?: number): Fields {\n return pbf.readFields(FieldsReader._readField, {id: 0}, end);\n }\n static _readField(this: void, tag: number, obj: Fields, pbf) {\n if (tag === 1) obj.id = pbf.readVarint();\n }\n}\n\n// NumericProp ========================================\n\nexport interface NumericProp {\n value: number[];\n}\n\nclass NumericPropReader {\n static read(pbf, end?: number): NumericProp {\n return pbf.readFields(NumericPropReader._readField, {value: []}, end);\n }\n static _readField(this: void, tag: number, obj: NumericProp, pbf) {\n if (tag === 1) readPackedTypedArray(Float64Array, pbf, obj);\n }\n}\n\n// NumericPropKeyValue ========================================\ninterface NumbericPropKeyValue {\n key: string;\n value: NumericProp;\n}\n\nexport class NumericPropKeyValueReader {\n static read(pbf, end?: number): NumbericPropKeyValue {\n return pbf.readFields(NumericPropKeyValueReader._readField, {key: '', value: null}, end);\n }\n static _readField(this: void, tag: number, obj: NumbericPropKeyValue, pbf) {\n if (tag === 1) obj.key = pbf.readString();\n else if (tag === 2) obj.value = NumericPropReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n\n// Points ========================================\n\ninterface Points {\n positions: Doubles;\n globalFeatureIds: Ints;\n featureIds: Ints;\n properties: Record<string, string>[];\n numericProps: Record<string, NumericProp>;\n fields: Fields[];\n}\n\nclass PointsReader {\n static read(pbf, end?: number): Points {\n return pbf.readFields(\n PointsReader._readField,\n {\n positions: null,\n globalFeatureIds: null,\n featureIds: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Points, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 5) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 6) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\ninterface Lines extends Points {\n pathIndices: Ints;\n}\n// Lines ========================================\n\nclass LinesReader {\n static read(pbf, end?: number): Lines {\n return pbf.readFields(\n LinesReader._readField,\n {\n positions: null,\n pathIndices: null,\n globalFeatureIds: null,\n featureIds: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Lines, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.pathIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 5) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 6) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 7) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n// Polygons ========================================\n\ninterface Polygons extends Points {\n polygonIndices: Ints;\n primitivePolygonIndices: Ints;\n triangles: Ints;\n}\n\nclass PolygonsReader {\n static read(pbf, end?: number): Polygons {\n return pbf.readFields(\n PolygonsReader._readField,\n {\n positions: null,\n polygonIndices: null,\n globalFeatureIds: null,\n featureIds: null,\n primitivePolygonIndices: null,\n triangles: null,\n properties: [],\n numericProps: {},\n fields: []\n },\n end\n );\n }\n static _readField(this: void, tag: number, obj: Polygons, pbf) {\n if (tag === 1) obj.positions = DoublesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.polygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.globalFeatureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 4) obj.featureIds = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 5)\n obj.primitivePolygonIndices = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 6) obj.triangles = IntsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 7) obj.properties.push(PropertiesReader.read(pbf, pbf.readVarint() + pbf.pos));\n else if (tag === 8) {\n const entry = NumericPropKeyValueReader.read(pbf, pbf.readVarint() + pbf.pos);\n obj.numericProps[entry.key] = entry.value;\n } else if (tag === 9) obj.fields.push(FieldsReader.read(pbf, pbf.readVarint() + pbf.pos));\n }\n}\n\n// Tile ========================================\n\nexport interface Tile {\n points: Points;\n lines: Lines;\n polygons: Polygons;\n}\n\nexport class TileReader {\n static read(pbf, end?: number): Tile {\n return pbf.readFields(TileReader._readField, {points: null, lines: null, polygons: null}, end);\n }\n static _readField(this: void, tag: number, obj: Tile, pbf) {\n if (tag === 1) obj.points = PointsReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 2) obj.lines = LinesReader.read(pbf, pbf.readVarint() + pbf.pos);\n else if (tag === 3) obj.polygons = PolygonsReader.read(pbf, pbf.readVarint() + pbf.pos);\n }\n}\n"],"file":"carto-tile.js"}
|
|
@@ -1,22 +1,81 @@
|
|
|
1
|
+
import earcut from 'earcut';
|
|
1
2
|
import { TileReader } from './carto-tile';
|
|
2
3
|
import { parsePbf } from './tile-loader-utils';
|
|
4
|
+
import { getWorkerUrl } from '../../utils';
|
|
5
|
+
const VERSION = typeof "8.10.0-alpha.4" !== 'undefined' ? "8.10.0-alpha.4" : 'latest';
|
|
6
|
+
const id = 'cartoVectorTile';
|
|
7
|
+
const DEFAULT_OPTIONS = {
|
|
8
|
+
cartoVectorTile: {
|
|
9
|
+
workerUrl: getWorkerUrl(id, VERSION)
|
|
10
|
+
}
|
|
11
|
+
};
|
|
3
12
|
const CartoVectorTileLoader = {
|
|
4
13
|
name: 'CARTO Vector Tile',
|
|
5
|
-
version:
|
|
6
|
-
id
|
|
14
|
+
version: VERSION,
|
|
15
|
+
id,
|
|
7
16
|
module: 'carto',
|
|
8
17
|
extensions: ['pbf'],
|
|
9
18
|
mimeTypes: ['application/vnd.carto-vector-tile'],
|
|
10
19
|
category: 'geometry',
|
|
11
|
-
worker: false,
|
|
12
20
|
parse: async (arrayBuffer, options) => parseCartoVectorTile(arrayBuffer, options),
|
|
13
21
|
parseSync: parseCartoVectorTile,
|
|
14
|
-
|
|
22
|
+
worker: true,
|
|
23
|
+
options: DEFAULT_OPTIONS
|
|
15
24
|
};
|
|
16
25
|
|
|
26
|
+
function triangulatePolygon(polygons, target, {
|
|
27
|
+
startPosition,
|
|
28
|
+
endPosition,
|
|
29
|
+
indices
|
|
30
|
+
}) {
|
|
31
|
+
const coordLength = polygons.positions.size;
|
|
32
|
+
const start = startPosition * coordLength;
|
|
33
|
+
const end = endPosition * coordLength;
|
|
34
|
+
const polygonPositions = polygons.positions.value.subarray(start, end);
|
|
35
|
+
const holes = indices.slice(1).map(n => n - startPosition);
|
|
36
|
+
const triangles = earcut(polygonPositions, holes, coordLength);
|
|
37
|
+
|
|
38
|
+
for (let t = 0, tl = triangles.length; t < tl; ++t) {
|
|
39
|
+
target.push(startPosition + triangles[t]);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
function triangulate(polygons) {
|
|
44
|
+
const {
|
|
45
|
+
polygonIndices,
|
|
46
|
+
positions,
|
|
47
|
+
primitivePolygonIndices
|
|
48
|
+
} = polygons;
|
|
49
|
+
const triangles = [];
|
|
50
|
+
let rangeStart = 0;
|
|
51
|
+
|
|
52
|
+
for (let i = 0; i < polygonIndices.value.length - 1; i++) {
|
|
53
|
+
const startPosition = polygonIndices.value[i];
|
|
54
|
+
const endPosition = polygonIndices.value[i + 1];
|
|
55
|
+
const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);
|
|
56
|
+
const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);
|
|
57
|
+
rangeStart = rangeEnd;
|
|
58
|
+
triangulatePolygon(polygons, triangles, {
|
|
59
|
+
startPosition,
|
|
60
|
+
endPosition,
|
|
61
|
+
indices
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
polygons.triangles = {
|
|
66
|
+
value: new Uint32Array(triangles),
|
|
67
|
+
size: 1
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
|
|
17
71
|
function parseCartoVectorTile(arrayBuffer, options) {
|
|
18
72
|
if (!arrayBuffer) return null;
|
|
19
73
|
const tile = parsePbf(arrayBuffer, TileReader);
|
|
74
|
+
|
|
75
|
+
if (tile.polygons && !tile.polygons.triangles) {
|
|
76
|
+
triangulate(tile.polygons);
|
|
77
|
+
}
|
|
78
|
+
|
|
20
79
|
return tile;
|
|
21
80
|
}
|
|
22
81
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["TileReader","parsePbf","CartoVectorTileLoader","name","version","
|
|
1
|
+
{"version":3,"sources":["../../../../src/layers/schema/carto-vector-tile-loader.ts"],"names":["earcut","TileReader","parsePbf","getWorkerUrl","VERSION","id","DEFAULT_OPTIONS","cartoVectorTile","workerUrl","CartoVectorTileLoader","name","version","module","extensions","mimeTypes","category","parse","arrayBuffer","options","parseCartoVectorTile","parseSync","worker","triangulatePolygon","polygons","target","startPosition","endPosition","indices","coordLength","positions","size","start","end","polygonPositions","value","subarray","holes","slice","map","n","triangles","t","tl","length","push","triangulate","polygonIndices","primitivePolygonIndices","rangeStart","i","rangeEnd","indexOf","Uint32Array","tile"],"mappings":"AAAA,OAAOA,MAAP,MAAmB,QAAnB;AAIA,SAAQC,UAAR,QAAyB,cAAzB;AACA,SAAQC,QAAR,QAAuB,qBAAvB;AACA,SAAQC,YAAR,QAA2B,aAA3B;AAEA,MAAMC,OAAO,GAAG,4BAAuB,WAAvB,sBAAmD,QAAnE;AACA,MAAMC,EAAE,GAAG,iBAAX;AAQA,MAAMC,eAA6C,GAAG;AACpDC,EAAAA,eAAe,EAAE;AACfC,IAAAA,SAAS,EAAEL,YAAY,CAACE,EAAD,EAAKD,OAAL;AADR;AADmC,CAAtD;AAMA,MAAMK,qBAAuC,GAAG;AAC9CC,EAAAA,IAAI,EAAE,mBADwC;AAE9CC,EAAAA,OAAO,EAAEP,OAFqC;AAG9CC,EAAAA,EAH8C;AAI9CO,EAAAA,MAAM,EAAE,OAJsC;AAK9CC,EAAAA,UAAU,EAAE,CAAC,KAAD,CALkC;AAM9CC,EAAAA,SAAS,EAAE,CAAC,mCAAD,CANmC;AAO9CC,EAAAA,QAAQ,EAAE,UAPoC;AAQ9CC,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBC,OAApB,KACLC,oBAAoB,CAACF,WAAD,EAAcC,OAAd,CATwB;AAU9CE,EAAAA,SAAS,EAAED,oBAVmC;AAW9CE,EAAAA,MAAM,EAAE,IAXsC;AAY9CH,EAAAA,OAAO,EAAEZ;AAZqC,CAAhD;;AAeA,SAASgB,kBAAT,CACEC,QADF,EAEEC,MAFF,EAGE;AACEC,EAAAA,aADF;AAEEC,EAAAA,WAFF;AAGEC,EAAAA;AAHF,CAHF,EAQQ;AACN,QAAMC,WAAW,GAAGL,QAAQ,CAACM,SAAT,CAAmBC,IAAvC;AACA,QAAMC,KAAK,GAAGN,aAAa,GAAGG,WAA9B;AACA,QAAMI,GAAG,GAAGN,WAAW,GAAGE,WAA1B;AAGA,QAAMK,gBAAgB,GAAGV,QAAQ,CAACM,SAAT,CAAmBK,KAAnB,CAAyBC,QAAzB,CAAkCJ,KAAlC,EAAyCC,GAAzC,CAAzB;AAGA,QAAMI,KAAK,GAAGT,OAAO,CAACU,KAAR,CAAc,CAAd,EAAiBC,GAAjB,CAAsBC,CAAD,IAAeA,CAAC,GAAGd,aAAxC,CAAd;AAGA,QAAMe,SAAS,GAAGxC,MAAM,CAACiC,gBAAD,EAAmBG,KAAnB,EAA0BR,WAA1B,CAAxB;;AAIA,OAAK,IAAIa,CAAC,GAAG,CAAR,EAAWC,EAAE,GAAGF,SAAS,CAACG,MAA/B,EAAuCF,CAAC,GAAGC,EAA3C,EAA+C,EAAED,CAAjD,EAAoD;AAClDjB,IAAAA,MAAM,CAACoB,IAAP,CAAYnB,aAAa,GAAGe,SAAS,CAACC,CAAD,CAArC;AACD;AACF;;AAED,SAASI,WAAT,CAAqBtB,QAArB,EAAsD;AACpD,QAAM;AAACuB,IAAAA,cAAD;AAAiBjB,IAAAA,SAAjB;AAA4BkB,IAAAA;AAA5B,MAAuDxB,QAA7D;AACA,QAAMiB,SAAS,GAAG,EAAlB;AAEA,MAAIQ,UAAU,GAAG,CAAjB;;AACA,OAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,cAAc,CAACZ,KAAf,CAAqBS,MAArB,GAA8B,CAAlD,EAAqDM,CAAC,EAAtD,EAA0D;AACxD,UAAMxB,aAAa,GAAGqB,cAAc,CAACZ,KAAf,CAAqBe,CAArB,CAAtB;AACA,UAAMvB,WAAW,GAAGoB,cAAc,CAACZ,KAAf,CAAqBe,CAAC,GAAG,CAAzB,CAApB;AAGA,UAAMC,QAAQ,GAAGH,uBAAuB,CAACb,KAAxB,CAA8BiB,OAA9B,CAAsCzB,WAAtC,CAAjB;AACA,UAAMC,OAAO,GAAGoB,uBAAuB,CAACb,KAAxB,CAA8BC,QAA9B,CAAuCa,UAAvC,EAAmDE,QAAnD,CAAhB;AACAF,IAAAA,UAAU,GAAGE,QAAb;AAEA5B,IAAAA,kBAAkB,CAACC,QAAD,EAAWiB,SAAX,EAAsB;AAACf,MAAAA,aAAD;AAAgBC,MAAAA,WAAhB;AAA6BC,MAAAA;AAA7B,KAAtB,CAAlB;AACD;;AAEDJ,EAAAA,QAAQ,CAACiB,SAAT,GAAqB;AAACN,IAAAA,KAAK,EAAE,IAAIkB,WAAJ,CAAgBZ,SAAhB,CAAR;AAAoCV,IAAAA,IAAI,EAAE;AAA1C,GAArB;AACD;;AAED,SAASX,oBAAT,CACEF,WADF,EAEEC,OAFF,EAGyB;AACvB,MAAI,CAACD,WAAL,EAAkB,OAAO,IAAP;AAClB,QAAMoC,IAAI,GAAGnD,QAAQ,CAACe,WAAD,EAAchB,UAAd,CAArB;;AAEA,MAAIoD,IAAI,CAAC9B,QAAL,IAAiB,CAAC8B,IAAI,CAAC9B,QAAL,CAAciB,SAApC,EAA+C;AAC7CK,IAAAA,WAAW,CAACQ,IAAI,CAAC9B,QAAN,CAAX;AACD;;AAED,SAAO8B,IAAP;AACD;;AAED,eAAe5C,qBAAf","sourcesContent":["import earcut from 'earcut';\nimport {LoaderOptions, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {BinaryFeatures, BinaryPolygonFeatures, TypedArray} from '@loaders.gl/schema';\n\nimport {TileReader} from './carto-tile';\nimport {parsePbf} from './tile-loader-utils';\nimport {getWorkerUrl} from '../../utils';\n\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\nconst id = 'cartoVectorTile';\n\ntype CartoVectorTileLoaderOptions = LoaderOptions & {\n cartoVectorTile?: {\n workerUrl: string;\n };\n};\n\nconst DEFAULT_OPTIONS: CartoVectorTileLoaderOptions = {\n cartoVectorTile: {\n workerUrl: getWorkerUrl(id, VERSION)\n }\n};\n\nconst CartoVectorTileLoader: LoaderWithParser = {\n name: 'CARTO Vector Tile',\n version: VERSION,\n id,\n module: 'carto',\n extensions: ['pbf'],\n mimeTypes: ['application/vnd.carto-vector-tile'],\n category: 'geometry',\n parse: async (arrayBuffer, options?: CartoVectorTileLoaderOptions) =>\n parseCartoVectorTile(arrayBuffer, options),\n parseSync: parseCartoVectorTile,\n worker: true,\n options: DEFAULT_OPTIONS\n};\n\nfunction triangulatePolygon(\n polygons: BinaryPolygonFeatures,\n target: number[],\n {\n startPosition,\n endPosition,\n indices\n }: {startPosition: number; endPosition: number; indices: TypedArray}\n): void {\n const coordLength = polygons.positions.size;\n const start = startPosition * coordLength;\n const end = endPosition * coordLength;\n\n // Extract positions and holes for just this polygon\n const polygonPositions = polygons.positions.value.subarray(start, end);\n\n // Holes are referenced relative to outer polygon\n const holes = indices.slice(1).map((n: number) => n - startPosition);\n\n // Compute triangulation\n const triangles = earcut(polygonPositions, holes, coordLength);\n\n // Indices returned by triangulation are relative to start\n // of polygon, so we need to offset\n for (let t = 0, tl = triangles.length; t < tl; ++t) {\n target.push(startPosition + triangles[t]);\n }\n}\n\nfunction triangulate(polygons: BinaryPolygonFeatures) {\n const {polygonIndices, positions, primitivePolygonIndices} = polygons;\n const triangles = [];\n\n let rangeStart = 0;\n for (let i = 0; i < polygonIndices.value.length - 1; i++) {\n const startPosition = polygonIndices.value[i];\n const endPosition = polygonIndices.value[i + 1];\n\n // Extract hole indices between start & end position\n const rangeEnd = primitivePolygonIndices.value.indexOf(endPosition);\n const indices = primitivePolygonIndices.value.subarray(rangeStart, rangeEnd);\n rangeStart = rangeEnd;\n\n triangulatePolygon(polygons, triangles, {startPosition, endPosition, indices});\n }\n\n polygons.triangles = {value: new Uint32Array(triangles), size: 1};\n}\n\nfunction parseCartoVectorTile(\n arrayBuffer: ArrayBuffer,\n options?: CartoVectorTileLoaderOptions\n): BinaryFeatures | null {\n if (!arrayBuffer) return null;\n const tile = parsePbf(arrayBuffer, TileReader);\n\n if (tile.polygons && !tile.polygons.triangles) {\n triangulate(tile.polygons);\n }\n\n return tile;\n}\n\nexport default CartoVectorTileLoader;\n"],"file":"carto-vector-tile-loader.js"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function injectAccessToken(loadOptions, accessToken) {
|
|
2
|
+
var _loadOptions$fetch, _loadOptions$fetch$he;
|
|
3
|
+
|
|
4
|
+
if (!(loadOptions !== null && loadOptions !== void 0 && (_loadOptions$fetch = loadOptions.fetch) !== null && _loadOptions$fetch !== void 0 && (_loadOptions$fetch$he = _loadOptions$fetch.headers) !== null && _loadOptions$fetch$he !== void 0 && _loadOptions$fetch$he.Authorization)) {
|
|
5
|
+
var _loadOptions$fetch2;
|
|
6
|
+
|
|
7
|
+
loadOptions.fetch = { ...loadOptions.fetch,
|
|
8
|
+
headers: { ...((_loadOptions$fetch2 = loadOptions.fetch) === null || _loadOptions$fetch2 === void 0 ? void 0 : _loadOptions$fetch2.headers),
|
|
9
|
+
Authorization: "Bearer ".concat(accessToken)
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/utils.ts"],"names":["injectAccessToken","loadOptions","accessToken","fetch","headers","Authorization"],"mappings":"AAGA,OAAO,SAASA,iBAAT,CAA2BC,WAA3B,EAA6CC,WAA7C,EAAwE;AAAA;;AAC7E,MAAI,EAACD,WAAD,aAACA,WAAD,qCAACA,WAAW,CAAEE,KAAd,wEAAC,mBAAoBC,OAArB,kDAAC,sBAA6BC,aAA9B,CAAJ,EAAiD;AAAA;;AAC/CJ,IAAAA,WAAW,CAACE,KAAZ,GAAoB,EAClB,GAAGF,WAAW,CAACE,KADG;AAElBC,MAAAA,OAAO,EAAE,EAAC,2BAAGH,WAAW,CAACE,KAAf,wDAAG,oBAAmBC,OAAtB,CAAD;AAAgCC,QAAAA,aAAa,mBAAYH,WAAZ;AAA7C;AAFS,KAApB;AAID;AACF","sourcesContent":["/**\n * Adds access token to Authorization header in loadOptions\n */\nexport function injectAccessToken(loadOptions: any, accessToken: string): void {\n if (!loadOptions?.fetch?.headers?.Authorization) {\n loadOptions.fetch = {\n ...loadOptions.fetch,\n headers: {...loadOptions.fetch?.headers, Authorization: `Bearer ${accessToken}`}\n };\n }\n}\n"],"file":"utils.js"}
|
|
@@ -7,19 +7,47 @@ import { MVTLayer, _getURLFromTemplate } from '@deck.gl/geo-layers';
|
|
|
7
7
|
import { GeoJsonLayer } from '@deck.gl/layers';
|
|
8
8
|
import { binaryToGeojson } from '@loaders.gl/gis';
|
|
9
9
|
import { TILE_FORMATS } from '../api/maps-api-common';
|
|
10
|
+
import { TilejsonPropType } from '../sources/common';
|
|
11
|
+
import { injectAccessToken } from './utils';
|
|
10
12
|
const defaultTileFormat = TILE_FORMATS.BINARY;
|
|
11
13
|
const defaultProps = { ...MVTLayer.defaultProps,
|
|
14
|
+
data: TilejsonPropType,
|
|
12
15
|
formatTiles: defaultTileFormat
|
|
13
16
|
};
|
|
14
|
-
export default class
|
|
17
|
+
export default class VectorTileLayer extends MVTLayer {
|
|
15
18
|
initializeState() {
|
|
16
19
|
super.initializeState();
|
|
17
|
-
const binary = this.props.formatTiles === TILE_FORMATS.BINARY;
|
|
20
|
+
const binary = this.props.formatTiles === TILE_FORMATS.BINARY || TILE_FORMATS.MVT;
|
|
18
21
|
this.setState({
|
|
19
22
|
binary
|
|
20
23
|
});
|
|
21
24
|
}
|
|
22
25
|
|
|
26
|
+
updateState(parameters) {
|
|
27
|
+
const {
|
|
28
|
+
props
|
|
29
|
+
} = parameters;
|
|
30
|
+
|
|
31
|
+
if (props.data) {
|
|
32
|
+
super.updateState(parameters);
|
|
33
|
+
const formatTiles = new URL(props.data.tiles[0]).searchParams.get('formatTiles');
|
|
34
|
+
const mvt = formatTiles === TILE_FORMATS.MVT;
|
|
35
|
+
this.setState({
|
|
36
|
+
mvt
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
getLoadOptions() {
|
|
42
|
+
const loadOptions = super.getLoadOptions() || {};
|
|
43
|
+
const tileJSON = this.props.data;
|
|
44
|
+
injectAccessToken(loadOptions, tileJSON.accessToken);
|
|
45
|
+
loadOptions.gis = {
|
|
46
|
+
format: 'binary'
|
|
47
|
+
};
|
|
48
|
+
return loadOptions;
|
|
49
|
+
}
|
|
50
|
+
|
|
23
51
|
getTileData(tile) {
|
|
24
52
|
const url = _getURLFromTemplate(this.state.data, tile);
|
|
25
53
|
|
|
@@ -27,21 +55,13 @@ export default class CartoTileLayer extends MVTLayer {
|
|
|
27
55
|
return Promise.reject('Invalid URL');
|
|
28
56
|
}
|
|
29
57
|
|
|
30
|
-
|
|
58
|
+
const loadOptions = this.getLoadOptions();
|
|
31
59
|
const {
|
|
32
|
-
fetch
|
|
33
|
-
formatTiles
|
|
60
|
+
fetch
|
|
34
61
|
} = this.props;
|
|
35
62
|
const {
|
|
36
63
|
signal
|
|
37
64
|
} = tile;
|
|
38
|
-
|
|
39
|
-
if (formatTiles === TILE_FORMATS.BINARY) {
|
|
40
|
-
loadOptions = { ...loadOptions,
|
|
41
|
-
mimeType: 'application/vnd.carto-vector-tile'
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
|
|
45
65
|
return fetch(url, {
|
|
46
66
|
propName: 'data',
|
|
47
67
|
layer: this,
|
|
@@ -55,6 +75,10 @@ export default class CartoTileLayer extends MVTLayer {
|
|
|
55
75
|
return null;
|
|
56
76
|
}
|
|
57
77
|
|
|
78
|
+
if (this.state.mvt) {
|
|
79
|
+
return super.renderSubLayers(props);
|
|
80
|
+
}
|
|
81
|
+
|
|
58
82
|
const tileBbox = props.tile.bbox;
|
|
59
83
|
const {
|
|
60
84
|
west,
|
|
@@ -88,7 +112,7 @@ export default class CartoTileLayer extends MVTLayer {
|
|
|
88
112
|
|
|
89
113
|
}
|
|
90
114
|
|
|
91
|
-
_defineProperty(
|
|
115
|
+
_defineProperty(VectorTileLayer, "layerName", 'VectorTileLayer');
|
|
92
116
|
|
|
93
|
-
_defineProperty(
|
|
94
|
-
//# sourceMappingURL=
|
|
117
|
+
_defineProperty(VectorTileLayer, "defaultProps", defaultProps);
|
|
118
|
+
//# sourceMappingURL=vector-tile-layer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/vector-tile-layer.ts"],"names":["registerLoaders","CartoVectorTileLoader","ClipExtension","MVTLayer","_getURLFromTemplate","GeoJsonLayer","binaryToGeojson","TILE_FORMATS","TilejsonPropType","injectAccessToken","defaultTileFormat","BINARY","defaultProps","data","formatTiles","VectorTileLayer","initializeState","binary","props","MVT","setState","updateState","parameters","URL","tiles","searchParams","get","mvt","getLoadOptions","loadOptions","tileJSON","accessToken","gis","format","getTileData","tile","url","state","Promise","reject","fetch","signal","propName","layer","renderSubLayers","tileBbox","bbox","west","south","east","north","subLayerProps","autoHighlight","extensions","clipBounds","subLayer","getPickingInfo","params","info","index","sourceLayer","object","globalFeatureId"],"mappings":"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","sourcesContent":["import {registerLoaders} from '@loaders.gl/core';\nimport CartoVectorTileLoader from './schema/carto-vector-tile-loader';\nregisterLoaders([CartoVectorTileLoader]);\n\nimport {DefaultProps} from '@deck.gl/core';\nimport {ClipExtension} from '@deck.gl/extensions';\nimport {\n MVTLayer,\n MVTLayerProps,\n TileLayer,\n _getURLFromTemplate,\n _Tile2DHeader,\n _TileLoadProps as TileLoadProps\n} from '@deck.gl/geo-layers';\nimport {GeoJsonLayer} from '@deck.gl/layers';\nimport {binaryToGeojson} from '@loaders.gl/gis';\nimport type {BinaryFeatures} from '@loaders.gl/schema';\nimport {TileFormat, TILE_FORMATS} from '../api/maps-api-common';\nimport type {Feature} from 'geojson';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nconst defaultTileFormat = TILE_FORMATS.BINARY;\n\nconst defaultProps: DefaultProps<VectorTileLayerProps> = {\n ...MVTLayer.defaultProps,\n data: TilejsonPropType,\n formatTiles: defaultTileFormat\n};\n\n/** All properties supported by VectorTileLayer. */\nexport type VectorTileLayerProps = _VectorTileLayerProps & Omit<MVTLayerProps, 'data'>;\n\n/** Properties added by VectorTileLayer. */\ntype _VectorTileLayerProps = {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n /** Use to override the default tile data format.\n *\n * Possible values are: `TILE_FORMATS.BINARY`, `TILE_FORMATS.GEOJSON` and `TILE_FORMATS.MVT`.\n *\n * Only supported when `apiVersion` is `API_VERSIONS.V3` and `format` is `FORMATS.TILEJSON`.\n */\n formatTiles?: TileFormat;\n};\n\n// TODO Perhaps we can't subclass MVTLayer and keep types. Better to subclass TileLayer instead?\n// @ts-ignore\nexport default class VectorTileLayer<ExtraProps extends {} = {}> extends MVTLayer<\n Required<_VectorTileLayerProps> & ExtraProps\n> {\n static layerName = 'VectorTileLayer';\n static defaultProps = defaultProps;\n\n initializeState(): void {\n super.initializeState();\n const binary = this.props.formatTiles === TILE_FORMATS.BINARY || TILE_FORMATS.MVT;\n this.setState({binary});\n }\n\n updateState(parameters) {\n const {props} = parameters;\n if (props.data) {\n super.updateState(parameters);\n\n const formatTiles = new URL(props.data.tiles[0]).searchParams.get('formatTiles');\n const mvt = formatTiles === TILE_FORMATS.MVT;\n this.setState({mvt});\n }\n }\n\n getLoadOptions(): any {\n const loadOptions = super.getLoadOptions() || {};\n const tileJSON = this.props.data as CartoTilejsonResult;\n injectAccessToken(loadOptions, tileJSON.accessToken);\n loadOptions.gis = {format: 'binary'}; // Use binary for MVT loading\n return loadOptions;\n }\n\n getTileData(tile: TileLoadProps) {\n const url = _getURLFromTemplate(this.state.data, tile);\n if (!url) {\n return Promise.reject('Invalid URL');\n }\n\n const loadOptions = this.getLoadOptions();\n const {fetch} = this.props;\n const {signal} = tile;\n return fetch(url, {propName: 'data', layer: this, loadOptions, signal});\n }\n\n renderSubLayers(\n props: TileLayer['props'] & {\n id: string;\n data: any;\n _offset: number;\n tile: _Tile2DHeader;\n }\n ): GeoJsonLayer | null {\n if (props.data === null) {\n return null;\n }\n\n if (this.state.mvt) {\n return super.renderSubLayers(props) as GeoJsonLayer;\n }\n\n const tileBbox = props.tile.bbox as any;\n const {west, south, east, north} = tileBbox;\n\n const subLayerProps = {\n ...props,\n autoHighlight: false,\n extensions: [new ClipExtension(), ...(props.extensions || [])],\n clipBounds: [west, south, east, north]\n };\n\n const subLayer = new GeoJsonLayer(subLayerProps);\n return subLayer;\n }\n\n getPickingInfo(params) {\n const info = super.getPickingInfo(params);\n\n if (this.state.binary && info.index !== -1) {\n const {data} = params.sourceLayer!.props;\n info.object = binaryToGeojson(data as BinaryFeatures, {\n globalFeatureId: info.index\n }) as Feature;\n }\n\n return info;\n }\n}\n"],"file":"vector-tile-layer.js"}
|