@deck.gl/geo-layers 8.7.0-beta.7 → 8.7.2

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/dist.dev.js CHANGED
@@ -7,7 +7,7 @@
7
7
  exports["deck"] = factory(require("deck"), require("luma"), require("h3"));
8
8
  else
9
9
  root["deck"] = factory(root["deck"], root["luma"], root["h3"]);
10
- })(window, function(__WEBPACK_EXTERNAL_MODULE__deck_gl_core__, __WEBPACK_EXTERNAL_MODULE__luma_gl_core__, __WEBPACK_EXTERNAL_MODULE_h3_js__) {
10
+ })(window, function(__WEBPACK_EXTERNAL_MODULE__deck_gl_layers__, __WEBPACK_EXTERNAL_MODULE__luma_gl_core__, __WEBPACK_EXTERNAL_MODULE_h3_js__) {
11
11
  return /******/ (function(modules) { // webpackBootstrap
12
12
  /******/ // The module cache
13
13
  /******/ var installedModules = {};
@@ -63372,7 +63372,7 @@ __webpack_require__.r(__webpack_exports__);
63372
63372
 
63373
63373
 
63374
63374
 
63375
- const VERSION = true ? "8.7.0-beta.7" : undefined;
63375
+ const VERSION = true ? "8.7.2" : undefined;
63376
63376
  const isBrowser = Object(_env_is_browser__WEBPACK_IMPORTED_MODULE_0__["default"])();
63377
63377
  //# sourceMappingURL=globals.js.map
63378
63378
 
@@ -63805,7 +63805,7 @@ module.exports = Object.assign(deck, deckGLLayers);
63805
63805
  "use strict";
63806
63806
  __webpack_require__.r(__webpack_exports__);
63807
63807
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return GeoCellLayer; });
63808
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
63808
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/layers");
63809
63809
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__);
63810
63810
 
63811
63811
 
@@ -63891,7 +63891,7 @@ GeoCellLayer.defaultProps = defaultProps;
63891
63891
  "use strict";
63892
63892
  __webpack_require__.r(__webpack_exports__);
63893
63893
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return GreatCircleLayer; });
63894
- /* harmony import */ var _deck_gl_layers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/layers */ "@deck.gl/core");
63894
+ /* harmony import */ var _deck_gl_layers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/layers */ "@deck.gl/layers");
63895
63895
  /* harmony import */ var _deck_gl_layers__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_layers__WEBPACK_IMPORTED_MODULE_0__);
63896
63896
  // Copyright (c) 2015 - 2017 Uber Technologies, Inc.
63897
63897
  //
@@ -63939,7 +63939,7 @@ __webpack_require__.r(__webpack_exports__);
63939
63939
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return H3ClusterLayer; });
63940
63940
  /* harmony import */ var h3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! h3-js */ "h3-js");
63941
63941
  /* harmony import */ var h3_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(h3_js__WEBPACK_IMPORTED_MODULE_0__);
63942
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
63942
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/layers");
63943
63943
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_1__);
63944
63944
  /* harmony import */ var _geo_cell_layer_GeoCellLayer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../geo-cell-layer/GeoCellLayer */ "./src/geo-cell-layer/GeoCellLayer.js");
63945
63945
 
@@ -64014,7 +64014,7 @@ __webpack_require__.r(__webpack_exports__);
64014
64014
  /* harmony import */ var h3_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! h3-js */ "h3-js");
64015
64015
  /* harmony import */ var h3_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(h3_js__WEBPACK_IMPORTED_MODULE_0__);
64016
64016
  /* harmony import */ var _math_gl_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @math.gl/core */ "../../node_modules/@math.gl/core/dist/esm/index.js");
64017
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
64017
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/layers");
64018
64018
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_2__);
64019
64019
 
64020
64020
 
@@ -64612,7 +64612,7 @@ __webpack_require__.r(__webpack_exports__);
64612
64612
  /* harmony import */ var _luma_gl_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @luma.gl/core */ "@luma.gl/core");
64613
64613
  /* harmony import */ var _luma_gl_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_luma_gl_core__WEBPACK_IMPORTED_MODULE_1__);
64614
64614
  /* harmony import */ var _luma_gl_constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @luma.gl/constants */ "../../node_modules/@luma.gl/constants/dist/esm/index.js");
64615
- /* harmony import */ var _deck_gl_mesh_layers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @deck.gl/mesh-layers */ "@deck.gl/core");
64615
+ /* harmony import */ var _deck_gl_mesh_layers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @deck.gl/mesh-layers */ "@deck.gl/layers");
64616
64616
  /* harmony import */ var _deck_gl_mesh_layers__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_mesh_layers__WEBPACK_IMPORTED_MODULE_3__);
64617
64617
  /* harmony import */ var _mesh_layer_vertex_glsl__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./mesh-layer-vertex.glsl */ "./src/mesh-layer/mesh-layer-vertex.glsl.js");
64618
64618
  /* harmony import */ var _mesh_layer_fragment_glsl__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./mesh-layer-fragment.glsl */ "./src/mesh-layer/mesh-layer-fragment.glsl.js");
@@ -64986,7 +64986,7 @@ function findIndex(array, predicate, startIndex, endIndex) {
64986
64986
  "use strict";
64987
64987
  __webpack_require__.r(__webpack_exports__);
64988
64988
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return MVTLayer; });
64989
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
64989
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/layers");
64990
64990
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__);
64991
64991
  /* harmony import */ var _math_gl_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @math.gl/core */ "../../node_modules/@math.gl/core/dist/esm/index.js");
64992
64992
  /* harmony import */ var _loaders_gl_mvt__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @loaders.gl/mvt */ "../../node_modules/@loaders.gl/mvt/dist/esm/index.js");
@@ -65007,7 +65007,7 @@ __webpack_require__.r(__webpack_exports__);
65007
65007
 
65008
65008
 
65009
65009
  const WORLD_SIZE = 512;
65010
- const defaultProps = {
65010
+ const defaultProps = { ..._deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["GeoJsonLayer"].defaultProps,
65011
65011
  uniqueIdProperty: {
65012
65012
  type: 'string',
65013
65013
  value: ''
@@ -65018,8 +65018,11 @@ const defaultProps = {
65018
65018
  };
65019
65019
  class MVTLayer extends _tile_layer_tile_layer__WEBPACK_IMPORTED_MODULE_4__["default"] {
65020
65020
  initializeState() {
65021
- super.initializeState();
65021
+ super.initializeState(); // GlobeView doesn't work well with binary data
65022
+
65023
+ const binary = this.context.viewport.resolution !== undefined ? false : this.props.binary;
65022
65024
  this.setState({
65025
+ binary,
65023
65026
  data: null,
65024
65027
  tileJSON: null
65025
65028
  });
@@ -65143,7 +65146,9 @@ class MVTLayer extends _tile_layer_tile_layer__WEBPACK_IMPORTED_MODULE_4__["defa
65143
65146
 
65144
65147
  let loadOptions = this.getLoadOptions();
65145
65148
  const {
65146
- binary,
65149
+ binary
65150
+ } = this.state;
65151
+ const {
65147
65152
  fetch
65148
65153
  } = this.props;
65149
65154
  const {
@@ -65199,7 +65204,7 @@ class MVTLayer extends _tile_layer_tile_layer__WEBPACK_IMPORTED_MODULE_4__["defa
65199
65204
 
65200
65205
  const subLayers = super.renderSubLayers(props);
65201
65206
 
65202
- if (this.props.binary && !(subLayers instanceof _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["GeoJsonLayer"])) {
65207
+ if (this.state.binary && !(subLayers instanceof _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["GeoJsonLayer"])) {
65203
65208
  _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__["log"].warn('renderSubLayers() must return GeoJsonLayer when using binary:true')();
65204
65209
  }
65205
65210
 
@@ -65244,7 +65249,7 @@ class MVTLayer extends _tile_layer_tile_layer__WEBPACK_IMPORTED_MODULE_4__["defa
65244
65249
  const info = super.getPickingInfo(params);
65245
65250
  const isWGS84 = this.context.viewport.resolution;
65246
65251
 
65247
- if (this.props.binary && info.index !== -1) {
65252
+ if (this.state.binary && info.index !== -1) {
65248
65253
  const {
65249
65254
  data
65250
65255
  } = params.sourceLayer.props;
@@ -65270,12 +65275,12 @@ class MVTLayer extends _tile_layer_tile_layer__WEBPACK_IMPORTED_MODULE_4__["defa
65270
65275
  getHighlightedObjectIndex(tile) {
65271
65276
  const {
65272
65277
  hoveredFeatureId,
65273
- hoveredFeatureLayerName
65278
+ hoveredFeatureLayerName,
65279
+ binary
65274
65280
  } = this.state;
65275
65281
  const {
65276
65282
  uniqueIdProperty,
65277
- highlightedFeatureId,
65278
- binary
65283
+ highlightedFeatureId
65279
65284
  } = this.props;
65280
65285
  const data = tile.content;
65281
65286
  const isHighlighted = isFeatureIdDefined(highlightedFeatureId);
@@ -65358,7 +65363,7 @@ class MVTLayer extends _tile_layer_tile_layer__WEBPACK_IMPORTED_MODULE_4__["defa
65358
65363
  return null;
65359
65364
  }
65360
65365
 
65361
- if (this.props.binary && Array.isArray(tile.content) && !tile.content.length) {
65366
+ if (this.state.binary && Array.isArray(tile.content) && !tile.content.length) {
65362
65367
  // TODO: @loaders.gl/mvt returns [] when no content. It should return a valid empty binary.
65363
65368
  // https://github.com/visgl/loaders.gl/pull/1137
65364
65369
  return [];
@@ -65366,7 +65371,7 @@ class MVTLayer extends _tile_layer_tile_layer__WEBPACK_IMPORTED_MODULE_4__["defa
65366
65371
 
65367
65372
  if (tile._contentWGS84 === undefined) {
65368
65373
  // Create a cache to transform only once
65369
- const content = this.props.binary ? Object(_loaders_gl_gis__WEBPACK_IMPORTED_MODULE_3__["binaryToGeojson"])(tile.content) : tile.content;
65374
+ const content = this.state.binary ? Object(_loaders_gl_gis__WEBPACK_IMPORTED_MODULE_3__["binaryToGeojson"])(tile.content) : tile.content;
65370
65375
  tile._contentWGS84 = content.map(feature => transformTileCoordsToWGS84(feature, tile.bbox, this.context.viewport));
65371
65376
  }
65372
65377
 
@@ -65850,7 +65855,7 @@ function getS2Polygon(token) {
65850
65855
  "use strict";
65851
65856
  __webpack_require__.r(__webpack_exports__);
65852
65857
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return TerrainLayer; });
65853
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
65858
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/layers");
65854
65859
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__);
65855
65860
  /* harmony import */ var _loaders_gl_terrain__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @loaders.gl/terrain */ "../../node_modules/@loaders.gl/terrain/dist/esm/index.js");
65856
65861
  /* harmony import */ var _tile_layer_tile_layer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../tile-layer/tile-layer */ "./src/tile-layer/tile-layer.js");
@@ -66183,7 +66188,7 @@ __webpack_require__.r(__webpack_exports__);
66183
66188
  /* harmony import */ var _luma_gl_constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @luma.gl/constants */ "../../node_modules/@luma.gl/constants/dist/esm/index.js");
66184
66189
  /* harmony import */ var _luma_gl_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @luma.gl/core */ "@luma.gl/core");
66185
66190
  /* harmony import */ var _luma_gl_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_luma_gl_core__WEBPACK_IMPORTED_MODULE_1__);
66186
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
66191
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/layers");
66187
66192
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_2__);
66188
66193
  /* harmony import */ var _mesh_layer_mesh_layer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../mesh-layer/mesh-layer */ "./src/mesh-layer/mesh-layer.js");
66189
66194
  /* harmony import */ var _loaders_gl_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @loaders.gl/core */ "../../node_modules/@loaders.gl/core/dist/esm/index.js");
@@ -66645,7 +66650,7 @@ Tile3DLayer.defaultProps = defaultProps;
66645
66650
  "use strict";
66646
66651
  __webpack_require__.r(__webpack_exports__);
66647
66652
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return Tile2DHeader; });
66648
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
66653
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/layers");
66649
66654
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__);
66650
66655
  /* eslint-env browser */
66651
66656
 
@@ -67032,7 +67037,7 @@ function getOSMTileIndices(viewport, maxZ, zRange, bounds) {
67032
67037
  "use strict";
67033
67038
  __webpack_require__.r(__webpack_exports__);
67034
67039
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return TileLayer; });
67035
- /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/core");
67040
+ /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/core */ "@deck.gl/layers");
67036
67041
  /* harmony import */ var _deck_gl_core__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_core__WEBPACK_IMPORTED_MODULE_0__);
67037
67042
  /* harmony import */ var _tileset_2d__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./tileset-2d */ "./src/tile-layer/tileset-2d.js");
67038
67043
  /* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utils */ "./src/tile-layer/utils.js");
@@ -68098,7 +68103,7 @@ function isURLTemplate(s) {
68098
68103
  "use strict";
68099
68104
  __webpack_require__.r(__webpack_exports__);
68100
68105
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return TripsLayer; });
68101
- /* harmony import */ var _deck_gl_layers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/layers */ "@deck.gl/core");
68106
+ /* harmony import */ var _deck_gl_layers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @deck.gl/layers */ "@deck.gl/layers");
68102
68107
  /* harmony import */ var _deck_gl_layers__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_deck_gl_layers__WEBPACK_IMPORTED_MODULE_0__);
68103
68108
  // Copyright (c) 2015 - 2017 Uber Technologies, Inc.
68104
68109
  //
@@ -68289,14 +68294,14 @@ TripsLayer.defaultProps = defaultProps;
68289
68294
 
68290
68295
  /***/ }),
68291
68296
 
68292
- /***/ "@deck.gl/core":
68297
+ /***/ "@deck.gl/layers":
68293
68298
  /*!***********************!*\
68294
68299
  !*** external "deck" ***!
68295
68300
  \***********************/
68296
68301
  /*! no static exports found */
68297
68302
  /***/ (function(module, exports) {
68298
68303
 
68299
- module.exports = __WEBPACK_EXTERNAL_MODULE__deck_gl_core__;
68304
+ module.exports = __WEBPACK_EXTERNAL_MODULE__deck_gl_layers__;
68300
68305
 
68301
68306
  /***/ }),
68302
68307
 
@@ -11,8 +11,6 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"))
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
15
 
18
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -27,6 +25,8 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
27
25
 
28
26
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
29
27
 
28
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
29
+
30
30
  var _core = require("@deck.gl/core");
31
31
 
32
32
  var _core2 = require("@math.gl/core");
@@ -53,16 +53,17 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
53
53
 
54
54
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
55
55
 
56
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
57
-
58
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
59
-
60
56
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
61
57
 
62
58
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
63
59
 
60
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
61
+
62
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
63
+
64
64
  var WORLD_SIZE = 512;
65
- var defaultProps = {
65
+
66
+ var defaultProps = _objectSpread(_objectSpread({}, _layers.GeoJsonLayer.defaultProps), {}, {
66
67
  uniqueIdProperty: {
67
68
  type: 'string',
68
69
  value: ''
@@ -70,7 +71,7 @@ var defaultProps = {
70
71
  highlightedFeatureId: null,
71
72
  loaders: [_mvt.MVTWorkerLoader],
72
73
  binary: true
73
- };
74
+ });
74
75
 
75
76
  var MVTLayer = function (_TileLayer) {
76
77
  (0, _inherits2.default)(MVTLayer, _TileLayer);
@@ -86,7 +87,9 @@ var MVTLayer = function (_TileLayer) {
86
87
  key: "initializeState",
87
88
  value: function initializeState() {
88
89
  (0, _get2.default)((0, _getPrototypeOf2.default)(MVTLayer.prototype), "initializeState", this).call(this);
90
+ var binary = this.context.viewport.resolution !== undefined ? false : this.props.binary;
89
91
  this.setState({
92
+ binary: binary,
90
93
  data: null,
91
94
  tileJSON: null
92
95
  });
@@ -242,9 +245,8 @@ var MVTLayer = function (_TileLayer) {
242
245
  }
243
246
 
244
247
  var loadOptions = this.getLoadOptions();
245
- var _this$props2 = this.props,
246
- binary = _this$props2.binary,
247
- fetch = _this$props2.fetch;
248
+ var binary = this.state.binary;
249
+ var fetch = this.props.fetch;
248
250
  var signal = tile.signal,
249
251
  x = tile.x,
250
252
  y = tile.y,
@@ -291,7 +293,7 @@ var MVTLayer = function (_TileLayer) {
291
293
 
292
294
  var subLayers = (0, _get2.default)((0, _getPrototypeOf2.default)(MVTLayer.prototype), "renderSubLayers", this).call(this, props);
293
295
 
294
- if (this.props.binary && !(subLayers instanceof _layers.GeoJsonLayer)) {
296
+ if (this.state.binary && !(subLayers instanceof _layers.GeoJsonLayer)) {
295
297
  _core.log.warn('renderSubLayers() must return GeoJsonLayer when using binary:true')();
296
298
  }
297
299
 
@@ -333,7 +335,7 @@ var MVTLayer = function (_TileLayer) {
333
335
  var info = (0, _get2.default)((0, _getPrototypeOf2.default)(MVTLayer.prototype), "getPickingInfo", this).call(this, params);
334
336
  var isWGS84 = this.context.viewport.resolution;
335
337
 
336
- if (this.props.binary && info.index !== -1) {
338
+ if (this.state.binary && info.index !== -1) {
337
339
  var data = params.sourceLayer.props.data;
338
340
  info.object = (0, _gis.binaryToGeojson)(data, {
339
341
  globalFeatureId: info.index
@@ -359,11 +361,11 @@ var MVTLayer = function (_TileLayer) {
359
361
  value: function getHighlightedObjectIndex(tile) {
360
362
  var _this$state2 = this.state,
361
363
  hoveredFeatureId = _this$state2.hoveredFeatureId,
362
- hoveredFeatureLayerName = _this$state2.hoveredFeatureLayerName;
363
- var _this$props3 = this.props,
364
- uniqueIdProperty = _this$props3.uniqueIdProperty,
365
- highlightedFeatureId = _this$props3.highlightedFeatureId,
366
- binary = _this$props3.binary;
364
+ hoveredFeatureLayerName = _this$state2.hoveredFeatureLayerName,
365
+ binary = _this$state2.binary;
366
+ var _this$props2 = this.props,
367
+ uniqueIdProperty = _this$props2.uniqueIdProperty,
368
+ highlightedFeatureId = _this$props2.highlightedFeatureId;
367
369
  var data = tile.content;
368
370
  var isHighlighted = isFeatureIdDefined(highlightedFeatureId);
369
371
  var isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId) || isHighlighted;
@@ -454,12 +456,12 @@ var MVTLayer = function (_TileLayer) {
454
456
  return null;
455
457
  }
456
458
 
457
- if (_this.props.binary && Array.isArray(tile.content) && !tile.content.length) {
459
+ if (_this.state.binary && Array.isArray(tile.content) && !tile.content.length) {
458
460
  return [];
459
461
  }
460
462
 
461
463
  if (tile._contentWGS84 === undefined) {
462
- var content = _this.props.binary ? (0, _gis.binaryToGeojson)(tile.content) : tile.content;
464
+ var content = _this.state.binary ? (0, _gis.binaryToGeojson)(tile.content) : tile.content;
463
465
  tile._contentWGS84 = content.map(function (feature) {
464
466
  return transformTileCoordsToWGS84(feature, tile.bbox, _this.context.viewport);
465
467
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/mvt-layer/mvt-layer.js"],"names":["WORLD_SIZE","defaultProps","uniqueIdProperty","type","value","highlightedFeatureId","loaders","MVTWorkerLoader","binary","MVTLayer","setState","data","tileJSON","state","tileset","props","oldProps","context","changeFlags","dataChanged","_updateTileData","_setWGS84PropertyForTiles","highlightColor","Array","isArray","onDataLoad","fetch","propName","layer","raiseError","tilejson","tiles","opts","Number","isFinite","minzoom","minZoom","maxzoom","maxZoom","tile","url","Promise","reject","loadOptions","getLoadOptions","signal","x","y","z","mimeType","mvt","coordinates","viewport","resolution","tileIndex","gis","format","worldScale","Math","pow","xScale","yScale","xOffset","yOffset","modelMatrix","Matrix4","scale","autoHighlight","coordinateOrigin","coordinateSystem","COORDINATE_SYSTEM","CARTESIAN","extensions","ClipExtension","subLayers","GeoJsonLayer","log","warn","info","hoveredFeatureId","hoveredFeatureLayerName","hoveredFeature","object","newHoveredFeatureId","newHoveredFeatureLayerName","getFeatureUniqueId","getFeatureLayerName","params","isWGS84","index","sourceLayer","globalFeatureId","transformTileCoordsToWGS84","bbox","highlightedObjectIndex","getHighlightedObjectIndex","content","isHighlighted","isFeatureIdDefined","isFeatureIdPresent","featureIdToHighlight","findIndex","feature","isMatchingId","isMatchingLayer","maxObjects","deck","width","height","layerIds","id","pickObjects","maxFeatures","features","_pickObjects","featureCache","Set","renderedFeatures","f","featureId","undefined","push","has","add","selectedTiles","forEach","hasOwnProperty","Object","defineProperty","get","length","_contentWGS84","map","TileLayer","properties","layerName","geometry","wgs84Geom"],"mappings":"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","sourcesContent":["import {log} from '@deck.gl/core';\nimport {Matrix4} from '@math.gl/core';\nimport {MVTWorkerLoader} from '@loaders.gl/mvt';\nimport {binaryToGeojson} from '@loaders.gl/gis';\nimport {COORDINATE_SYSTEM} from '@deck.gl/core';\nimport {ClipExtension} from '@deck.gl/extensions';\n\nimport TileLayer from '../tile-layer/tile-layer';\nimport {getURLFromTemplate, isURLTemplate} from '../tile-layer/utils';\nimport {transform} from './coordinate-transform';\nimport findIndexBinary from './find-index-binary';\n\nimport {GeoJsonLayer} from '@deck.gl/layers';\n\nconst WORLD_SIZE = 512;\n\nconst defaultProps = {\n uniqueIdProperty: {type: 'string', value: ''},\n highlightedFeatureId: null,\n loaders: [MVTWorkerLoader],\n binary: true\n};\n\nexport default class MVTLayer extends TileLayer {\n initializeState() {\n super.initializeState();\n this.setState({\n data: null,\n tileJSON: null\n });\n }\n\n get isLoaded() {\n return this.state.data && this.state.tileset && super.isLoaded;\n }\n\n updateState({props, oldProps, context, changeFlags}) {\n if (changeFlags.dataChanged) {\n this._updateTileData();\n }\n\n if (this.state.data) {\n super.updateState({props, oldProps, context, changeFlags});\n this._setWGS84PropertyForTiles();\n }\n const {highlightColor} = props;\n if (highlightColor !== oldProps.highlightColor && Array.isArray(highlightColor)) {\n this.setState({highlightColor});\n }\n }\n\n /* eslint-disable complexity */\n async _updateTileData() {\n let {data} = this.props;\n let tileJSON = null;\n\n if (typeof data === 'string' && !isURLTemplate(data)) {\n const {onDataLoad, fetch} = this.props;\n this.setState({data: null, tileJSON: null});\n try {\n tileJSON = await fetch(data, {propName: 'data', layer: this, loaders: []});\n } catch (error) {\n this.raiseError(error, 'loading TileJSON');\n data = null;\n }\n\n if (onDataLoad) {\n onDataLoad(tileJSON);\n }\n } else if (data.tilejson) {\n tileJSON = data;\n }\n\n if (tileJSON) {\n data = tileJSON.tiles;\n }\n\n this.setState({data, tileJSON});\n }\n\n _getTilesetOptions(props) {\n const opts = super._getTilesetOptions(props);\n const {tileJSON} = this.state;\n\n if (tileJSON) {\n if (Number.isFinite(tileJSON.minzoom) && tileJSON.minzoom > props.minZoom) {\n opts.minZoom = tileJSON.minzoom;\n }\n\n if (\n Number.isFinite(tileJSON.maxzoom) &&\n (!Number.isFinite(props.maxZoom) || tileJSON.maxzoom < props.maxZoom)\n ) {\n opts.maxZoom = tileJSON.maxzoom;\n }\n }\n return opts;\n }\n\n /* eslint-disable complexity */\n\n renderLayers() {\n if (!this.state.data) return null;\n return super.renderLayers();\n }\n\n getTileData(tile) {\n const url = getURLFromTemplate(this.state.data, tile);\n if (!url) {\n return Promise.reject('Invalid URL');\n }\n let loadOptions = this.getLoadOptions();\n const {binary, fetch} = this.props;\n const {signal, x, y, z} = tile;\n loadOptions = {\n ...loadOptions,\n mimeType: 'application/x-protobuf',\n mvt: {\n ...loadOptions?.mvt,\n coordinates: this.context.viewport.resolution ? 'wgs84' : 'local',\n tileIndex: {x, y, z}\n // Local worker debug\n // workerUrl: `modules/mvt/dist/mvt-loader.worker.js`\n // Set worker to null to skip web workers\n // workerUrl: null\n },\n gis: binary ? {format: 'binary'} : {}\n };\n return fetch(url, {propName: 'data', layer: this, loadOptions, signal});\n }\n\n renderSubLayers(props) {\n const {tile} = props;\n const worldScale = Math.pow(2, tile.z);\n\n const xScale = WORLD_SIZE / worldScale;\n const yScale = -xScale;\n\n const xOffset = (WORLD_SIZE * tile.x) / worldScale;\n const yOffset = WORLD_SIZE * (1 - tile.y / worldScale);\n\n const modelMatrix = new Matrix4().scale([xScale, yScale, 1]);\n\n props.autoHighlight = false;\n\n if (!this.context.viewport.resolution) {\n props.modelMatrix = modelMatrix;\n props.coordinateOrigin = [xOffset, yOffset, 0];\n props.coordinateSystem = COORDINATE_SYSTEM.CARTESIAN;\n props.extensions = [...(props.extensions || []), new ClipExtension()];\n }\n\n const subLayers = super.renderSubLayers(props);\n\n if (this.props.binary && !(subLayers instanceof GeoJsonLayer)) {\n log.warn('renderSubLayers() must return GeoJsonLayer when using binary:true')();\n }\n\n return subLayers;\n }\n\n _updateAutoHighlight(info) {\n const {uniqueIdProperty} = this.props;\n\n const {hoveredFeatureId, hoveredFeatureLayerName} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId;\n let newHoveredFeatureLayerName;\n\n if (hoveredFeature) {\n newHoveredFeatureId = getFeatureUniqueId(hoveredFeature, uniqueIdProperty);\n newHoveredFeatureLayerName = getFeatureLayerName(hoveredFeature);\n }\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n if (\n hoveredFeatureId !== newHoveredFeatureId ||\n hoveredFeatureLayerName !== newHoveredFeatureLayerName\n ) {\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId,\n hoveredFeatureLayerName: newHoveredFeatureLayerName\n });\n }\n }\n\n getPickingInfo(params) {\n const info = super.getPickingInfo(params);\n\n const isWGS84 = this.context.viewport.resolution;\n\n if (this.props.binary && info.index !== -1) {\n const {data} = params.sourceLayer.props;\n info.object = binaryToGeojson(data, {globalFeatureId: info.index});\n }\n if (info.object && !isWGS84) {\n info.object = transformTileCoordsToWGS84(info.object, info.tile.bbox, this.context.viewport);\n }\n\n return info;\n }\n\n getSubLayerPropsByTile(tile) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile) {\n const {hoveredFeatureId, hoveredFeatureLayerName} = this.state;\n const {uniqueIdProperty, highlightedFeatureId, binary} = this.props;\n const data = tile.content;\n\n const isHighlighted = isFeatureIdDefined(highlightedFeatureId);\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId) || isHighlighted;\n\n if (!isFeatureIdPresent) {\n return -1;\n }\n\n const featureIdToHighlight = isHighlighted ? highlightedFeatureId : hoveredFeatureId;\n\n // Iterable data\n if (Array.isArray(data)) {\n return data.findIndex(feature => {\n const isMatchingId = getFeatureUniqueId(feature, uniqueIdProperty) === featureIdToHighlight;\n const isMatchingLayer =\n isHighlighted || getFeatureLayerName(feature) === hoveredFeatureLayerName;\n return isMatchingId && isMatchingLayer;\n });\n\n // Non-iterable data\n } else if (data && binary) {\n // Get the feature index of the selected item to highlight\n return findIndexBinary(\n data,\n uniqueIdProperty,\n featureIdToHighlight,\n isHighlighted ? '' : hoveredFeatureLayerName\n );\n }\n\n return -1;\n }\n\n _pickObjects(maxObjects) {\n const {deck, viewport} = this.context;\n const width = viewport.width;\n const height = viewport.height;\n const x = viewport.x;\n const y = viewport.y;\n const layerIds = [this.id];\n return deck.pickObjects({x, y, width, height, layerIds, maxObjects});\n }\n\n getRenderedFeatures(maxFeatures = null) {\n const features = this._pickObjects(maxFeatures);\n const featureCache = new Set();\n const renderedFeatures = [];\n\n for (const f of features) {\n const featureId = getFeatureUniqueId(f.object, this.props.uniqueIdProperty);\n\n if (featureId === undefined) {\n // we have no id for the feature, we just add to the list\n renderedFeatures.push(f.object);\n } else if (!featureCache.has(featureId)) {\n // Add removing duplicates\n featureCache.add(featureId);\n renderedFeatures.push(f.object);\n }\n }\n\n return renderedFeatures;\n }\n\n _setWGS84PropertyForTiles() {\n const propName = 'dataInWGS84';\n const {tileset} = this.state;\n\n tileset.selectedTiles.forEach(tile => {\n if (!tile.hasOwnProperty(propName)) {\n // eslint-disable-next-line accessor-pairs\n Object.defineProperty(tile, propName, {\n get: () => {\n // Still loading or encountered an error\n if (!tile.content) {\n return null;\n }\n\n if (this.props.binary && Array.isArray(tile.content) && !tile.content.length) {\n // TODO: @loaders.gl/mvt returns [] when no content. It should return a valid empty binary.\n // https://github.com/visgl/loaders.gl/pull/1137\n return [];\n }\n\n if (tile._contentWGS84 === undefined) {\n // Create a cache to transform only once\n const content = this.props.binary ? binaryToGeojson(tile.content) : tile.content;\n tile._contentWGS84 = content.map(feature =>\n transformTileCoordsToWGS84(feature, tile.bbox, this.context.viewport)\n );\n }\n return tile._contentWGS84;\n }\n });\n }\n });\n }\n}\n\nfunction getFeatureUniqueId(feature, uniqueIdProperty) {\n if (uniqueIdProperty) {\n return feature.properties[uniqueIdProperty];\n }\n\n if ('id' in feature) {\n return feature.id;\n }\n\n return undefined;\n}\n\nfunction getFeatureLayerName(feature) {\n return feature.properties?.layerName || null;\n}\n\nfunction isFeatureIdDefined(value) {\n return value !== undefined && value !== null && value !== '';\n}\n\nfunction transformTileCoordsToWGS84(object, bbox, viewport) {\n const feature = {\n ...object,\n geometry: {\n type: object.geometry.type\n }\n };\n\n // eslint-disable-next-line accessor-pairs\n Object.defineProperty(feature.geometry, 'coordinates', {\n get: () => {\n const wgs84Geom = transform(object.geometry, bbox, viewport);\n return wgs84Geom.coordinates;\n }\n });\n\n return feature;\n}\n\nMVTLayer.layerName = 'MVTLayer';\nMVTLayer.defaultProps = defaultProps;\n"],"file":"mvt-layer.js"}
1
+ {"version":3,"sources":["../../../src/mvt-layer/mvt-layer.js"],"names":["WORLD_SIZE","defaultProps","GeoJsonLayer","uniqueIdProperty","type","value","highlightedFeatureId","loaders","MVTWorkerLoader","binary","MVTLayer","context","viewport","resolution","undefined","props","setState","data","tileJSON","state","tileset","oldProps","changeFlags","dataChanged","_updateTileData","_setWGS84PropertyForTiles","highlightColor","Array","isArray","onDataLoad","fetch","propName","layer","raiseError","tilejson","tiles","opts","Number","isFinite","minzoom","minZoom","maxzoom","maxZoom","tile","url","Promise","reject","loadOptions","getLoadOptions","signal","x","y","z","mimeType","mvt","coordinates","tileIndex","gis","format","worldScale","Math","pow","xScale","yScale","xOffset","yOffset","modelMatrix","Matrix4","scale","autoHighlight","coordinateOrigin","coordinateSystem","COORDINATE_SYSTEM","CARTESIAN","extensions","ClipExtension","subLayers","log","warn","info","hoveredFeatureId","hoveredFeatureLayerName","hoveredFeature","object","newHoveredFeatureId","newHoveredFeatureLayerName","getFeatureUniqueId","getFeatureLayerName","params","isWGS84","index","sourceLayer","globalFeatureId","transformTileCoordsToWGS84","bbox","highlightedObjectIndex","getHighlightedObjectIndex","content","isHighlighted","isFeatureIdDefined","isFeatureIdPresent","featureIdToHighlight","findIndex","feature","isMatchingId","isMatchingLayer","maxObjects","deck","width","height","layerIds","id","pickObjects","maxFeatures","features","_pickObjects","featureCache","Set","renderedFeatures","f","featureId","push","has","add","selectedTiles","forEach","hasOwnProperty","Object","defineProperty","get","length","_contentWGS84","map","TileLayer","properties","layerName","geometry","wgs84Geom"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;;;;;;;AAEA,IAAMA,UAAU,GAAG,GAAnB;;AAEA,IAAMC,YAAY,mCACbC,qBAAaD,YADA;AAEhBE,EAAAA,gBAAgB,EAAE;AAACC,IAAAA,IAAI,EAAE,QAAP;AAAiBC,IAAAA,KAAK,EAAE;AAAxB,GAFF;AAGhBC,EAAAA,oBAAoB,EAAE,IAHN;AAIhBC,EAAAA,OAAO,EAAE,CAACC,oBAAD,CAJO;AAKhBC,EAAAA,MAAM,EAAE;AALQ,EAAlB;;IAQqBC,Q;;;;;;;;;;;;WACnB,2BAAkB;AAChB;AAEA,UAAMD,MAAM,GAAG,KAAKE,OAAL,CAAaC,QAAb,CAAsBC,UAAtB,KAAqCC,SAArC,GAAiD,KAAjD,GAAyD,KAAKC,KAAL,CAAWN,MAAnF;AACA,WAAKO,QAAL,CAAc;AACZP,QAAAA,MAAM,EAANA,MADY;AAEZQ,QAAAA,IAAI,EAAE,IAFM;AAGZC,QAAAA,QAAQ,EAAE;AAHE,OAAd;AAKD;;;SAED,eAAe;AACb,aAAO,KAAKC,KAAL,CAAWF,IAAX,IAAmB,KAAKE,KAAL,CAAWC,OAA9B,2FAAP;AACD;;;WAED,2BAAqD;AAAA,UAAxCL,KAAwC,QAAxCA,KAAwC;AAAA,UAAjCM,QAAiC,QAAjCA,QAAiC;AAAA,UAAvBV,OAAuB,QAAvBA,OAAuB;AAAA,UAAdW,WAAc,QAAdA,WAAc;;AACnD,UAAIA,WAAW,CAACC,WAAhB,EAA6B;AAC3B,aAAKC,eAAL;AACD;;AAED,UAAI,KAAKL,KAAL,CAAWF,IAAf,EAAqB;AACnB,8GAAkB;AAACF,UAAAA,KAAK,EAALA,KAAD;AAAQM,UAAAA,QAAQ,EAARA,QAAR;AAAkBV,UAAAA,OAAO,EAAPA,OAAlB;AAA2BW,UAAAA,WAAW,EAAXA;AAA3B,SAAlB;;AACA,aAAKG,yBAAL;AACD;;AACD,UAAOC,cAAP,GAAyBX,KAAzB,CAAOW,cAAP;;AACA,UAAIA,cAAc,KAAKL,QAAQ,CAACK,cAA5B,IAA8CC,KAAK,CAACC,OAAN,CAAcF,cAAd,CAAlD,EAAiF;AAC/E,aAAKV,QAAL,CAAc;AAACU,UAAAA,cAAc,EAAdA;AAAD,SAAd;AACD;AACF;;;;uFAGD;AAAA;;AAAA;AAAA;AAAA;AAAA;AACOT,gBAAAA,IADP,GACe,KAAKF,KADpB,CACOE,IADP;AAEMC,gBAAAA,QAFN,GAEiB,IAFjB;;AAAA,sBAIM,OAAOD,IAAP,KAAgB,QAAhB,IAA4B,CAAC,0BAAcA,IAAd,CAJnC;AAAA;AAAA;AAAA;;AAAA,8BAKgC,KAAKF,KALrC,EAKWc,UALX,eAKWA,UALX,EAKuBC,KALvB,eAKuBA,KALvB;AAMI,qBAAKd,QAAL,CAAc;AAACC,kBAAAA,IAAI,EAAE,IAAP;AAAaC,kBAAAA,QAAQ,EAAE;AAAvB,iBAAd;AANJ;AAAA;AAAA,uBAQuBY,KAAK,CAACb,IAAD,EAAO;AAACc,kBAAAA,QAAQ,EAAE,MAAX;AAAmBC,kBAAAA,KAAK,EAAE,IAA1B;AAAgCzB,kBAAAA,OAAO,EAAE;AAAzC,iBAAP,CAR5B;;AAAA;AAQMW,gBAAAA,QARN;AAAA;AAAA;;AAAA;AAAA;AAAA;AAUM,qBAAKe,UAAL,cAAuB,kBAAvB;AACAhB,gBAAAA,IAAI,GAAG,IAAP;;AAXN;AAcI,oBAAIY,UAAJ,EAAgB;AACdA,kBAAAA,UAAU,CAACX,QAAD,CAAV;AACD;;AAhBL;AAAA;;AAAA;AAiBS,oBAAID,IAAI,CAACiB,QAAT,EAAmB;AACxBhB,kBAAAA,QAAQ,GAAGD,IAAX;AACD;;AAnBH;AAqBE,oBAAIC,QAAJ,EAAc;AACZD,kBAAAA,IAAI,GAAGC,QAAQ,CAACiB,KAAhB;AACD;;AAED,qBAAKnB,QAAL,CAAc;AAACC,kBAAAA,IAAI,EAAJA,IAAD;AAAOC,kBAAAA,QAAQ,EAARA;AAAP,iBAAd;;AAzBF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WA4BA,4BAAmBH,KAAnB,EAA0B;AACxB,UAAMqB,IAAI,gHAA4BrB,KAA5B,CAAV;AACA,UAAOG,QAAP,GAAmB,KAAKC,KAAxB,CAAOD,QAAP;;AAEA,UAAIA,QAAJ,EAAc;AACZ,YAAImB,MAAM,CAACC,QAAP,CAAgBpB,QAAQ,CAACqB,OAAzB,KAAqCrB,QAAQ,CAACqB,OAAT,GAAmBxB,KAAK,CAACyB,OAAlE,EAA2E;AACzEJ,UAAAA,IAAI,CAACI,OAAL,GAAetB,QAAQ,CAACqB,OAAxB;AACD;;AAED,YACEF,MAAM,CAACC,QAAP,CAAgBpB,QAAQ,CAACuB,OAAzB,MACC,CAACJ,MAAM,CAACC,QAAP,CAAgBvB,KAAK,CAAC2B,OAAtB,CAAD,IAAmCxB,QAAQ,CAACuB,OAAT,GAAmB1B,KAAK,CAAC2B,OAD7D,CADF,EAGE;AACAN,UAAAA,IAAI,CAACM,OAAL,GAAexB,QAAQ,CAACuB,OAAxB;AACD;AACF;;AACD,aAAOL,IAAP;AACD;;;WAID,wBAAe;AACb,UAAI,CAAC,KAAKjB,KAAL,CAAWF,IAAhB,EAAsB,OAAO,IAAP;AACtB;AACD;;;WAED,qBAAY0B,IAAZ,EAAkB;AAAA;;AAChB,UAAMC,GAAG,GAAG,+BAAmB,KAAKzB,KAAL,CAAWF,IAA9B,EAAoC0B,IAApC,CAAZ;;AACA,UAAI,CAACC,GAAL,EAAU;AACR,eAAOC,OAAO,CAACC,MAAR,CAAe,aAAf,CAAP;AACD;;AACD,UAAIC,WAAW,GAAG,KAAKC,cAAL,EAAlB;AACA,UAAOvC,MAAP,GAAiB,KAAKU,KAAtB,CAAOV,MAAP;AACA,UAAOqB,KAAP,GAAgB,KAAKf,KAArB,CAAOe,KAAP;AACA,UAAOmB,MAAP,GAA0BN,IAA1B,CAAOM,MAAP;AAAA,UAAeC,CAAf,GAA0BP,IAA1B,CAAeO,CAAf;AAAA,UAAkBC,CAAlB,GAA0BR,IAA1B,CAAkBQ,CAAlB;AAAA,UAAqBC,CAArB,GAA0BT,IAA1B,CAAqBS,CAArB;AACAL,MAAAA,WAAW,mCACNA,WADM;AAETM,QAAAA,QAAQ,EAAE,wBAFD;AAGTC,QAAAA,GAAG,kDACEP,WADF,iDACE,aAAaO,GADf;AAEDC,UAAAA,WAAW,EAAE,KAAK5C,OAAL,CAAaC,QAAb,CAAsBC,UAAtB,GAAmC,OAAnC,GAA6C,OAFzD;AAGD2C,UAAAA,SAAS,EAAE;AAACN,YAAAA,CAAC,EAADA,CAAD;AAAIC,YAAAA,CAAC,EAADA,CAAJ;AAAOC,YAAAA,CAAC,EAADA;AAAP;AAHV,UAHM;AAYTK,QAAAA,GAAG,EAAEhD,MAAM,GAAG;AAACiD,UAAAA,MAAM,EAAE;AAAT,SAAH,GAAwB;AAZ1B,QAAX;AAcA,aAAO5B,KAAK,CAACc,GAAD,EAAM;AAACb,QAAAA,QAAQ,EAAE,MAAX;AAAmBC,QAAAA,KAAK,EAAE,IAA1B;AAAgCe,QAAAA,WAAW,EAAXA,WAAhC;AAA6CE,QAAAA,MAAM,EAANA;AAA7C,OAAN,CAAZ;AACD;;;WAED,yBAAgBlC,KAAhB,EAAuB;AACrB,UAAO4B,IAAP,GAAe5B,KAAf,CAAO4B,IAAP;AACA,UAAMgB,UAAU,GAAGC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYlB,IAAI,CAACS,CAAjB,CAAnB;AAEA,UAAMU,MAAM,GAAG9D,UAAU,GAAG2D,UAA5B;AACA,UAAMI,MAAM,GAAG,CAACD,MAAhB;AAEA,UAAME,OAAO,GAAIhE,UAAU,GAAG2C,IAAI,CAACO,CAAnB,GAAwBS,UAAxC;AACA,UAAMM,OAAO,GAAGjE,UAAU,IAAI,IAAI2C,IAAI,CAACQ,CAAL,GAASQ,UAAjB,CAA1B;AAEA,UAAMO,WAAW,GAAG,IAAIC,cAAJ,GAAcC,KAAd,CAAoB,CAACN,MAAD,EAASC,MAAT,EAAiB,CAAjB,CAApB,CAApB;AAEAhD,MAAAA,KAAK,CAACsD,aAAN,GAAsB,KAAtB;;AAEA,UAAI,CAAC,KAAK1D,OAAL,CAAaC,QAAb,CAAsBC,UAA3B,EAAuC;AACrCE,QAAAA,KAAK,CAACmD,WAAN,GAAoBA,WAApB;AACAnD,QAAAA,KAAK,CAACuD,gBAAN,GAAyB,CAACN,OAAD,EAAUC,OAAV,EAAmB,CAAnB,CAAzB;AACAlD,QAAAA,KAAK,CAACwD,gBAAN,GAAyBC,wBAAkBC,SAA3C;AACA1D,QAAAA,KAAK,CAAC2D,UAAN,8CAAwB3D,KAAK,CAAC2D,UAAN,IAAoB,EAA5C,IAAiD,IAAIC,yBAAJ,EAAjD;AACD;;AAED,UAAMC,SAAS,6GAAyB7D,KAAzB,CAAf;;AAEA,UAAI,KAAKI,KAAL,CAAWV,MAAX,IAAqB,EAAEmE,SAAS,YAAY1E,oBAAvB,CAAzB,EAA+D;AAC7D2E,kBAAIC,IAAJ,CAAS,mEAAT;AACD;;AAED,aAAOF,SAAP;AACD;;;WAED,8BAAqBG,IAArB,EAA2B;AACzB,UAAO5E,gBAAP,GAA2B,KAAKY,KAAhC,CAAOZ,gBAAP;AAEA,wBAAoD,KAAKgB,KAAzD;AAAA,UAAO6D,gBAAP,eAAOA,gBAAP;AAAA,UAAyBC,uBAAzB,eAAyBA,uBAAzB;AACA,UAAMC,cAAc,GAAGH,IAAI,CAACI,MAA5B;AACA,UAAIC,mBAAJ;AACA,UAAIC,0BAAJ;;AAEA,UAAIH,cAAJ,EAAoB;AAClBE,QAAAA,mBAAmB,GAAGE,kBAAkB,CAACJ,cAAD,EAAiB/E,gBAAjB,CAAxC;AACAkF,QAAAA,0BAA0B,GAAGE,mBAAmB,CAACL,cAAD,CAAhD;AACD;;AACD,UAAKxD,cAAL,GAAuB,KAAKX,KAA5B,CAAKW,cAAL;;AACA,UAAI,OAAOA,cAAP,KAA0B,UAA9B,EAA0C;AACxCA,QAAAA,cAAc,GAAGA,cAAc,CAACqD,IAAD,CAA/B;AACD;;AAED,UACEC,gBAAgB,KAAKI,mBAArB,IACAH,uBAAuB,KAAKI,0BAF9B,EAGE;AACA,aAAKrE,QAAL,CAAc;AACZU,UAAAA,cAAc,EAAdA,cADY;AAEZsD,UAAAA,gBAAgB,EAAEI,mBAFN;AAGZH,UAAAA,uBAAuB,EAAEI;AAHb,SAAd;AAKD;AACF;;;WAED,wBAAeG,MAAf,EAAuB;AACrB,UAAMT,IAAI,4GAAwBS,MAAxB,CAAV;AAEA,UAAMC,OAAO,GAAG,KAAK9E,OAAL,CAAaC,QAAb,CAAsBC,UAAtC;;AAEA,UAAI,KAAKM,KAAL,CAAWV,MAAX,IAAqBsE,IAAI,CAACW,KAAL,KAAe,CAAC,CAAzC,EAA4C;AAC1C,YAAOzE,IAAP,GAAeuE,MAAM,CAACG,WAAP,CAAmB5E,KAAlC,CAAOE,IAAP;AACA8D,QAAAA,IAAI,CAACI,MAAL,GAAc,0BAAgBlE,IAAhB,EAAsB;AAAC2E,UAAAA,eAAe,EAAEb,IAAI,CAACW;AAAvB,SAAtB,CAAd;AACD;;AACD,UAAIX,IAAI,CAACI,MAAL,IAAe,CAACM,OAApB,EAA6B;AAC3BV,QAAAA,IAAI,CAACI,MAAL,GAAcU,0BAA0B,CAACd,IAAI,CAACI,MAAN,EAAcJ,IAAI,CAACpC,IAAL,CAAUmD,IAAxB,EAA8B,KAAKnF,OAAL,CAAaC,QAA3C,CAAxC;AACD;;AAED,aAAOmE,IAAP;AACD;;;WAED,gCAAuBpC,IAAvB,EAA6B;AAC3B,aAAO;AACLoD,QAAAA,sBAAsB,EAAE,KAAKC,yBAAL,CAA+BrD,IAA/B,CADnB;AAELjB,QAAAA,cAAc,EAAE,KAAKP,KAAL,CAAWO;AAFtB,OAAP;AAID;;;WAED,mCAA0BiB,IAA1B,EAAgC;AAC9B,yBAA4D,KAAKxB,KAAjE;AAAA,UAAO6D,gBAAP,gBAAOA,gBAAP;AAAA,UAAyBC,uBAAzB,gBAAyBA,uBAAzB;AAAA,UAAkDxE,MAAlD,gBAAkDA,MAAlD;AACA,yBAAiD,KAAKM,KAAtD;AAAA,UAAOZ,gBAAP,gBAAOA,gBAAP;AAAA,UAAyBG,oBAAzB,gBAAyBA,oBAAzB;AACA,UAAMW,IAAI,GAAG0B,IAAI,CAACsD,OAAlB;AAEA,UAAMC,aAAa,GAAGC,kBAAkB,CAAC7F,oBAAD,CAAxC;AACA,UAAM8F,kBAAkB,GAAGD,kBAAkB,CAACnB,gBAAD,CAAlB,IAAwCkB,aAAnE;;AAEA,UAAI,CAACE,kBAAL,EAAyB;AACvB,eAAO,CAAC,CAAR;AACD;;AAED,UAAMC,oBAAoB,GAAGH,aAAa,GAAG5F,oBAAH,GAA0B0E,gBAApE;;AAGA,UAAIrD,KAAK,CAACC,OAAN,CAAcX,IAAd,CAAJ,EAAyB;AACvB,eAAOA,IAAI,CAACqF,SAAL,CAAe,UAAAC,OAAO,EAAI;AAC/B,cAAMC,YAAY,GAAGlB,kBAAkB,CAACiB,OAAD,EAAUpG,gBAAV,CAAlB,KAAkDkG,oBAAvE;AACA,cAAMI,eAAe,GACnBP,aAAa,IAAIX,mBAAmB,CAACgB,OAAD,CAAnB,KAAiCtB,uBADpD;AAEA,iBAAOuB,YAAY,IAAIC,eAAvB;AACD,SALM,CAAP;AAQD,OATD,MASO,IAAIxF,IAAI,IAAIR,MAAZ,EAAoB;AAEzB,eAAO,8BACLQ,IADK,EAELd,gBAFK,EAGLkG,oBAHK,EAILH,aAAa,GAAG,EAAH,GAAQjB,uBAJhB,CAAP;AAMD;;AAED,aAAO,CAAC,CAAR;AACD;;;WAED,sBAAayB,UAAb,EAAyB;AACvB,0BAAyB,KAAK/F,OAA9B;AAAA,UAAOgG,IAAP,iBAAOA,IAAP;AAAA,UAAa/F,QAAb,iBAAaA,QAAb;AACA,UAAMgG,KAAK,GAAGhG,QAAQ,CAACgG,KAAvB;AACA,UAAMC,MAAM,GAAGjG,QAAQ,CAACiG,MAAxB;AACA,UAAM3D,CAAC,GAAGtC,QAAQ,CAACsC,CAAnB;AACA,UAAMC,CAAC,GAAGvC,QAAQ,CAACuC,CAAnB;AACA,UAAM2D,QAAQ,GAAG,CAAC,KAAKC,EAAN,CAAjB;AACA,aAAOJ,IAAI,CAACK,WAAL,CAAiB;AAAC9D,QAAAA,CAAC,EAADA,CAAD;AAAIC,QAAAA,CAAC,EAADA,CAAJ;AAAOyD,QAAAA,KAAK,EAALA,KAAP;AAAcC,QAAAA,MAAM,EAANA,MAAd;AAAsBC,QAAAA,QAAQ,EAARA,QAAtB;AAAgCJ,QAAAA,UAAU,EAAVA;AAAhC,OAAjB,CAAP;AACD;;;WAED,+BAAwC;AAAA,UAApBO,WAAoB,uEAAN,IAAM;;AACtC,UAAMC,QAAQ,GAAG,KAAKC,YAAL,CAAkBF,WAAlB,CAAjB;;AACA,UAAMG,YAAY,GAAG,IAAIC,GAAJ,EAArB;AACA,UAAMC,gBAAgB,GAAG,EAAzB;;AAHsC,iDAKtBJ,QALsB;AAAA;;AAAA;AAKtC,4DAA0B;AAAA,cAAfK,CAAe;AACxB,cAAMC,SAAS,GAAGlC,kBAAkB,CAACiC,CAAC,CAACpC,MAAH,EAAW,KAAKpE,KAAL,CAAWZ,gBAAtB,CAApC;;AAEA,cAAIqH,SAAS,KAAK1G,SAAlB,EAA6B;AAE3BwG,YAAAA,gBAAgB,CAACG,IAAjB,CAAsBF,CAAC,CAACpC,MAAxB;AACD,WAHD,MAGO,IAAI,CAACiC,YAAY,CAACM,GAAb,CAAiBF,SAAjB,CAAL,EAAkC;AAEvCJ,YAAAA,YAAY,CAACO,GAAb,CAAiBH,SAAjB;AACAF,YAAAA,gBAAgB,CAACG,IAAjB,CAAsBF,CAAC,CAACpC,MAAxB;AACD;AACF;AAhBqC;AAAA;AAAA;AAAA;AAAA;;AAkBtC,aAAOmC,gBAAP;AACD;;;WAED,qCAA4B;AAAA;;AAC1B,UAAMvF,QAAQ,GAAG,aAAjB;AACA,UAAOX,OAAP,GAAkB,KAAKD,KAAvB,CAAOC,OAAP;AAEAA,MAAAA,OAAO,CAACwG,aAAR,CAAsBC,OAAtB,CAA8B,UAAAlF,IAAI,EAAI;AACpC,YAAI,CAACA,IAAI,CAACmF,cAAL,CAAoB/F,QAApB,CAAL,EAAoC;AAElCgG,UAAAA,MAAM,CAACC,cAAP,CAAsBrF,IAAtB,EAA4BZ,QAA5B,EAAsC;AACpCkG,YAAAA,GAAG,EAAE,eAAM;AAET,kBAAI,CAACtF,IAAI,CAACsD,OAAV,EAAmB;AACjB,uBAAO,IAAP;AACD;;AAED,kBAAI,KAAI,CAAC9E,KAAL,CAAWV,MAAX,IAAqBkB,KAAK,CAACC,OAAN,CAAce,IAAI,CAACsD,OAAnB,CAArB,IAAoD,CAACtD,IAAI,CAACsD,OAAL,CAAaiC,MAAtE,EAA8E;AAG5E,uBAAO,EAAP;AACD;;AAED,kBAAIvF,IAAI,CAACwF,aAAL,KAAuBrH,SAA3B,EAAsC;AAEpC,oBAAMmF,OAAO,GAAG,KAAI,CAAC9E,KAAL,CAAWV,MAAX,GAAoB,0BAAgBkC,IAAI,CAACsD,OAArB,CAApB,GAAoDtD,IAAI,CAACsD,OAAzE;AACAtD,gBAAAA,IAAI,CAACwF,aAAL,GAAqBlC,OAAO,CAACmC,GAAR,CAAY,UAAA7B,OAAO;AAAA,yBACtCV,0BAA0B,CAACU,OAAD,EAAU5D,IAAI,CAACmD,IAAf,EAAqB,KAAI,CAACnF,OAAL,CAAaC,QAAlC,CADY;AAAA,iBAAnB,CAArB;AAGD;;AACD,qBAAO+B,IAAI,CAACwF,aAAZ;AACD;AArBmC,WAAtC;AAuBD;AACF,OA3BD;AA4BD;;;EAtSmCE,kB;;;;AAyStC,SAAS/C,kBAAT,CAA4BiB,OAA5B,EAAqCpG,gBAArC,EAAuD;AACrD,MAAIA,gBAAJ,EAAsB;AACpB,WAAOoG,OAAO,CAAC+B,UAAR,CAAmBnI,gBAAnB,CAAP;AACD;;AAED,MAAI,QAAQoG,OAAZ,EAAqB;AACnB,WAAOA,OAAO,CAACQ,EAAf;AACD;;AAED,SAAOjG,SAAP;AACD;;AAED,SAASyE,mBAAT,CAA6BgB,OAA7B,EAAsC;AAAA;;AACpC,SAAO,wBAAAA,OAAO,CAAC+B,UAAR,4EAAoBC,SAApB,KAAiC,IAAxC;AACD;;AAED,SAASpC,kBAAT,CAA4B9F,KAA5B,EAAmC;AACjC,SAAOA,KAAK,KAAKS,SAAV,IAAuBT,KAAK,KAAK,IAAjC,IAAyCA,KAAK,KAAK,EAA1D;AACD;;AAED,SAASwF,0BAAT,CAAoCV,MAApC,EAA4CW,IAA5C,EAAkDlF,QAAlD,EAA4D;AAC1D,MAAM2F,OAAO,mCACRpB,MADQ;AAEXqD,IAAAA,QAAQ,EAAE;AACRpI,MAAAA,IAAI,EAAE+E,MAAM,CAACqD,QAAP,CAAgBpI;AADd;AAFC,IAAb;;AAQA2H,EAAAA,MAAM,CAACC,cAAP,CAAsBzB,OAAO,CAACiC,QAA9B,EAAwC,aAAxC,EAAuD;AACrDP,IAAAA,GAAG,EAAE,eAAM;AACT,UAAMQ,SAAS,GAAG,oCAAUtD,MAAM,CAACqD,QAAjB,EAA2B1C,IAA3B,EAAiClF,QAAjC,CAAlB;AACA,aAAO6H,SAAS,CAAClF,WAAjB;AACD;AAJoD,GAAvD;AAOA,SAAOgD,OAAP;AACD;;AAED7F,QAAQ,CAAC6H,SAAT,GAAqB,UAArB;AACA7H,QAAQ,CAACT,YAAT,GAAwBA,YAAxB","sourcesContent":["import {log} from '@deck.gl/core';\nimport {Matrix4} from '@math.gl/core';\nimport {MVTWorkerLoader} from '@loaders.gl/mvt';\nimport {binaryToGeojson} from '@loaders.gl/gis';\nimport {COORDINATE_SYSTEM} from '@deck.gl/core';\nimport {ClipExtension} from '@deck.gl/extensions';\n\nimport TileLayer from '../tile-layer/tile-layer';\nimport {getURLFromTemplate, isURLTemplate} from '../tile-layer/utils';\nimport {transform} from './coordinate-transform';\nimport findIndexBinary from './find-index-binary';\n\nimport {GeoJsonLayer} from '@deck.gl/layers';\n\nconst WORLD_SIZE = 512;\n\nconst defaultProps = {\n ...GeoJsonLayer.defaultProps,\n uniqueIdProperty: {type: 'string', value: ''},\n highlightedFeatureId: null,\n loaders: [MVTWorkerLoader],\n binary: true\n};\n\nexport default class MVTLayer extends TileLayer {\n initializeState() {\n super.initializeState();\n // GlobeView doesn't work well with binary data\n const binary = this.context.viewport.resolution !== undefined ? false : this.props.binary;\n this.setState({\n binary,\n data: null,\n tileJSON: null\n });\n }\n\n get isLoaded() {\n return this.state.data && this.state.tileset && super.isLoaded;\n }\n\n updateState({props, oldProps, context, changeFlags}) {\n if (changeFlags.dataChanged) {\n this._updateTileData();\n }\n\n if (this.state.data) {\n super.updateState({props, oldProps, context, changeFlags});\n this._setWGS84PropertyForTiles();\n }\n const {highlightColor} = props;\n if (highlightColor !== oldProps.highlightColor && Array.isArray(highlightColor)) {\n this.setState({highlightColor});\n }\n }\n\n /* eslint-disable complexity */\n async _updateTileData() {\n let {data} = this.props;\n let tileJSON = null;\n\n if (typeof data === 'string' && !isURLTemplate(data)) {\n const {onDataLoad, fetch} = this.props;\n this.setState({data: null, tileJSON: null});\n try {\n tileJSON = await fetch(data, {propName: 'data', layer: this, loaders: []});\n } catch (error) {\n this.raiseError(error, 'loading TileJSON');\n data = null;\n }\n\n if (onDataLoad) {\n onDataLoad(tileJSON);\n }\n } else if (data.tilejson) {\n tileJSON = data;\n }\n\n if (tileJSON) {\n data = tileJSON.tiles;\n }\n\n this.setState({data, tileJSON});\n }\n\n _getTilesetOptions(props) {\n const opts = super._getTilesetOptions(props);\n const {tileJSON} = this.state;\n\n if (tileJSON) {\n if (Number.isFinite(tileJSON.minzoom) && tileJSON.minzoom > props.minZoom) {\n opts.minZoom = tileJSON.minzoom;\n }\n\n if (\n Number.isFinite(tileJSON.maxzoom) &&\n (!Number.isFinite(props.maxZoom) || tileJSON.maxzoom < props.maxZoom)\n ) {\n opts.maxZoom = tileJSON.maxzoom;\n }\n }\n return opts;\n }\n\n /* eslint-disable complexity */\n\n renderLayers() {\n if (!this.state.data) return null;\n return super.renderLayers();\n }\n\n getTileData(tile) {\n const url = getURLFromTemplate(this.state.data, tile);\n if (!url) {\n return Promise.reject('Invalid URL');\n }\n let loadOptions = this.getLoadOptions();\n const {binary} = this.state;\n const {fetch} = this.props;\n const {signal, x, y, z} = tile;\n loadOptions = {\n ...loadOptions,\n mimeType: 'application/x-protobuf',\n mvt: {\n ...loadOptions?.mvt,\n coordinates: this.context.viewport.resolution ? 'wgs84' : 'local',\n tileIndex: {x, y, z}\n // Local worker debug\n // workerUrl: `modules/mvt/dist/mvt-loader.worker.js`\n // Set worker to null to skip web workers\n // workerUrl: null\n },\n gis: binary ? {format: 'binary'} : {}\n };\n return fetch(url, {propName: 'data', layer: this, loadOptions, signal});\n }\n\n renderSubLayers(props) {\n const {tile} = props;\n const worldScale = Math.pow(2, tile.z);\n\n const xScale = WORLD_SIZE / worldScale;\n const yScale = -xScale;\n\n const xOffset = (WORLD_SIZE * tile.x) / worldScale;\n const yOffset = WORLD_SIZE * (1 - tile.y / worldScale);\n\n const modelMatrix = new Matrix4().scale([xScale, yScale, 1]);\n\n props.autoHighlight = false;\n\n if (!this.context.viewport.resolution) {\n props.modelMatrix = modelMatrix;\n props.coordinateOrigin = [xOffset, yOffset, 0];\n props.coordinateSystem = COORDINATE_SYSTEM.CARTESIAN;\n props.extensions = [...(props.extensions || []), new ClipExtension()];\n }\n\n const subLayers = super.renderSubLayers(props);\n\n if (this.state.binary && !(subLayers instanceof GeoJsonLayer)) {\n log.warn('renderSubLayers() must return GeoJsonLayer when using binary:true')();\n }\n\n return subLayers;\n }\n\n _updateAutoHighlight(info) {\n const {uniqueIdProperty} = this.props;\n\n const {hoveredFeatureId, hoveredFeatureLayerName} = this.state;\n const hoveredFeature = info.object;\n let newHoveredFeatureId;\n let newHoveredFeatureLayerName;\n\n if (hoveredFeature) {\n newHoveredFeatureId = getFeatureUniqueId(hoveredFeature, uniqueIdProperty);\n newHoveredFeatureLayerName = getFeatureLayerName(hoveredFeature);\n }\n let {highlightColor} = this.props;\n if (typeof highlightColor === 'function') {\n highlightColor = highlightColor(info);\n }\n\n if (\n hoveredFeatureId !== newHoveredFeatureId ||\n hoveredFeatureLayerName !== newHoveredFeatureLayerName\n ) {\n this.setState({\n highlightColor,\n hoveredFeatureId: newHoveredFeatureId,\n hoveredFeatureLayerName: newHoveredFeatureLayerName\n });\n }\n }\n\n getPickingInfo(params) {\n const info = super.getPickingInfo(params);\n\n const isWGS84 = this.context.viewport.resolution;\n\n if (this.state.binary && info.index !== -1) {\n const {data} = params.sourceLayer.props;\n info.object = binaryToGeojson(data, {globalFeatureId: info.index});\n }\n if (info.object && !isWGS84) {\n info.object = transformTileCoordsToWGS84(info.object, info.tile.bbox, this.context.viewport);\n }\n\n return info;\n }\n\n getSubLayerPropsByTile(tile) {\n return {\n highlightedObjectIndex: this.getHighlightedObjectIndex(tile),\n highlightColor: this.state.highlightColor\n };\n }\n\n getHighlightedObjectIndex(tile) {\n const {hoveredFeatureId, hoveredFeatureLayerName, binary} = this.state;\n const {uniqueIdProperty, highlightedFeatureId} = this.props;\n const data = tile.content;\n\n const isHighlighted = isFeatureIdDefined(highlightedFeatureId);\n const isFeatureIdPresent = isFeatureIdDefined(hoveredFeatureId) || isHighlighted;\n\n if (!isFeatureIdPresent) {\n return -1;\n }\n\n const featureIdToHighlight = isHighlighted ? highlightedFeatureId : hoveredFeatureId;\n\n // Iterable data\n if (Array.isArray(data)) {\n return data.findIndex(feature => {\n const isMatchingId = getFeatureUniqueId(feature, uniqueIdProperty) === featureIdToHighlight;\n const isMatchingLayer =\n isHighlighted || getFeatureLayerName(feature) === hoveredFeatureLayerName;\n return isMatchingId && isMatchingLayer;\n });\n\n // Non-iterable data\n } else if (data && binary) {\n // Get the feature index of the selected item to highlight\n return findIndexBinary(\n data,\n uniqueIdProperty,\n featureIdToHighlight,\n isHighlighted ? '' : hoveredFeatureLayerName\n );\n }\n\n return -1;\n }\n\n _pickObjects(maxObjects) {\n const {deck, viewport} = this.context;\n const width = viewport.width;\n const height = viewport.height;\n const x = viewport.x;\n const y = viewport.y;\n const layerIds = [this.id];\n return deck.pickObjects({x, y, width, height, layerIds, maxObjects});\n }\n\n getRenderedFeatures(maxFeatures = null) {\n const features = this._pickObjects(maxFeatures);\n const featureCache = new Set();\n const renderedFeatures = [];\n\n for (const f of features) {\n const featureId = getFeatureUniqueId(f.object, this.props.uniqueIdProperty);\n\n if (featureId === undefined) {\n // we have no id for the feature, we just add to the list\n renderedFeatures.push(f.object);\n } else if (!featureCache.has(featureId)) {\n // Add removing duplicates\n featureCache.add(featureId);\n renderedFeatures.push(f.object);\n }\n }\n\n return renderedFeatures;\n }\n\n _setWGS84PropertyForTiles() {\n const propName = 'dataInWGS84';\n const {tileset} = this.state;\n\n tileset.selectedTiles.forEach(tile => {\n if (!tile.hasOwnProperty(propName)) {\n // eslint-disable-next-line accessor-pairs\n Object.defineProperty(tile, propName, {\n get: () => {\n // Still loading or encountered an error\n if (!tile.content) {\n return null;\n }\n\n if (this.state.binary && Array.isArray(tile.content) && !tile.content.length) {\n // TODO: @loaders.gl/mvt returns [] when no content. It should return a valid empty binary.\n // https://github.com/visgl/loaders.gl/pull/1137\n return [];\n }\n\n if (tile._contentWGS84 === undefined) {\n // Create a cache to transform only once\n const content = this.state.binary ? binaryToGeojson(tile.content) : tile.content;\n tile._contentWGS84 = content.map(feature =>\n transformTileCoordsToWGS84(feature, tile.bbox, this.context.viewport)\n );\n }\n return tile._contentWGS84;\n }\n });\n }\n });\n }\n}\n\nfunction getFeatureUniqueId(feature, uniqueIdProperty) {\n if (uniqueIdProperty) {\n return feature.properties[uniqueIdProperty];\n }\n\n if ('id' in feature) {\n return feature.id;\n }\n\n return undefined;\n}\n\nfunction getFeatureLayerName(feature) {\n return feature.properties?.layerName || null;\n}\n\nfunction isFeatureIdDefined(value) {\n return value !== undefined && value !== null && value !== '';\n}\n\nfunction transformTileCoordsToWGS84(object, bbox, viewport) {\n const feature = {\n ...object,\n geometry: {\n type: object.geometry.type\n }\n };\n\n // eslint-disable-next-line accessor-pairs\n Object.defineProperty(feature.geometry, 'coordinates', {\n get: () => {\n const wgs84Geom = transform(object.geometry, bbox, viewport);\n return wgs84Geom.coordinates;\n }\n });\n\n return feature;\n}\n\nMVTLayer.layerName = 'MVTLayer';\nMVTLayer.defaultProps = defaultProps;\n"],"file":"mvt-layer.js"}
@@ -10,7 +10,7 @@ import { transform } from './coordinate-transform';
10
10
  import findIndexBinary from './find-index-binary';
11
11
  import { GeoJsonLayer } from '@deck.gl/layers';
12
12
  const WORLD_SIZE = 512;
13
- const defaultProps = {
13
+ const defaultProps = { ...GeoJsonLayer.defaultProps,
14
14
  uniqueIdProperty: {
15
15
  type: 'string',
16
16
  value: ''
@@ -22,7 +22,9 @@ const defaultProps = {
22
22
  export default class MVTLayer extends TileLayer {
23
23
  initializeState() {
24
24
  super.initializeState();
25
+ const binary = this.context.viewport.resolution !== undefined ? false : this.props.binary;
25
26
  this.setState({
27
+ binary,
26
28
  data: null,
27
29
  tileJSON: null
28
30
  });
@@ -144,7 +146,9 @@ export default class MVTLayer extends TileLayer {
144
146
 
145
147
  let loadOptions = this.getLoadOptions();
146
148
  const {
147
- binary,
149
+ binary
150
+ } = this.state;
151
+ const {
148
152
  fetch
149
153
  } = this.props;
150
154
  const {
@@ -196,7 +200,7 @@ export default class MVTLayer extends TileLayer {
196
200
 
197
201
  const subLayers = super.renderSubLayers(props);
198
202
 
199
- if (this.props.binary && !(subLayers instanceof GeoJsonLayer)) {
203
+ if (this.state.binary && !(subLayers instanceof GeoJsonLayer)) {
200
204
  log.warn('renderSubLayers() must return GeoJsonLayer when using binary:true')();
201
205
  }
202
206
 
@@ -241,7 +245,7 @@ export default class MVTLayer extends TileLayer {
241
245
  const info = super.getPickingInfo(params);
242
246
  const isWGS84 = this.context.viewport.resolution;
243
247
 
244
- if (this.props.binary && info.index !== -1) {
248
+ if (this.state.binary && info.index !== -1) {
245
249
  const {
246
250
  data
247
251
  } = params.sourceLayer.props;
@@ -267,12 +271,12 @@ export default class MVTLayer extends TileLayer {
267
271
  getHighlightedObjectIndex(tile) {
268
272
  const {
269
273
  hoveredFeatureId,
270
- hoveredFeatureLayerName
274
+ hoveredFeatureLayerName,
275
+ binary
271
276
  } = this.state;
272
277
  const {
273
278
  uniqueIdProperty,
274
- highlightedFeatureId,
275
- binary
279
+ highlightedFeatureId
276
280
  } = this.props;
277
281
  const data = tile.content;
278
282
  const isHighlighted = isFeatureIdDefined(highlightedFeatureId);
@@ -350,12 +354,12 @@ export default class MVTLayer extends TileLayer {
350
354
  return null;
351
355
  }
352
356
 
353
- if (this.props.binary && Array.isArray(tile.content) && !tile.content.length) {
357
+ if (this.state.binary && Array.isArray(tile.content) && !tile.content.length) {
354
358
  return [];
355
359
  }
356
360
 
357
361
  if (tile._contentWGS84 === undefined) {
358
- const content = this.props.binary ? binaryToGeojson(tile.content) : tile.content;
362
+ const content = this.state.binary ? binaryToGeojson(tile.content) : tile.content;
359
363
  tile._contentWGS84 = content.map(feature => transformTileCoordsToWGS84(feature, tile.bbox, this.context.viewport));
360
364
  }
361
365