@deck.gl/carto 8.10.0-alpha.4 → 8.10.0-alpha.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.
- package/dist/cartoRasterTile-worker.js +1 -1
- package/dist/cartoSpatialTile-worker.js +1 -1
- package/dist/cartoVectorTile-worker.js +1 -1
- package/dist/dist.dev.js +64 -715
- package/dist/es5/api/carto-api-error.js +3 -7
- package/dist/es5/api/carto-api-error.js.map +1 -1
- package/dist/es5/layers/carto-layer.js +196 -200
- package/dist/es5/layers/carto-layer.js.map +1 -1
- package/dist/es5/layers/h3-tile-layer.js +50 -54
- package/dist/es5/layers/h3-tile-layer.js.map +1 -1
- package/dist/es5/layers/h3-tileset-2d.js +62 -68
- package/dist/es5/layers/h3-tileset-2d.js.map +1 -1
- package/dist/es5/layers/point-label-layer.js +160 -165
- package/dist/es5/layers/point-label-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-layer.js +23 -27
- package/dist/es5/layers/quadbin-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tile-layer.js +31 -34
- package/dist/es5/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/es5/layers/quadbin-tileset-2d.js +32 -38
- package/dist/es5/layers/quadbin-tileset-2d.js.map +1 -1
- package/dist/es5/layers/raster-layer.js +94 -98
- package/dist/es5/layers/raster-layer.js.map +1 -1
- package/dist/es5/layers/raster-tile-layer.js +28 -33
- package/dist/es5/layers/raster-tile-layer.js.map +1 -1
- package/dist/es5/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-raster-tile.js +31 -39
- package/dist/es5/layers/schema/carto-raster-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/es5/layers/schema/carto-spatial-tile.js +36 -47
- package/dist/es5/layers/schema/carto-spatial-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-tile.js +161 -196
- package/dist/es5/layers/schema/carto-tile.js.map +1 -1
- package/dist/es5/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist/es5/layers/spatial-index-tile-layer.js +67 -73
- package/dist/es5/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist/es5/layers/vector-tile-layer.js +83 -90
- package/dist/es5/layers/vector-tile-layer.js.map +1 -1
- package/dist/esm/api/carto-api-error.js +8 -13
- package/dist/esm/api/carto-api-error.js.map +1 -1
- package/dist/esm/api/layer-map.js +4 -4
- package/dist/esm/api/layer-map.js.map +1 -1
- package/dist/esm/api/maps-api-common.js +3 -3
- package/dist/esm/api/maps-api-common.js.map +1 -1
- package/dist/esm/api/maps-client.js +7 -7
- package/dist/esm/api/maps-client.js.map +1 -1
- package/dist/esm/api/maps-v3-client.js +12 -12
- package/dist/esm/api/maps-v3-client.js.map +1 -1
- package/dist/esm/api/parseMap.js +4 -4
- package/dist/esm/api/parseMap.js.map +1 -1
- package/dist/esm/config.js +3 -3
- package/dist/esm/config.js.map +1 -1
- package/dist/esm/layers/carto-layer.js +12 -15
- package/dist/esm/layers/carto-layer.js.map +1 -1
- package/dist/esm/layers/h3-tile-layer.js +3 -6
- package/dist/esm/layers/h3-tile-layer.js.map +1 -1
- package/dist/esm/layers/point-label-layer.js +6 -10
- package/dist/esm/layers/point-label-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-layer.js +2 -5
- package/dist/esm/layers/quadbin-layer.js.map +1 -1
- package/dist/esm/layers/quadbin-tile-layer.js +3 -6
- package/dist/esm/layers/quadbin-tile-layer.js.map +1 -1
- package/dist/esm/layers/raster-layer-vertex.glsl.js +98 -1
- package/dist/esm/layers/raster-layer-vertex.glsl.js.map +1 -1
- package/dist/esm/layers/raster-layer.js +4 -8
- package/dist/esm/layers/raster-layer.js.map +1 -1
- package/dist/esm/layers/raster-tile-layer.js +3 -6
- package/dist/esm/layers/raster-tile-layer.js.map +1 -1
- package/dist/esm/layers/schema/carto-raster-tile-loader.js +1 -1
- package/dist/esm/layers/schema/carto-raster-tile.js +1 -1
- package/dist/esm/layers/schema/carto-raster-tile.js.map +1 -1
- package/dist/esm/layers/schema/carto-spatial-tile-loader.js +1 -1
- package/dist/esm/layers/schema/carto-vector-tile-loader.js +1 -1
- package/dist/esm/layers/spatial-index-tile-layer.js +2 -5
- package/dist/esm/layers/spatial-index-tile-layer.js.map +1 -1
- package/dist/esm/layers/utils.js +1 -1
- package/dist/esm/layers/utils.js.map +1 -1
- package/dist/esm/layers/vector-tile-layer.js +2 -5
- package/dist/esm/layers/vector-tile-layer.js.map +1 -1
- package/dist/esm/sources/base-source.js +1 -1
- package/dist/esm/sources/base-source.js.map +1 -1
- package/dist/esm/sources/utils.js +2 -2
- package/dist/esm/sources/utils.js.map +1 -1
- package/dist/esm/style/palette.js +2 -2
- package/dist/esm/style/palette.js.map +1 -1
- package/dist/esm/style/utils.js +1 -1
- package/dist/esm/style/utils.js.map +1 -1
- package/dist/esm/utils.js +1 -1
- package/dist/esm/utils.js.map +1 -1
- package/dist.min.js +46 -25
- package/package.json +2 -2
|
@@ -9,9 +9,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports.default = void 0;
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
|
|
14
|
-
var
|
|
14
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
15
|
|
|
16
16
|
var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
|
|
17
17
|
|
|
@@ -21,8 +21,6 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
|
|
|
21
21
|
|
|
22
22
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
23
23
|
|
|
24
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
25
|
-
|
|
26
24
|
var _core = require("@deck.gl/core");
|
|
27
25
|
|
|
28
26
|
var _geoLayers = require("@deck.gl/geo-layers");
|
|
@@ -75,60 +73,58 @@ var H3TileLayer = function (_CompositeLayer) {
|
|
|
75
73
|
return _super.apply(this, arguments);
|
|
76
74
|
}
|
|
77
75
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
var _proto = H3TileLayer.prototype;
|
|
77
|
+
|
|
78
|
+
_proto.initializeState = function initializeState() {
|
|
79
|
+
_geoLayers.H3HexagonLayer._checkH3Lib();
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
_proto.getLoadOptions = function getLoadOptions() {
|
|
83
|
+
var loadOptions = (0, _get2.default)((0, _getPrototypeOf2.default)(H3TileLayer.prototype), "getLoadOptions", this).call(this) || {};
|
|
84
|
+
var tileJSON = this.props.data;
|
|
85
|
+
(0, _utils.injectAccessToken)(loadOptions, tileJSON.accessToken);
|
|
86
|
+
loadOptions.cartoSpatialTile = _objectSpread(_objectSpread({}, loadOptions.cartoSpatialTile), {}, {
|
|
87
|
+
scheme: 'h3'
|
|
88
|
+
});
|
|
89
|
+
return loadOptions;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
_proto.renderLayers = function renderLayers() {
|
|
93
|
+
var tileJSON = this.props.data;
|
|
94
|
+
if (!tileJSON) return null;
|
|
95
|
+
var data = tileJSON.tiles;
|
|
96
|
+
var minresolution = tileJSON.minresolution,
|
|
97
|
+
maxresolution = tileJSON.maxresolution;
|
|
98
|
+
|
|
99
|
+
if (this.props.minZoom) {
|
|
100
|
+
minresolution = Math.max(minresolution, (0, _h3Tileset2d.getHexagonResolution)({
|
|
101
|
+
zoom: this.props.minZoom,
|
|
102
|
+
latitude: 0
|
|
103
|
+
}));
|
|
82
104
|
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
loadOptions.cartoSpatialTile = _objectSpread(_objectSpread({}, loadOptions.cartoSpatialTile), {}, {
|
|
90
|
-
scheme: 'h3'
|
|
91
|
-
});
|
|
92
|
-
return loadOptions;
|
|
93
|
-
}
|
|
94
|
-
}, {
|
|
95
|
-
key: "renderLayers",
|
|
96
|
-
value: function renderLayers() {
|
|
97
|
-
var tileJSON = this.props.data;
|
|
98
|
-
if (!tileJSON) return null;
|
|
99
|
-
var data = tileJSON.tiles;
|
|
100
|
-
var minresolution = tileJSON.minresolution,
|
|
101
|
-
maxresolution = tileJSON.maxresolution;
|
|
102
|
-
|
|
103
|
-
if (this.props.minZoom) {
|
|
104
|
-
minresolution = Math.max(minresolution, (0, _h3Tileset2d.getHexagonResolution)({
|
|
105
|
-
zoom: this.props.minZoom,
|
|
106
|
-
latitude: 0
|
|
107
|
-
}));
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
if (this.props.maxZoom) {
|
|
111
|
-
maxresolution = Math.min(maxresolution, (0, _h3Tileset2d.getHexagonResolution)({
|
|
112
|
-
zoom: this.props.maxZoom,
|
|
113
|
-
latitude: 0
|
|
114
|
-
}));
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
return [new _spatialIndexTileLayer.default(this.props, {
|
|
118
|
-
id: "h3-tile-layer-".concat(this.props.id),
|
|
119
|
-
data: data,
|
|
120
|
-
TilesetClass: _h3Tileset2d.default,
|
|
121
|
-
renderSubLayers: renderSubLayers,
|
|
122
|
-
minZoom: minresolution,
|
|
123
|
-
maxZoom: maxresolution,
|
|
124
|
-
loadOptions: this.getLoadOptions()
|
|
125
|
-
})];
|
|
105
|
+
|
|
106
|
+
if (this.props.maxZoom) {
|
|
107
|
+
maxresolution = Math.min(maxresolution, (0, _h3Tileset2d.getHexagonResolution)({
|
|
108
|
+
zoom: this.props.maxZoom,
|
|
109
|
+
latitude: 0
|
|
110
|
+
}));
|
|
126
111
|
}
|
|
127
|
-
|
|
112
|
+
|
|
113
|
+
return [new _spatialIndexTileLayer.default(this.props, {
|
|
114
|
+
id: "h3-tile-layer-".concat(this.props.id),
|
|
115
|
+
data: data,
|
|
116
|
+
TilesetClass: _h3Tileset2d.default,
|
|
117
|
+
renderSubLayers: renderSubLayers,
|
|
118
|
+
minZoom: minresolution,
|
|
119
|
+
maxZoom: maxresolution,
|
|
120
|
+
loadOptions: this.getLoadOptions()
|
|
121
|
+
})];
|
|
122
|
+
};
|
|
123
|
+
|
|
128
124
|
return H3TileLayer;
|
|
129
125
|
}(_core.CompositeLayer);
|
|
130
126
|
|
|
131
127
|
exports.default = H3TileLayer;
|
|
132
|
-
|
|
133
|
-
|
|
128
|
+
H3TileLayer.layerName = 'H3TileLayer';
|
|
129
|
+
H3TileLayer.defaultProps = defaultProps;
|
|
134
130
|
//# sourceMappingURL=h3-tile-layer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/h3-tile-layer.ts"],"names":["renderSubLayers","props","data","index","tile","length","H3HexagonLayer","getHexagon","d","id","centerHexagon","highPrecision","defaultProps","aggregationResLevel","TilejsonPropType","H3TileLayer","_checkH3Lib","loadOptions","tileJSON","accessToken","cartoSpatialTile","scheme","tiles","minresolution","maxresolution","minZoom","Math","max","zoom","latitude","maxZoom","min","SpatialIndexTileLayer","TilesetClass","H3Tileset2D","
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/h3-tile-layer.ts"],"names":["renderSubLayers","props","data","index","tile","length","H3HexagonLayer","getHexagon","d","id","centerHexagon","highPrecision","defaultProps","aggregationResLevel","TilejsonPropType","H3TileLayer","initializeState","_checkH3Lib","getLoadOptions","loadOptions","tileJSON","accessToken","cartoSpatialTile","scheme","renderLayers","tiles","minresolution","maxresolution","minZoom","Math","max","zoom","latitude","maxZoom","min","SpatialIndexTileLayer","TilesetClass","H3Tileset2D","CompositeLayer","layerName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;AAEA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB,CAACC,KAAD,EAAgC;AACtD,MAAOC,IAAP,GAAeD,KAAf,CAAOC,IAAP;AACA,MAAOC,KAAP,GAAgBF,KAAK,CAACG,IAAtB,CAAOD,KAAP;AACA,MAAI,CAACD,IAAD,IAAS,CAACA,IAAI,CAACG,MAAnB,EAA2B,OAAO,IAAP;AAE3B,SAAO,IAAIC,yBAAJ,CAAmBL,KAAnB,EAA0B;AAC/BM,IAAAA,UAAU,EAAE,oBAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,EAAN;AAAA,KADkB;AAE/BC,IAAAA,aAAa,EAAEP,KAFgB;AAG/BQ,IAAAA,aAAa,EAAE;AAHgB,GAA1B,CAAP;AAKD,CAVD;;AAYA,IAAMC,YAA+C,GAAG;AACtDC,EAAAA,mBAAmB,EAAE,CADiC;AAEtDX,EAAAA,IAAI,EAAEY;AAFgD,CAAxD;;IAkBqBC,W;;;;;;;;;;;;SAMnBC,e,GAAA,2BAAwB;AACtBV,8BAAeW,WAAf;AACD,G;;SAEDC,c,GAAA,0BAAsB;AACpB,QAAMC,WAAW,GAAG,+GAA0B,EAA9C;AACA,QAAMC,QAAQ,GAAG,KAAKnB,KAAL,CAAWC,IAA5B;AACA,kCAAkBiB,WAAlB,EAA+BC,QAAQ,CAACC,WAAxC;AACAF,IAAAA,WAAW,CAACG,gBAAZ,mCAAmCH,WAAW,CAACG,gBAA/C;AAAiEC,MAAAA,MAAM,EAAE;AAAzE;AACA,WAAOJ,WAAP;AACD,G;;SAEDK,Y,GAAA,wBAA0C;AACxC,QAAMJ,QAAQ,GAAG,KAAKnB,KAAL,CAAWC,IAA5B;AACA,QAAI,CAACkB,QAAL,EAAe,OAAO,IAAP;AAEf,QAAclB,IAAd,GAAsBkB,QAAtB,CAAOK,KAAP;AACA,QAAKC,aAAL,GAAqCN,QAArC,CAAKM,aAAL;AAAA,QAAoBC,aAApB,GAAqCP,QAArC,CAAoBO,aAApB;;AAGA,QAAI,KAAK1B,KAAL,CAAW2B,OAAf,EAAwB;AACtBF,MAAAA,aAAa,GAAGG,IAAI,CAACC,GAAL,CACdJ,aADc,EAEd,uCAAqB;AAACK,QAAAA,IAAI,EAAE,KAAK9B,KAAL,CAAW2B,OAAlB;AAA2BI,QAAAA,QAAQ,EAAE;AAArC,OAArB,CAFc,CAAhB;AAID;;AACD,QAAI,KAAK/B,KAAL,CAAWgC,OAAf,EAAwB;AACtBN,MAAAA,aAAa,GAAGE,IAAI,CAACK,GAAL,CACdP,aADc,EAEd,uCAAqB;AAACI,QAAAA,IAAI,EAAE,KAAK9B,KAAL,CAAWgC,OAAlB;AAA2BD,QAAAA,QAAQ,EAAE;AAArC,OAArB,CAFc,CAAhB;AAID;;AAID,WAAO,CAEL,IAAIG,8BAAJ,CAA0B,KAAKlC,KAA/B,EAAsC;AACpCQ,MAAAA,EAAE,0BAAmB,KAAKR,KAAL,CAAWQ,EAA9B,CADkC;AAEpCP,MAAAA,IAAI,EAAJA,IAFoC;AAIpCkC,MAAAA,YAAY,EAAEC,oBAJsB;AAKpCrC,MAAAA,eAAe,EAAfA,eALoC;AAOpC4B,MAAAA,OAAO,EAAEF,aAP2B;AAQpCO,MAAAA,OAAO,EAAEN,aAR2B;AASpCR,MAAAA,WAAW,EAAE,KAAKD,cAAL;AATuB,KAAtC,CAFK,CAAP;AAcD,G;;;EAvDgFoB,oB;;;AAA9DvB,W,CAGZwB,S,GAAY,a;AAHAxB,W,CAIZH,Y,GAAeA,Y","sourcesContent":["import {CompositeLayer, CompositeLayerProps, Layer, LayersList, DefaultProps} from '@deck.gl/core';\nimport {H3HexagonLayer} from '@deck.gl/geo-layers';\nimport H3Tileset2D, {getHexagonResolution} from './h3-tileset-2d';\nimport SpatialIndexTileLayer from './spatial-index-tile-layer';\nimport {TilejsonPropType, CartoTilejsonResult} from '../sources/common';\nimport {injectAccessToken} from './utils';\n\nconst renderSubLayers = (props: H3HexagonLayerProps) => {\n const {data} = props;\n const {index} = props.tile;\n if (!data || !data.length) return null;\n\n return new H3HexagonLayer(props, {\n getHexagon: d => d.id,\n centerHexagon: index,\n highPrecision: true\n });\n};\n\nconst defaultProps: DefaultProps<H3HexagonLayerProps> = {\n aggregationResLevel: 4,\n data: TilejsonPropType\n};\n\n/** All properties supported by H3TileLayer. */\nexport type H3TileLayerProps<DataT = any> = _H3TileLayerProps<DataT> & CompositeLayerProps;\n\n// TODO: use type from h3-hexagon-layer when available\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ntype H3HexagonLayerProps<DataT = any> = Record<string, any>;\n\n/** Properties added by H3TileLayer. */\ntype _H3TileLayerProps<DataT> = Omit<H3HexagonLayerProps<DataT>, 'data'> & {\n data: null | CartoTilejsonResult | Promise<CartoTilejsonResult>;\n aggregationResLevel?: number;\n};\n\nexport default class H3TileLayer<DataT = any, ExtraPropsT extends {} = {}> extends CompositeLayer<\n ExtraPropsT & Required<_H3TileLayerProps<DataT>>\n> {\n static layerName = 'H3TileLayer';\n static defaultProps = defaultProps;\n\n initializeState(): void {\n H3HexagonLayer._checkH3Lib();\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.cartoSpatialTile = {...loadOptions.cartoSpatialTile, scheme: 'h3'};\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} = tileJSON;\n let {minresolution, maxresolution} = tileJSON;\n // Convert Mercator zooms provided in props into H3 res levels\n // and clip into valid range provided from the tilejson\n if (this.props.minZoom) {\n minresolution = Math.max(\n minresolution,\n getHexagonResolution({zoom: this.props.minZoom, latitude: 0})\n );\n }\n if (this.props.maxZoom) {\n maxresolution = Math.min(\n maxresolution,\n getHexagonResolution({zoom: this.props.maxZoom, latitude: 0})\n );\n }\n\n // The naming is unfortunate, but minZoom & maxZoom in the context\n // of a Tileset2D refer to the resolution levels, not the Mercator zooms\n return [\n // @ts-ignore\n new SpatialIndexTileLayer(this.props, {\n id: `h3-tile-layer-${this.props.id}`,\n data,\n // TODO: Tileset2D should be generic over TileIndex type\n TilesetClass: H3Tileset2D as any,\n renderSubLayers,\n // minZoom and maxZoom are H3 resolutions, however we must use this naming as that is what the Tileset2D class expects\n minZoom: minresolution,\n maxZoom: maxresolution,\n loadOptions: this.getLoadOptions()\n })\n ];\n }\n}\n"],"file":"h3-tile-layer.js"}
|
|
@@ -12,8 +12,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
12
12
|
|
|
13
13
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
14
14
|
|
|
15
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
16
|
-
|
|
17
15
|
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
18
16
|
|
|
19
17
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
@@ -100,77 +98,73 @@ var H3Tileset2D = function (_Tileset2D) {
|
|
|
100
98
|
return _super.apply(this, arguments);
|
|
101
99
|
}
|
|
102
100
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
if (typeof maxZoom === 'number' && Number.isFinite(maxZoom) && z > maxZoom) {
|
|
126
|
-
z = maxZoom;
|
|
127
|
-
var center = (0, _h3Js.latLngToCell)(viewport.latitude, viewport.longitude, maxZoom);
|
|
128
|
-
indices = (0, _h3Js.gridDisk)(center, 1);
|
|
129
|
-
} else {
|
|
130
|
-
indices = getHexagonsInBoundingBox({
|
|
131
|
-
west: west,
|
|
132
|
-
north: north,
|
|
133
|
-
east: east,
|
|
134
|
-
south: south
|
|
135
|
-
}, z);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
return indices.map(function (i) {
|
|
139
|
-
return {
|
|
140
|
-
i: i
|
|
141
|
-
};
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
}, {
|
|
145
|
-
key: "getTileId",
|
|
146
|
-
value: function getTileId(_ref3) {
|
|
147
|
-
var i = _ref3.i;
|
|
148
|
-
return i;
|
|
149
|
-
}
|
|
150
|
-
}, {
|
|
151
|
-
key: "getTileMetadata",
|
|
152
|
-
value: function getTileMetadata(_ref4) {
|
|
153
|
-
var i = _ref4.i;
|
|
154
|
-
return {
|
|
155
|
-
bbox: tileToBoundingBox(i)
|
|
156
|
-
};
|
|
101
|
+
var _proto = H3Tileset2D.prototype;
|
|
102
|
+
|
|
103
|
+
_proto.getTileIndices = function getTileIndices(_ref2) {
|
|
104
|
+
var viewport = _ref2.viewport,
|
|
105
|
+
minZoom = _ref2.minZoom,
|
|
106
|
+
maxZoom = _ref2.maxZoom;
|
|
107
|
+
if (viewport.latitude === undefined) return [];
|
|
108
|
+
|
|
109
|
+
var _viewport$getBounds = viewport.getBounds(),
|
|
110
|
+
_viewport$getBounds2 = (0, _slicedToArray2.default)(_viewport$getBounds, 4),
|
|
111
|
+
east = _viewport$getBounds2[0],
|
|
112
|
+
south = _viewport$getBounds2[1],
|
|
113
|
+
west = _viewport$getBounds2[2],
|
|
114
|
+
north = _viewport$getBounds2[3];
|
|
115
|
+
|
|
116
|
+
var z = getHexagonResolution(viewport);
|
|
117
|
+
var indices;
|
|
118
|
+
|
|
119
|
+
if (typeof minZoom === 'number' && Number.isFinite(minZoom) && z < minZoom) {
|
|
120
|
+
return [];
|
|
157
121
|
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
var
|
|
162
|
-
|
|
122
|
+
|
|
123
|
+
if (typeof maxZoom === 'number' && Number.isFinite(maxZoom) && z > maxZoom) {
|
|
124
|
+
z = maxZoom;
|
|
125
|
+
var center = (0, _h3Js.latLngToCell)(viewport.latitude, viewport.longitude, maxZoom);
|
|
126
|
+
indices = (0, _h3Js.gridDisk)(center, 1);
|
|
127
|
+
} else {
|
|
128
|
+
indices = getHexagonsInBoundingBox({
|
|
129
|
+
west: west,
|
|
130
|
+
north: north,
|
|
131
|
+
east: east,
|
|
132
|
+
south: south
|
|
133
|
+
}, z);
|
|
163
134
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
value: function getParentIndex(index) {
|
|
167
|
-
var resolution = (0, _h3Js.getResolution)(index.i);
|
|
168
|
-
var i = (0, _h3Js.cellToParent)(index.i, resolution - 1);
|
|
135
|
+
|
|
136
|
+
return indices.map(function (i) {
|
|
169
137
|
return {
|
|
170
138
|
i: i
|
|
171
139
|
};
|
|
172
|
-
}
|
|
173
|
-
}
|
|
140
|
+
});
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
_proto.getTileId = function getTileId(_ref3) {
|
|
144
|
+
var i = _ref3.i;
|
|
145
|
+
return i;
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
_proto.getTileMetadata = function getTileMetadata(_ref4) {
|
|
149
|
+
var i = _ref4.i;
|
|
150
|
+
return {
|
|
151
|
+
bbox: tileToBoundingBox(i)
|
|
152
|
+
};
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
_proto.getTileZoom = function getTileZoom(_ref5) {
|
|
156
|
+
var i = _ref5.i;
|
|
157
|
+
return (0, _h3Js.getResolution)(i);
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
_proto.getParentIndex = function getParentIndex(index) {
|
|
161
|
+
var resolution = (0, _h3Js.getResolution)(index.i);
|
|
162
|
+
var i = (0, _h3Js.cellToParent)(index.i, resolution - 1);
|
|
163
|
+
return {
|
|
164
|
+
i: i
|
|
165
|
+
};
|
|
166
|
+
};
|
|
167
|
+
|
|
174
168
|
return H3Tileset2D;
|
|
175
169
|
}(_geoLayers._Tileset2D);
|
|
176
170
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/layers/h3-tileset-2d.ts"],"names":["getHexagonsInBoundingBox","resolution","west","north","east","south","longitudeSpan","Math","abs","nSegments","ceil","h3Indices","s","segmentEast","segmentWest","min","concat","Set","oversample","map","i","tileToBoundingBox","index","coordinates","latitudes","c","longitudes","max","BIAS","getHexagonResolution","viewport","hexagonScaleFactor","zoom","latitudeScaleFactor","log","cos","PI","latitude","floor","H3Tileset2D","minZoom","maxZoom","undefined","getBounds","z","indices","Number","isFinite","center","longitude","bbox","Tileset2D"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/layers/h3-tileset-2d.ts"],"names":["getHexagonsInBoundingBox","resolution","west","north","east","south","longitudeSpan","Math","abs","nSegments","ceil","h3Indices","s","segmentEast","segmentWest","min","concat","Set","oversample","map","i","tileToBoundingBox","index","coordinates","latitudes","c","longitudes","max","BIAS","getHexagonResolution","viewport","hexagonScaleFactor","zoom","latitudeScaleFactor","log","cos","PI","latitude","floor","H3Tileset2D","getTileIndices","minZoom","maxZoom","undefined","getBounds","z","indices","Number","isFinite","center","longitude","getTileId","getTileMetadata","bbox","getTileZoom","getParentIndex","Tileset2D"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAWA,SAASA,wBAAT,OAEEC,UAFF,EAGY;AAAA,MAFTC,IAES,QAFTA,IAES;AAAA,MAFHC,KAEG,QAFHA,KAEG;AAAA,MAFIC,IAEJ,QAFIA,IAEJ;AAAA,MAFUC,KAEV,QAFUA,KAEV;AACV,MAAMC,aAAa,GAAGC,IAAI,CAACC,GAAL,CAASJ,IAAI,GAAGF,IAAhB,CAAtB;;AACA,MAAII,aAAa,GAAG,GAApB,EAAyB;AAGvB,QAAMG,SAAS,GAAGF,IAAI,CAACG,IAAL,CAAUJ,aAAa,GAAG,GAA1B,CAAlB;AACA,QAAIK,UAAmB,GAAG,EAA1B;;AACA,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,SAApB,EAA+BG,CAAC,EAAhC,EAAoC;AAClC,UAAMC,WAAW,GAAGT,IAAI,GAAGQ,CAAC,GAAG,GAA/B;AACA,UAAME,WAAW,GAAGP,IAAI,CAACQ,GAAL,CAASF,WAAW,GAAG,WAAvB,EAAoCX,IAApC,CAApB;AACAS,MAAAA,UAAS,GAAGA,UAAS,CAACK,MAAV,CACVhB,wBAAwB,CAAC;AAACE,QAAAA,IAAI,EAAEY,WAAP;AAAoBX,QAAAA,KAAK,EAALA,KAApB;AAA2BC,QAAAA,IAAI,EAAES,WAAjC;AAA8CR,QAAAA,KAAK,EAALA;AAA9C,OAAD,EAAuDJ,UAAvD,CADd,CAAZ;AAGD;;AACD,4CAAW,IAAIgB,GAAJ,CAAQN,UAAR,CAAX;AACD;;AAID,MAAMO,UAAU,GAAG,CAAnB;AACA,MAAMP,SAAS,GAAG,0BAChB,CACE,CACE,CAACT,IAAD,EAAOC,KAAP,CADF,EAEE,CAACD,IAAD,EAAOG,KAAP,CAFF,EAGE,CAACD,IAAD,EAAOC,KAAP,CAHF,EAIE,CAACD,IAAD,EAAOD,KAAP,CAJF,EAKE,CAACD,IAAD,EAAOC,KAAP,CALF,CADF,CADgB,EAUhBF,UAAU,GAAGiB,UAVG,EAWhB,IAXgB,CAAlB;AAcA,SAAOA,UAAU,oCAAO,IAAID,GAAJ,CAAQN,SAAS,CAACQ,GAAV,CAAc,UAAAC,CAAC;AAAA,WAAI,wBAAaA,CAAb,EAAgBnB,UAAhB,CAAJ;AAAA,GAAf,CAAR,CAAP,IAAmEU,SAApF;AACD;;AAED,SAASU,iBAAT,CAA2BC,KAA3B,EAA0D;AACxD,MAAMC,WAAW,GAAG,0BAAeD,KAAf,CAApB;AACA,MAAME,SAAS,GAAGD,WAAW,CAACJ,GAAZ,CAAgB,UAAAM,CAAC;AAAA,WAAIA,CAAC,CAAC,CAAD,CAAL;AAAA,GAAjB,CAAlB;AACA,MAAMC,UAAU,GAAGH,WAAW,CAACJ,GAAZ,CAAgB,UAAAM,CAAC;AAAA,WAAIA,CAAC,CAAC,CAAD,CAAL;AAAA,GAAjB,CAAnB;AACA,MAAMvB,IAAI,GAAGK,IAAI,CAACQ,GAAL,OAAAR,IAAI,mCAAQmB,UAAR,EAAjB;AACA,MAAMrB,KAAK,GAAGE,IAAI,CAACQ,GAAL,OAAAR,IAAI,mCAAQiB,SAAR,EAAlB;AACA,MAAMpB,IAAI,GAAGG,IAAI,CAACoB,GAAL,OAAApB,IAAI,mCAAQmB,UAAR,EAAjB;AACA,MAAMvB,KAAK,GAAGI,IAAI,CAACoB,GAAL,OAAApB,IAAI,mCAAQiB,SAAR,EAAlB;AACA,SAAO;AAACtB,IAAAA,IAAI,EAAJA,IAAD;AAAOG,IAAAA,KAAK,EAALA,KAAP;AAAcD,IAAAA,IAAI,EAAJA,IAAd;AAAoBD,IAAAA,KAAK,EAALA;AAApB,GAAP;AACD;;AAMD,IAAMyB,IAAI,GAAG,CAAb;;AACO,SAASC,oBAAT,CAA8BC,QAA9B,EAAgD;AACrD,MAAMC,kBAAkB,GAAI,IAAI,CAAL,GAAUD,QAAQ,CAACE,IAA9C;AACA,MAAMC,mBAAmB,GAAG1B,IAAI,CAAC2B,GAAL,CAAS,IAAI3B,IAAI,CAAC4B,GAAL,CAAU5B,IAAI,CAAC6B,EAAL,GAAUN,QAAQ,CAACO,QAApB,GAAgC,GAAzC,CAAb,CAA5B;AAGA,SAAO9B,IAAI,CAACoB,GAAL,CAAS,CAAT,EAAYpB,IAAI,CAAC+B,KAAL,CAAWP,kBAAkB,GAAGE,mBAArB,GAA2CL,IAAtD,CAAZ,CAAP;AACD;;IAEoBW,W;;;;;;;;;;;;SAOnBC,c,GAAA,+BAA4D;AAAA,QAA5CV,QAA4C,SAA5CA,QAA4C;AAAA,QAAlCW,OAAkC,SAAlCA,OAAkC;AAAA,QAAzBC,OAAyB,SAAzBA,OAAyB;AAC1D,QAAIZ,QAAQ,CAACO,QAAT,KAAsBM,SAA1B,EAAqC,OAAO,EAAP;;AACrC,8BAAmCb,QAAQ,CAACc,SAAT,EAAnC;AAAA;AAAA,QAAOxC,IAAP;AAAA,QAAaC,KAAb;AAAA,QAAoBH,IAApB;AAAA,QAA0BC,KAA1B;;AAEA,QAAI0C,CAAC,GAAGhB,oBAAoB,CAACC,QAAD,CAA5B;AACA,QAAIgB,OAAJ;;AACA,QAAI,OAAOL,OAAP,KAAmB,QAAnB,IAA+BM,MAAM,CAACC,QAAP,CAAgBP,OAAhB,CAA/B,IAA2DI,CAAC,GAAGJ,OAAnE,EAA4E;AAE1E,aAAO,EAAP;AACD;;AACD,QAAI,OAAOC,OAAP,KAAmB,QAAnB,IAA+BK,MAAM,CAACC,QAAP,CAAgBN,OAAhB,CAA/B,IAA2DG,CAAC,GAAGH,OAAnE,EAA4E;AAC1EG,MAAAA,CAAC,GAAGH,OAAJ;AAIA,UAAMO,MAAM,GAAG,wBAAanB,QAAQ,CAACO,QAAtB,EAAgCP,QAAQ,CAACoB,SAAzC,EAAoDR,OAApD,CAAf;AACAI,MAAAA,OAAO,GAAG,oBAASG,MAAT,EAAiB,CAAjB,CAAV;AACD,KAPD,MAOO;AACLH,MAAAA,OAAO,GAAG9C,wBAAwB,CAAC;AAACE,QAAAA,IAAI,EAAJA,IAAD;AAAOC,QAAAA,KAAK,EAALA,KAAP;AAAcC,QAAAA,IAAI,EAAJA,IAAd;AAAoBC,QAAAA,KAAK,EAALA;AAApB,OAAD,EAA6BwC,CAA7B,CAAlC;AACD;;AAED,WAAOC,OAAO,CAAC3B,GAAR,CAAY,UAAAC,CAAC;AAAA,aAAK;AAACA,QAAAA,CAAC,EAADA;AAAD,OAAL;AAAA,KAAb,CAAP;AACD,G;;SAGD+B,S,GAAA,0BAAoC;AAAA,QAAzB/B,CAAyB,SAAzBA,CAAyB;AAClC,WAAOA,CAAP;AACD,G;;SAGDgC,e,GAAA,gCAAkC;AAAA,QAAjBhC,CAAiB,SAAjBA,CAAiB;AAChC,WAAO;AAACiC,MAAAA,IAAI,EAAEhC,iBAAiB,CAACD,CAAD;AAAxB,KAAP;AACD,G;;SAGDkC,W,GAAA,4BAAsC;AAAA,QAAzBlC,CAAyB,SAAzBA,CAAyB;AACpC,WAAO,yBAAcA,CAAd,CAAP;AACD,G;;SAGDmC,c,GAAA,wBAAejC,KAAf,EAAgD;AAC9C,QAAMrB,UAAU,GAAG,yBAAcqB,KAAK,CAACF,CAApB,CAAnB;AACA,QAAMA,CAAC,GAAG,wBAAaE,KAAK,CAACF,CAAnB,EAAsBnB,UAAU,GAAG,CAAnC,CAAV;AACA,WAAO;AAACmB,MAAAA,CAAC,EAADA;AAAD,KAAP;AACD,G;;;EAnDsCoC,qB","sourcesContent":["import {_Tileset2D as Tileset2D, GeoBoundingBox} from '@deck.gl/geo-layers';\nimport {\n polygonToCells,\n latLngToCell,\n getResolution,\n cellToBoundary,\n cellToParent,\n gridDisk\n} from 'h3-js';\n\nexport type H3TileIndex = {i: string};\n\nfunction getHexagonsInBoundingBox(\n {west, north, east, south}: GeoBoundingBox,\n resolution: number\n): string[] {\n const longitudeSpan = Math.abs(east - west);\n if (longitudeSpan > 180) {\n // This is a known issue in h3-js: polygonToCells does not work correctly\n // when longitude span is larger than 180 degrees.\n const nSegments = Math.ceil(longitudeSpan / 180);\n let h3Indices: string[] = [];\n for (let s = 0; s < nSegments; s++) {\n const segmentEast = east + s * 180;\n const segmentWest = Math.min(segmentEast + 179.9999999, west);\n h3Indices = h3Indices.concat(\n getHexagonsInBoundingBox({west: segmentWest, north, east: segmentEast, south}, resolution)\n );\n }\n return [...new Set(h3Indices)];\n }\n\n // `polygonToCells()` fills based on hexagon center, which means tiles vanish\n // prematurely. Get more accurate coverage by oversampling\n const oversample = 2;\n const h3Indices = polygonToCells(\n [\n [\n [west, north],\n [west, south],\n [east, south],\n [east, north],\n [west, north]\n ]\n ],\n resolution + oversample,\n true\n );\n\n return oversample ? [...new Set(h3Indices.map(i => cellToParent(i, resolution)))] : h3Indices;\n}\n\nfunction tileToBoundingBox(index: string): GeoBoundingBox {\n const coordinates = cellToBoundary(index);\n const latitudes = coordinates.map(c => c[0]);\n const longitudes = coordinates.map(c => c[1]);\n const west = Math.min(...longitudes);\n const south = Math.min(...latitudes);\n const east = Math.max(...longitudes);\n const north = Math.max(...latitudes);\n return {west, south, east, north};\n}\n\n// Resolution conversion function. Takes a WebMercatorViewport and returns\n// a H3 resolution such that the screen space size of the hexagons is\n// similar\n// Relative scale factor (0 = no biasing, 2 = a few hexagons cover view)\nconst BIAS = 2;\nexport function getHexagonResolution(viewport): number {\n const hexagonScaleFactor = (2 / 3) * viewport.zoom;\n const latitudeScaleFactor = Math.log(1 / Math.cos((Math.PI * viewport.latitude) / 180));\n\n // Clip and bias\n return Math.max(0, Math.floor(hexagonScaleFactor + latitudeScaleFactor - BIAS));\n}\n\nexport default class H3Tileset2D extends Tileset2D {\n /**\n * Returns all tile indices in the current viewport. If the current zoom level is smaller\n * than minZoom, return an empty array. If the current zoom level is greater than maxZoom,\n * return tiles that are on maxZoom.\n */\n // @ts-expect-error Tileset2D should be generic over TileIndex\n getTileIndices({viewport, minZoom, maxZoom}): H3TileIndex[] {\n if (viewport.latitude === undefined) return [];\n const [east, south, west, north] = viewport.getBounds();\n\n let z = getHexagonResolution(viewport);\n let indices: string[];\n if (typeof minZoom === 'number' && Number.isFinite(minZoom) && z < minZoom) {\n // TODO support `extent` prop\n return [];\n }\n if (typeof maxZoom === 'number' && Number.isFinite(maxZoom) && z > maxZoom) {\n z = maxZoom;\n\n // Once we are at max zoom, getHexagonsInBoundingBox doesn't work, simply\n // get a ring centered on the hexagon in the viewport center\n const center = latLngToCell(viewport.latitude, viewport.longitude, maxZoom);\n indices = gridDisk(center, 1);\n } else {\n indices = getHexagonsInBoundingBox({west, north, east, south}, z);\n }\n\n return indices.map(i => ({i}));\n }\n\n // @ts-expect-error Tileset2D should be generic over TileIndex\n getTileId({i}: H3TileIndex): string {\n return i;\n }\n\n // @ts-expect-error Tileset2D should be generic over TileIndex\n getTileMetadata({i}: H3TileIndex) {\n return {bbox: tileToBoundingBox(i)};\n }\n\n // @ts-expect-error Tileset2D should be generic over TileIndex\n getTileZoom({i}: H3TileIndex): number {\n return getResolution(i);\n }\n\n // @ts-expect-error Tileset2D should be generic over TileIndex\n getParentIndex(index: H3TileIndex): H3TileIndex {\n const resolution = getResolution(index.i);\n const i = cellToParent(index.i, resolution - 1);\n return {i};\n }\n}\n"],"file":"h3-tileset-2d.js"}
|