@deck.gl/geo-layers 8.7.0-beta.6 → 8.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/dist/dist.dev.js +218 -146
  2. package/dist/es5/geo-cell-layer/GeoCellLayer.js +112 -0
  3. package/dist/es5/geo-cell-layer/GeoCellLayer.js.map +1 -0
  4. package/dist/es5/h3-layers/h3-cluster-layer.js +10 -59
  5. package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
  6. package/dist/es5/index.js +8 -0
  7. package/dist/es5/index.js.map +1 -1
  8. package/dist/es5/mvt-layer/mvt-layer.js +22 -20
  9. package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
  10. package/dist/es5/quadkey-layer/quadkey-layer.js +69 -0
  11. package/dist/es5/quadkey-layer/quadkey-layer.js.map +1 -0
  12. package/dist/es5/quadkey-layer/quadkey-utils.js +51 -0
  13. package/dist/es5/quadkey-layer/quadkey-utils.js.map +1 -0
  14. package/dist/es5/s2-layer/s2-layer.js +10 -68
  15. package/dist/es5/s2-layer/s2-layer.js.map +1 -1
  16. package/dist/es5/tile-layer/utils.js +1 -1
  17. package/dist/es5/tile-layer/utils.js.map +1 -1
  18. package/dist/esm/geo-cell-layer/GeoCellLayer.js +68 -0
  19. package/dist/esm/geo-cell-layer/GeoCellLayer.js.map +1 -0
  20. package/dist/esm/h3-layers/h3-cluster-layer.js +7 -51
  21. package/dist/esm/h3-layers/h3-cluster-layer.js.map +1 -1
  22. package/dist/esm/index.js +1 -0
  23. package/dist/esm/index.js.map +1 -1
  24. package/dist/esm/mvt-layer/mvt-layer.js +13 -9
  25. package/dist/esm/mvt-layer/mvt-layer.js.map +1 -1
  26. package/dist/esm/quadkey-layer/quadkey-layer.js +26 -0
  27. package/dist/esm/quadkey-layer/quadkey-layer.js.map +1 -0
  28. package/dist/esm/quadkey-layer/quadkey-utils.js +24 -0
  29. package/dist/esm/quadkey-layer/quadkey-utils.js.map +1 -0
  30. package/dist/esm/s2-layer/s2-layer.js +6 -59
  31. package/dist/esm/s2-layer/s2-layer.js.map +1 -1
  32. package/dist/esm/tile-layer/utils.js +1 -1
  33. package/dist/esm/tile-layer/utils.js.map +1 -1
  34. package/dist.min.js +2 -2
  35. package/package.json +2 -2
  36. package/src/geo-cell-layer/GeoCellLayer.js +80 -0
  37. package/src/h3-layers/h3-cluster-layer.js +8 -64
  38. package/src/index.ts +1 -0
  39. package/src/mvt-layer/mvt-layer.js +12 -7
  40. package/src/quadkey-layer/quadkey-layer.js +22 -0
  41. package/src/quadkey-layer/quadkey-utils.js +28 -0
  42. package/src/s2-layer/s2-layer.js +9 -75
  43. package/src/tile-layer/utils.js +4 -4
@@ -17,13 +17,11 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
17
17
 
18
18
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
19
 
20
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
-
22
20
  var _h3Js = require("h3-js");
23
21
 
24
22
  var _core = require("@deck.gl/core");
25
23
 
26
- var _layers = require("@deck.gl/layers");
24
+ var _GeoCellLayer2 = _interopRequireDefault(require("../geo-cell-layer/GeoCellLayer"));
27
25
 
28
26
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
29
27
 
@@ -35,21 +33,17 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
35
33
 
36
34
  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; } }
37
35
 
38
- 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; }
39
-
40
- 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; }
41
-
42
- var defaultProps = _objectSpread(_objectSpread({}, _layers.PolygonLayer.defaultProps), {}, {
36
+ var defaultProps = {
43
37
  getHexagons: {
44
38
  type: 'accessor',
45
39
  value: function value(d) {
46
40
  return d.hexagons;
47
41
  }
48
42
  }
49
- });
43
+ };
50
44
 
51
- var H3ClusterLayer = function (_CompositeLayer) {
52
- (0, _inherits2.default)(H3ClusterLayer, _CompositeLayer);
45
+ var H3ClusterLayer = function (_GeoCellLayer) {
46
+ (0, _inherits2.default)(H3ClusterLayer, _GeoCellLayer);
53
47
 
54
48
  var _super = _createSuper(H3ClusterLayer);
55
49
 
@@ -112,61 +106,18 @@ var H3ClusterLayer = function (_CompositeLayer) {
112
106
  }
113
107
  }
114
108
  }, {
115
- key: "renderLayers",
116
- value: function renderLayers() {
117
- var _this$props = this.props,
118
- elevationScale = _this$props.elevationScale,
119
- extruded = _this$props.extruded,
120
- wireframe = _this$props.wireframe,
121
- filled = _this$props.filled,
122
- stroked = _this$props.stroked,
123
- lineWidthScale = _this$props.lineWidthScale,
124
- lineWidthMinPixels = _this$props.lineWidthMinPixels,
125
- lineWidthMaxPixels = _this$props.lineWidthMaxPixels,
126
- lineJointRounded = _this$props.lineJointRounded,
127
- lineMiterLimit = _this$props.lineMiterLimit,
128
- lineDashJustified = _this$props.lineDashJustified,
129
- material = _this$props.material,
130
- getFillColor = _this$props.getFillColor,
131
- getLineColor = _this$props.getLineColor,
132
- getLineWidth = _this$props.getLineWidth,
133
- getLineDashArray = _this$props.getLineDashArray,
134
- getElevation = _this$props.getElevation,
135
- transitions = _this$props.transitions,
136
- updateTriggers = _this$props.updateTriggers;
137
- var SubLayerClass = this.getSubLayerClass('cluster-region', _layers.PolygonLayer);
138
- return new SubLayerClass({
139
- filled: filled,
140
- wireframe: wireframe,
141
- extruded: extruded,
142
- elevationScale: elevationScale,
143
- stroked: stroked,
144
- lineWidthScale: lineWidthScale,
145
- lineWidthMinPixels: lineWidthMinPixels,
146
- lineWidthMaxPixels: lineWidthMaxPixels,
147
- lineJointRounded: lineJointRounded,
148
- lineMiterLimit: lineMiterLimit,
149
- lineDashJustified: lineDashJustified,
150
- material: material,
151
- transitions: transitions,
152
- getFillColor: this.getSubLayerAccessor(getFillColor),
153
- getLineColor: this.getSubLayerAccessor(getLineColor),
154
- getLineWidth: this.getSubLayerAccessor(getLineWidth),
155
- getLineDashArray: this.getSubLayerAccessor(getLineDashArray),
156
- getElevation: this.getSubLayerAccessor(getElevation)
157
- }, this.getSubLayerProps({
158
- id: 'cluster-region',
159
- updateTriggers: updateTriggers
160
- }), {
109
+ key: "indexToBounds",
110
+ value: function indexToBounds() {
111
+ return {
161
112
  data: this.state.polygons,
162
113
  getPolygon: function getPolygon(d) {
163
114
  return d.polygon;
164
115
  }
165
- });
116
+ };
166
117
  }
167
118
  }]);
168
119
  return H3ClusterLayer;
169
- }(_core.CompositeLayer);
120
+ }(_GeoCellLayer2.default);
170
121
 
171
122
  exports.default = H3ClusterLayer;
172
123
  H3ClusterLayer.defaultProps = defaultProps;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/h3-layers/h3-cluster-layer.js"],"names":["defaultProps","PolygonLayer","getHexagons","type","value","d","hexagons","H3ClusterLayer","props","oldProps","changeFlags","dataChanged","updateTriggers","data","polygons","iterable","objectInfo","object","index","multiPolygon","polygon","push","getSubLayerRow","setState","elevationScale","extruded","wireframe","filled","stroked","lineWidthScale","lineWidthMinPixels","lineWidthMaxPixels","lineJointRounded","lineMiterLimit","lineDashJustified","material","getFillColor","getLineColor","getLineWidth","getLineDashArray","getElevation","transitions","SubLayerClass","getSubLayerClass","getSubLayerAccessor","getSubLayerProps","id","state","getPolygon","CompositeLayer","layerName"],"mappings":"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","sourcesContent":["import {h3SetToMultiPolygon} from 'h3-js';\n\nimport {CompositeLayer, createIterable} from '@deck.gl/core';\nimport {PolygonLayer} from '@deck.gl/layers';\n\nconst defaultProps = {\n ...PolygonLayer.defaultProps,\n getHexagons: {type: 'accessor', value: d => d.hexagons}\n};\n\nexport default class H3ClusterLayer extends CompositeLayer {\n updateState({props, oldProps, changeFlags}) {\n if (\n changeFlags.dataChanged ||\n (changeFlags.updateTriggers && changeFlags.updateTriggers.getHexagons)\n ) {\n const {data, getHexagons} = props;\n const polygons = [];\n\n const {iterable, objectInfo} = createIterable(data);\n for (const object of iterable) {\n objectInfo.index++;\n const hexagons = getHexagons(object, objectInfo);\n const multiPolygon = h3SetToMultiPolygon(hexagons, true);\n\n for (const polygon of multiPolygon) {\n polygons.push(this.getSubLayerRow({polygon}, object, objectInfo.index));\n }\n }\n\n this.setState({polygons});\n }\n }\n\n renderLayers() {\n const {\n elevationScale,\n extruded,\n wireframe,\n filled,\n stroked,\n lineWidthScale,\n lineWidthMinPixels,\n lineWidthMaxPixels,\n lineJointRounded,\n lineMiterLimit,\n lineDashJustified,\n material,\n\n getFillColor,\n getLineColor,\n getLineWidth,\n getLineDashArray,\n getElevation,\n transitions,\n updateTriggers\n } = this.props;\n\n const SubLayerClass = this.getSubLayerClass('cluster-region', PolygonLayer);\n\n return new SubLayerClass(\n {\n filled,\n wireframe,\n\n extruded,\n elevationScale,\n\n stroked,\n lineWidthScale,\n lineWidthMinPixels,\n lineWidthMaxPixels,\n lineJointRounded,\n lineMiterLimit,\n lineDashJustified,\n\n material,\n transitions,\n\n getFillColor: this.getSubLayerAccessor(getFillColor),\n getLineColor: this.getSubLayerAccessor(getLineColor),\n getLineWidth: this.getSubLayerAccessor(getLineWidth),\n getLineDashArray: this.getSubLayerAccessor(getLineDashArray),\n getElevation: this.getSubLayerAccessor(getElevation)\n },\n this.getSubLayerProps({\n id: 'cluster-region',\n updateTriggers\n }),\n {\n data: this.state.polygons,\n getPolygon: d => d.polygon\n }\n );\n }\n}\n\nH3ClusterLayer.defaultProps = defaultProps;\nH3ClusterLayer.layerName = 'H3ClusterLayer';\n"],"file":"h3-cluster-layer.js"}
1
+ {"version":3,"sources":["../../../src/h3-layers/h3-cluster-layer.js"],"names":["defaultProps","getHexagons","type","value","d","hexagons","H3ClusterLayer","props","oldProps","changeFlags","dataChanged","updateTriggers","data","polygons","iterable","objectInfo","object","index","multiPolygon","polygon","push","getSubLayerRow","setState","state","getPolygon","GeoCellLayer","layerName"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AAEA;;AACA;;;;;;;;;;;;AAEA,IAAMA,YAAY,GAAG;AACnBC,EAAAA,WAAW,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,eAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,QAAN;AAAA;AAA3B;AADM,CAArB;;IAIqBC,c;;;;;;;;;;;;WACnB,2BAA4C;AAAA,UAA/BC,KAA+B,QAA/BA,KAA+B;AAAA,UAAxBC,QAAwB,QAAxBA,QAAwB;AAAA,UAAdC,WAAc,QAAdA,WAAc;;AAC1C,UACEA,WAAW,CAACC,WAAZ,IACCD,WAAW,CAACE,cAAZ,IAA8BF,WAAW,CAACE,cAAZ,CAA2BV,WAF5D,EAGE;AACA,YAAOW,IAAP,GAA4BL,KAA5B,CAAOK,IAAP;AAAA,YAAaX,WAAb,GAA4BM,KAA5B,CAAaN,WAAb;AACA,YAAMY,QAAQ,GAAG,EAAjB;;AAEA,8BAA+B,0BAAeD,IAAf,CAA/B;AAAA,YAAOE,QAAP,mBAAOA,QAAP;AAAA,YAAiBC,UAAjB,mBAAiBA,UAAjB;;AAJA,mDAKqBD,QALrB;AAAA;;AAAA;AAKA,8DAA+B;AAAA,gBAApBE,MAAoB;AAC7BD,YAAAA,UAAU,CAACE,KAAX;AACA,gBAAMZ,QAAQ,GAAGJ,WAAW,CAACe,MAAD,EAASD,UAAT,CAA5B;AACA,gBAAMG,YAAY,GAAG,+BAAoBb,QAApB,EAA8B,IAA9B,CAArB;;AAH6B,wDAKPa,YALO;AAAA;;AAAA;AAK7B,qEAAoC;AAAA,oBAAzBC,OAAyB;AAClCN,gBAAAA,QAAQ,CAACO,IAAT,CAAc,KAAKC,cAAL,CAAoB;AAACF,kBAAAA,OAAO,EAAPA;AAAD,iBAApB,EAA+BH,MAA/B,EAAuCD,UAAU,CAACE,KAAlD,CAAd;AACD;AAP4B;AAAA;AAAA;AAAA;AAAA;AAQ9B;AAbD;AAAA;AAAA;AAAA;AAAA;;AAeA,aAAKK,QAAL,CAAc;AAACT,UAAAA,QAAQ,EAARA;AAAD,SAAd;AACD;AACF;;;WAED,yBAAgB;AACd,aAAO;AACLD,QAAAA,IAAI,EAAE,KAAKW,KAAL,CAAWV,QADZ;AAELW,QAAAA,UAAU,EAAE,oBAAApB,CAAC;AAAA,iBAAIA,CAAC,CAACe,OAAN;AAAA;AAFR,OAAP;AAID;;;EA7ByCM,sB;;;AAgC5CnB,cAAc,CAACN,YAAf,GAA8BA,YAA9B;AACAM,cAAc,CAACoB,SAAf,GAA2B,gBAA3B","sourcesContent":["import {h3SetToMultiPolygon} from 'h3-js';\n\nimport {createIterable} from '@deck.gl/core';\nimport GeoCellLayer from '../geo-cell-layer/GeoCellLayer';\n\nconst defaultProps = {\n getHexagons: {type: 'accessor', value: d => d.hexagons}\n};\n\nexport default class H3ClusterLayer extends GeoCellLayer {\n updateState({props, oldProps, changeFlags}) {\n if (\n changeFlags.dataChanged ||\n (changeFlags.updateTriggers && changeFlags.updateTriggers.getHexagons)\n ) {\n const {data, getHexagons} = props;\n const polygons = [];\n\n const {iterable, objectInfo} = createIterable(data);\n for (const object of iterable) {\n objectInfo.index++;\n const hexagons = getHexagons(object, objectInfo);\n const multiPolygon = h3SetToMultiPolygon(hexagons, true);\n\n for (const polygon of multiPolygon) {\n polygons.push(this.getSubLayerRow({polygon}, object, objectInfo.index));\n }\n }\n\n this.setState({polygons});\n }\n }\n\n indexToBounds() {\n return {\n data: this.state.polygons,\n getPolygon: d => d.polygon\n };\n }\n}\n\nH3ClusterLayer.defaultProps = defaultProps;\nH3ClusterLayer.layerName = 'H3ClusterLayer';\n"],"file":"h3-cluster-layer.js"}
package/dist/es5/index.js CHANGED
@@ -17,6 +17,12 @@ Object.defineProperty(exports, "S2Layer", {
17
17
  return _s2Layer.default;
18
18
  }
19
19
  });
20
+ Object.defineProperty(exports, "QuadkeyLayer", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _quadkeyLayer.default;
24
+ }
25
+ });
20
26
  Object.defineProperty(exports, "TileLayer", {
21
27
  enumerable: true,
22
28
  get: function get() {
@@ -70,6 +76,8 @@ var _greatCircleLayer = _interopRequireDefault(require("./great-circle-layer/gre
70
76
 
71
77
  var _s2Layer = _interopRequireDefault(require("./s2-layer/s2-layer"));
72
78
 
79
+ var _quadkeyLayer = _interopRequireDefault(require("./quadkey-layer/quadkey-layer"));
80
+
73
81
  var _tileLayer = _interopRequireDefault(require("./tile-layer/tile-layer"));
74
82
 
75
83
  var _tripsLayer = _interopRequireDefault(require("./trips-layer/trips-layer"));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA","sourcesContent":["// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n/* eslint-disable max-len */\n\nexport {default as GreatCircleLayer} from './great-circle-layer/great-circle-layer';\nexport {default as S2Layer} from './s2-layer/s2-layer';\nexport {default as TileLayer} from './tile-layer/tile-layer';\nexport {default as TripsLayer} from './trips-layer/trips-layer';\nexport {default as H3ClusterLayer} from './h3-layers/h3-cluster-layer';\nexport {default as H3HexagonLayer} from './h3-layers/h3-hexagon-layer';\nexport {default as Tile3DLayer} from './tile-3d-layer/tile-3d-layer';\nexport {default as TerrainLayer} from './terrain-layer/terrain-layer';\nexport {default as MVTLayer} from './mvt-layer/mvt-layer';\n\nexport {getURLFromTemplate as _getURLFromTemplate} from './tile-layer/utils';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA","sourcesContent":["// Copyright (c) 2015 - 2017 Uber Technologies, Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n/* eslint-disable max-len */\n\nexport {default as GreatCircleLayer} from './great-circle-layer/great-circle-layer';\nexport {default as S2Layer} from './s2-layer/s2-layer';\nexport {default as QuadkeyLayer} from './quadkey-layer/quadkey-layer';\nexport {default as TileLayer} from './tile-layer/tile-layer';\nexport {default as TripsLayer} from './trips-layer/trips-layer';\nexport {default as H3ClusterLayer} from './h3-layers/h3-cluster-layer';\nexport {default as H3HexagonLayer} from './h3-layers/h3-hexagon-layer';\nexport {default as Tile3DLayer} from './tile-3d-layer/tile-3d-layer';\nexport {default as TerrainLayer} from './terrain-layer/terrain-layer';\nexport {default as MVTLayer} from './mvt-layer/mvt-layer';\n\nexport {getURLFromTemplate as _getURLFromTemplate} from './tile-layer/utils';\n"],"file":"index.js"}
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;AACA;;AACA;;AACA;;AAEA;;;;;;;;;;;;;;;;AAEA,IAAMA,UAAU,GAAG,GAAnB;AAEA,IAAMC,YAAY,GAAG;AACnBC,EAAAA,gBAAgB,EAAE;AAACC,IAAAA,IAAI,EAAE,QAAP;AAAiBC,IAAAA,KAAK,EAAE;AAAxB,GADC;AAEnBC,EAAAA,oBAAoB,EAAE,IAFH;AAGnBC,EAAAA,OAAO,EAAE,CAACC,oBAAD,CAHU;AAInBC,EAAAA,MAAM,EAAE;AAJW,CAArB;;IAOqBC,Q;;;;;;;;;;;;WACnB,2BAAkB;AAChB;AACA,WAAKC,QAAL,CAAc;AACZC,QAAAA,IAAI,EAAE,IADM;AAEZC,QAAAA,QAAQ,EAAE;AAFE,OAAd;AAID;;;SAED,eAAe;AACb,aAAO,KAAKC,KAAL,CAAWF,IAAX,IAAmB,KAAKE,KAAL,CAAWC,OAA9B,2FAAP;AACD;;;WAED,2BAAqD;AAAA,UAAxCC,KAAwC,QAAxCA,KAAwC;AAAA,UAAjCC,QAAiC,QAAjCA,QAAiC;AAAA,UAAvBC,OAAuB,QAAvBA,OAAuB;AAAA,UAAdC,WAAc,QAAdA,WAAc;;AACnD,UAAIA,WAAW,CAACC,WAAhB,EAA6B;AAC3B,aAAKC,eAAL;AACD;;AAED,UAAI,KAAKP,KAAL,CAAWF,IAAf,EAAqB;AACnB,8GAAkB;AAACI,UAAAA,KAAK,EAALA,KAAD;AAAQC,UAAAA,QAAQ,EAARA,QAAR;AAAkBC,UAAAA,OAAO,EAAPA,OAAlB;AAA2BC,UAAAA,WAAW,EAAXA;AAA3B,SAAlB;;AACA,aAAKG,yBAAL;AACD;;AACD,UAAOC,cAAP,GAAyBP,KAAzB,CAAOO,cAAP;;AACA,UAAIA,cAAc,KAAKN,QAAQ,CAACM,cAA5B,IAA8CC,KAAK,CAACC,OAAN,CAAcF,cAAd,CAAlD,EAAiF;AAC/E,aAAKZ,QAAL,CAAc;AAACY,UAAAA,cAAc,EAAdA;AAAD,SAAd;AACD;AACF;;;;uFAGD;AAAA;;AAAA;AAAA;AAAA;AAAA;AACOX,gBAAAA,IADP,GACe,KAAKI,KADpB,CACOJ,IADP;AAEMC,gBAAAA,QAFN,GAEiB,IAFjB;;AAAA,sBAIM,OAAOD,IAAP,KAAgB,QAAhB,IAA4B,CAAC,0BAAcA,IAAd,CAJnC;AAAA;AAAA;AAAA;;AAAA,8BAKgC,KAAKI,KALrC,EAKWU,UALX,eAKWA,UALX,EAKuBC,KALvB,eAKuBA,KALvB;AAMI,qBAAKhB,QAAL,CAAc;AAACC,kBAAAA,IAAI,EAAE,IAAP;AAAaC,kBAAAA,QAAQ,EAAE;AAAvB,iBAAd;AANJ;AAAA;AAAA,uBAQuBc,KAAK,CAACf,IAAD,EAAO;AAACgB,kBAAAA,QAAQ,EAAE,MAAX;AAAmBC,kBAAAA,KAAK,EAAE,IAA1B;AAAgCtB,kBAAAA,OAAO,EAAE;AAAzC,iBAAP,CAR5B;;AAAA;AAQMM,gBAAAA,QARN;AAAA;AAAA;;AAAA;AAAA;AAAA;AAUM,qBAAKiB,UAAL,cAAuB,kBAAvB;AACAlB,gBAAAA,IAAI,GAAG,IAAP;;AAXN;AAcI,oBAAIc,UAAJ,EAAgB;AACdA,kBAAAA,UAAU,CAACb,QAAD,CAAV;AACD;;AAhBL;AAAA;;AAAA;AAiBS,oBAAID,IAAI,CAACmB,QAAT,EAAmB;AACxBlB,kBAAAA,QAAQ,GAAGD,IAAX;AACD;;AAnBH;AAqBE,oBAAIC,QAAJ,EAAc;AACZD,kBAAAA,IAAI,GAAGC,QAAQ,CAACmB,KAAhB;AACD;;AAED,qBAAKrB,QAAL,CAAc;AAACC,kBAAAA,IAAI,EAAJA,IAAD;AAAOC,kBAAAA,QAAQ,EAARA;AAAP,iBAAd;;AAzBF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,O;;;;;;;;;;WA4BA,4BAAmBG,KAAnB,EAA0B;AACxB,UAAMiB,IAAI,gHAA4BjB,KAA5B,CAAV;AACA,UAAOH,QAAP,GAAmB,KAAKC,KAAxB,CAAOD,QAAP;;AAEA,UAAIA,QAAJ,EAAc;AACZ,YAAIqB,MAAM,CAACC,QAAP,CAAgBtB,QAAQ,CAACuB,OAAzB,KAAqCvB,QAAQ,CAACuB,OAAT,GAAmBpB,KAAK,CAACqB,OAAlE,EAA2E;AACzEJ,UAAAA,IAAI,CAACI,OAAL,GAAexB,QAAQ,CAACuB,OAAxB;AACD;;AAED,YACEF,MAAM,CAACC,QAAP,CAAgBtB,QAAQ,CAACyB,OAAzB,MACC,CAACJ,MAAM,CAACC,QAAP,CAAgBnB,KAAK,CAACuB,OAAtB,CAAD,IAAmC1B,QAAQ,CAACyB,OAAT,GAAmBtB,KAAK,CAACuB,OAD7D,CADF,EAGE;AACAN,UAAAA,IAAI,CAACM,OAAL,GAAe1B,QAAQ,CAACyB,OAAxB;AACD;AACF;;AACD,aAAOL,IAAP;AACD;;;WAID,wBAAe;AACb,UAAI,CAAC,KAAKnB,KAAL,CAAWF,IAAhB,EAAsB,OAAO,IAAP;AACtB;AACD;;;WAED,qBAAY4B,IAAZ,EAAkB;AAAA;;AAChB,UAAMC,GAAG,GAAG,+BAAmB,KAAK3B,KAAL,CAAWF,IAA9B,EAAoC4B,IAApC,CAAZ;;AACA,UAAI,CAACC,GAAL,EAAU;AACR,eAAOC,OAAO,CAACC,MAAR,CAAe,aAAf,CAAP;AACD;;AACD,UAAIC,WAAW,GAAG,KAAKC,cAAL,EAAlB;AACA,yBAAwB,KAAK7B,KAA7B;AAAA,UAAOP,MAAP,gBAAOA,MAAP;AAAA,UAAekB,KAAf,gBAAeA,KAAf;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,KAAKlC,OAAL,CAAamC,QAAb,CAAsBC,UAAtB,GAAmC,OAAnC,GAA6C,OAFzD;AAGDC,UAAAA,SAAS,EAAE;AAACR,YAAAA,CAAC,EAADA,CAAD;AAAIC,YAAAA,CAAC,EAADA,CAAJ;AAAOC,YAAAA,CAAC,EAADA;AAAP;AAHV,UAHM;AAYTO,QAAAA,GAAG,EAAE/C,MAAM,GAAG;AAACgD,UAAAA,MAAM,EAAE;AAAT,SAAH,GAAwB;AAZ1B,QAAX;AAcA,aAAO9B,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,yBAAgB9B,KAAhB,EAAuB;AACrB,UAAOwB,IAAP,GAAexB,KAAf,CAAOwB,IAAP;AACA,UAAMkB,UAAU,GAAGC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYpB,IAAI,CAACS,CAAjB,CAAnB;AAEA,UAAMY,MAAM,GAAG5D,UAAU,GAAGyD,UAA5B;AACA,UAAMI,MAAM,GAAG,CAACD,MAAhB;AAEA,UAAME,OAAO,GAAI9D,UAAU,GAAGuC,IAAI,CAACO,CAAnB,GAAwBW,UAAxC;AACA,UAAMM,OAAO,GAAG/D,UAAU,IAAI,IAAIuC,IAAI,CAACQ,CAAL,GAASU,UAAjB,CAA1B;AAEA,UAAMO,WAAW,GAAG,IAAIC,cAAJ,GAAcC,KAAd,CAAoB,CAACN,MAAD,EAASC,MAAT,EAAiB,CAAjB,CAApB,CAApB;AAEA9C,MAAAA,KAAK,CAACoD,aAAN,GAAsB,KAAtB;;AAEA,UAAI,CAAC,KAAKlD,OAAL,CAAamC,QAAb,CAAsBC,UAA3B,EAAuC;AACrCtC,QAAAA,KAAK,CAACiD,WAAN,GAAoBA,WAApB;AACAjD,QAAAA,KAAK,CAACqD,gBAAN,GAAyB,CAACN,OAAD,EAAUC,OAAV,EAAmB,CAAnB,CAAzB;AACAhD,QAAAA,KAAK,CAACsD,gBAAN,GAAyBC,wBAAkBC,SAA3C;AACAxD,QAAAA,KAAK,CAACyD,UAAN,8CAAwBzD,KAAK,CAACyD,UAAN,IAAoB,EAA5C,IAAiD,IAAIC,yBAAJ,EAAjD;AACD;;AAED,UAAMC,SAAS,6GAAyB3D,KAAzB,CAAf;;AAEA,UAAI,KAAKA,KAAL,CAAWP,MAAX,IAAqB,EAAEkE,SAAS,YAAYC,oBAAvB,CAAzB,EAA+D;AAC7DC,kBAAIC,IAAJ,CAAS,mEAAT;AACD;;AAED,aAAOH,SAAP;AACD;;;WAED,8BAAqBI,IAArB,EAA2B;AACzB,UAAO5E,gBAAP,GAA2B,KAAKa,KAAhC,CAAOb,gBAAP;AAEA,wBAAoD,KAAKW,KAAzD;AAAA,UAAOkE,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,UAAK3D,cAAL,GAAuB,KAAKP,KAA5B,CAAKO,cAAL;;AACA,UAAI,OAAOA,cAAP,KAA0B,UAA9B,EAA0C;AACxCA,QAAAA,cAAc,GAAGA,cAAc,CAACwD,IAAD,CAA/B;AACD;;AAED,UACEC,gBAAgB,KAAKI,mBAArB,IACAH,uBAAuB,KAAKI,0BAF9B,EAGE;AACA,aAAK1E,QAAL,CAAc;AACZY,UAAAA,cAAc,EAAdA,cADY;AAEZyD,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,KAAKvE,OAAL,CAAamC,QAAb,CAAsBC,UAAtC;;AAEA,UAAI,KAAKtC,KAAL,CAAWP,MAAX,IAAqBsE,IAAI,CAACW,KAAL,KAAe,CAAC,CAAzC,EAA4C;AAC1C,YAAO9E,IAAP,GAAe4E,MAAM,CAACG,WAAP,CAAmB3E,KAAlC,CAAOJ,IAAP;AACAmE,QAAAA,IAAI,CAACI,MAAL,GAAc,0BAAgBvE,IAAhB,EAAsB;AAACgF,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,CAACvC,IAAL,CAAUsD,IAAxB,EAA8B,KAAK5E,OAAL,CAAamC,QAA3C,CAAxC;AACD;;AAED,aAAO0B,IAAP;AACD;;;WAED,gCAAuBvC,IAAvB,EAA6B;AAC3B,aAAO;AACLuD,QAAAA,sBAAsB,EAAE,KAAKC,yBAAL,CAA+BxD,IAA/B,CADnB;AAELjB,QAAAA,cAAc,EAAE,KAAKT,KAAL,CAAWS;AAFtB,OAAP;AAID;;;WAED,mCAA0BiB,IAA1B,EAAgC;AAC9B,yBAAoD,KAAK1B,KAAzD;AAAA,UAAOkE,gBAAP,gBAAOA,gBAAP;AAAA,UAAyBC,uBAAzB,gBAAyBA,uBAAzB;AACA,yBAAyD,KAAKjE,KAA9D;AAAA,UAAOb,gBAAP,gBAAOA,gBAAP;AAAA,UAAyBG,oBAAzB,gBAAyBA,oBAAzB;AAAA,UAA+CG,MAA/C,gBAA+CA,MAA/C;AACA,UAAMG,IAAI,GAAG4B,IAAI,CAACyD,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,UAAIxD,KAAK,CAACC,OAAN,CAAcb,IAAd,CAAJ,EAAyB;AACvB,eAAOA,IAAI,CAAC0F,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,IAAI7F,IAAI,IAAIH,MAAZ,EAAoB;AAEzB,eAAO,8BACLG,IADK,EAELT,gBAFK,EAGLkG,oBAHK,EAILH,aAAa,GAAG,EAAH,GAAQjB,uBAJhB,CAAP;AAMD;;AAED,aAAO,CAAC,CAAR;AACD;;;WAED,sBAAayB,UAAb,EAAyB;AACvB,0BAAyB,KAAKxF,OAA9B;AAAA,UAAOyF,IAAP,iBAAOA,IAAP;AAAA,UAAatD,QAAb,iBAAaA,QAAb;AACA,UAAMuD,KAAK,GAAGvD,QAAQ,CAACuD,KAAvB;AACA,UAAMC,MAAM,GAAGxD,QAAQ,CAACwD,MAAxB;AACA,UAAM9D,CAAC,GAAGM,QAAQ,CAACN,CAAnB;AACA,UAAMC,CAAC,GAAGK,QAAQ,CAACL,CAAnB;AACA,UAAM8D,QAAQ,GAAG,CAAC,KAAKC,EAAN,CAAjB;AACA,aAAOJ,IAAI,CAACK,WAAL,CAAiB;AAACjE,QAAAA,CAAC,EAADA,CAAD;AAAIC,QAAAA,CAAC,EAADA,CAAJ;AAAO4D,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,KAAKnE,KAAL,CAAWb,gBAAtB,CAApC;;AAEA,cAAIqH,SAAS,KAAKC,SAAlB,EAA6B;AAE3BH,YAAAA,gBAAgB,CAACI,IAAjB,CAAsBH,CAAC,CAACpC,MAAxB;AACD,WAHD,MAGO,IAAI,CAACiC,YAAY,CAACO,GAAb,CAAiBH,SAAjB,CAAL,EAAkC;AAEvCJ,YAAAA,YAAY,CAACQ,GAAb,CAAiBJ,SAAjB;AACAF,YAAAA,gBAAgB,CAACI,IAAjB,CAAsBH,CAAC,CAACpC,MAAxB;AACD;AACF;AAhBqC;AAAA;AAAA;AAAA;AAAA;;AAkBtC,aAAOmC,gBAAP;AACD;;;WAED,qCAA4B;AAAA;;AAC1B,UAAM1F,QAAQ,GAAG,aAAjB;AACA,UAAOb,OAAP,GAAkB,KAAKD,KAAvB,CAAOC,OAAP;AAEAA,MAAAA,OAAO,CAAC8G,aAAR,CAAsBC,OAAtB,CAA8B,UAAAtF,IAAI,EAAI;AACpC,YAAI,CAACA,IAAI,CAACuF,cAAL,CAAoBnG,QAApB,CAAL,EAAoC;AAElCoG,UAAAA,MAAM,CAACC,cAAP,CAAsBzF,IAAtB,EAA4BZ,QAA5B,EAAsC;AACpCsG,YAAAA,GAAG,EAAE,eAAM;AAET,kBAAI,CAAC1F,IAAI,CAACyD,OAAV,EAAmB;AACjB,uBAAO,IAAP;AACD;;AAED,kBAAI,KAAI,CAACjF,KAAL,CAAWP,MAAX,IAAqBe,KAAK,CAACC,OAAN,CAAce,IAAI,CAACyD,OAAnB,CAArB,IAAoD,CAACzD,IAAI,CAACyD,OAAL,CAAakC,MAAtE,EAA8E;AAG5E,uBAAO,EAAP;AACD;;AAED,kBAAI3F,IAAI,CAAC4F,aAAL,KAAuBX,SAA3B,EAAsC;AAEpC,oBAAMxB,OAAO,GAAG,KAAI,CAACjF,KAAL,CAAWP,MAAX,GAAoB,0BAAgB+B,IAAI,CAACyD,OAArB,CAApB,GAAoDzD,IAAI,CAACyD,OAAzE;AACAzD,gBAAAA,IAAI,CAAC4F,aAAL,GAAqBnC,OAAO,CAACoC,GAAR,CAAY,UAAA9B,OAAO;AAAA,yBACtCV,0BAA0B,CAACU,OAAD,EAAU/D,IAAI,CAACsD,IAAf,EAAqB,KAAI,CAAC5E,OAAL,CAAamC,QAAlC,CADY;AAAA,iBAAnB,CAArB;AAGD;;AACD,qBAAOb,IAAI,CAAC4F,aAAZ;AACD;AArBmC,WAAtC;AAuBD;AACF,OA3BD;AA4BD;;;EAlSmCE,kB;;;;AAqStC,SAAShD,kBAAT,CAA4BiB,OAA5B,EAAqCpG,gBAArC,EAAuD;AACrD,MAAIA,gBAAJ,EAAsB;AACpB,WAAOoG,OAAO,CAACgC,UAAR,CAAmBpI,gBAAnB,CAAP;AACD;;AAED,MAAI,QAAQoG,OAAZ,EAAqB;AACnB,WAAOA,OAAO,CAACQ,EAAf;AACD;;AAED,SAAOU,SAAP;AACD;;AAED,SAASlC,mBAAT,CAA6BgB,OAA7B,EAAsC;AAAA;;AACpC,SAAO,wBAAAA,OAAO,CAACgC,UAAR,4EAAoBC,SAApB,KAAiC,IAAxC;AACD;;AAED,SAASrC,kBAAT,CAA4B9F,KAA5B,EAAmC;AACjC,SAAOA,KAAK,KAAKoH,SAAV,IAAuBpH,KAAK,KAAK,IAAjC,IAAyCA,KAAK,KAAK,EAA1D;AACD;;AAED,SAASwF,0BAAT,CAAoCV,MAApC,EAA4CW,IAA5C,EAAkDzC,QAAlD,EAA4D;AAC1D,MAAMkD,OAAO,mCACRpB,MADQ;AAEXsD,IAAAA,QAAQ,EAAE;AACRrI,MAAAA,IAAI,EAAE+E,MAAM,CAACsD,QAAP,CAAgBrI;AADd;AAFC,IAAb;;AAQA4H,EAAAA,MAAM,CAACC,cAAP,CAAsB1B,OAAO,CAACkC,QAA9B,EAAwC,aAAxC,EAAuD;AACrDP,IAAAA,GAAG,EAAE,eAAM;AACT,UAAMQ,SAAS,GAAG,oCAAUvD,MAAM,CAACsD,QAAjB,EAA2B3C,IAA3B,EAAiCzC,QAAjC,CAAlB;AACA,aAAOqF,SAAS,CAACtF,WAAjB;AACD;AAJoD,GAAvD;AAOA,SAAOmD,OAAP;AACD;;AAED7F,QAAQ,CAAC8H,SAAT,GAAqB,UAArB;AACA9H,QAAQ,CAACR,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 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":"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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 ...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"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _GeoCellLayer2 = _interopRequireDefault(require("../geo-cell-layer/GeoCellLayer"));
21
+
22
+ var _quadkeyUtils = require("./quadkey-utils");
23
+
24
+ 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); }; }
25
+
26
+ 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; } }
27
+
28
+ var defaultProps = {
29
+ getQuadkey: {
30
+ type: 'accessor',
31
+ value: function value(d) {
32
+ return d.quadkey;
33
+ }
34
+ }
35
+ };
36
+
37
+ var QuadkeyLayer = function (_GeoCellLayer) {
38
+ (0, _inherits2.default)(QuadkeyLayer, _GeoCellLayer);
39
+
40
+ var _super = _createSuper(QuadkeyLayer);
41
+
42
+ function QuadkeyLayer() {
43
+ (0, _classCallCheck2.default)(this, QuadkeyLayer);
44
+ return _super.apply(this, arguments);
45
+ }
46
+
47
+ (0, _createClass2.default)(QuadkeyLayer, [{
48
+ key: "indexToBounds",
49
+ value: function indexToBounds() {
50
+ var _this$props = this.props,
51
+ data = _this$props.data,
52
+ getQuadkey = _this$props.getQuadkey;
53
+ return {
54
+ data: data,
55
+ _normalize: false,
56
+ positionFormat: 'XY',
57
+ getPolygon: function getPolygon(x, objectInfo) {
58
+ return (0, _quadkeyUtils.getQuadkeyPolygon)(getQuadkey(x, objectInfo));
59
+ }
60
+ };
61
+ }
62
+ }]);
63
+ return QuadkeyLayer;
64
+ }(_GeoCellLayer2.default);
65
+
66
+ exports.default = QuadkeyLayer;
67
+ QuadkeyLayer.layerName = 'QuadkeyLayer';
68
+ QuadkeyLayer.defaultProps = defaultProps;
69
+ //# sourceMappingURL=quadkey-layer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/quadkey-layer/quadkey-layer.js"],"names":["defaultProps","getQuadkey","type","value","d","quadkey","QuadkeyLayer","props","data","_normalize","positionFormat","getPolygon","x","objectInfo","GeoCellLayer","layerName"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,YAAY,GAAG;AACnBC,EAAAA,UAAU,EAAE;AAACC,IAAAA,IAAI,EAAE,UAAP;AAAmBC,IAAAA,KAAK,EAAE,eAAAC,CAAC;AAAA,aAAIA,CAAC,CAACC,OAAN;AAAA;AAA3B;AADO,CAArB;;IAIqBC,Y;;;;;;;;;;;;WACnB,yBAAgB;AACd,wBAA2B,KAAKC,KAAhC;AAAA,UAAOC,IAAP,eAAOA,IAAP;AAAA,UAAaP,UAAb,eAAaA,UAAb;AAEA,aAAO;AACLO,QAAAA,IAAI,EAAJA,IADK;AAELC,QAAAA,UAAU,EAAE,KAFP;AAGLC,QAAAA,cAAc,EAAE,IAHX;AAILC,QAAAA,UAAU,EAAE,oBAACC,CAAD,EAAIC,UAAJ;AAAA,iBAAmB,qCAAkBZ,UAAU,CAACW,CAAD,EAAIC,UAAJ,CAA5B,CAAnB;AAAA;AAJP,OAAP;AAMD;;;EAVuCC,sB;;;AAa1CR,YAAY,CAACS,SAAb,GAAyB,cAAzB;AACAT,YAAY,CAACN,YAAb,GAA4BA,YAA5B","sourcesContent":["import GeoCellLayer from '../geo-cell-layer/GeoCellLayer';\nimport {getQuadkeyPolygon} from './quadkey-utils';\n\nconst defaultProps = {\n getQuadkey: {type: 'accessor', value: d => d.quadkey}\n};\n\nexport default class QuadkeyLayer extends GeoCellLayer {\n indexToBounds() {\n const {data, getQuadkey} = this.props;\n\n return {\n data,\n _normalize: false,\n positionFormat: 'XY',\n getPolygon: (x, objectInfo) => getQuadkeyPolygon(getQuadkey(x, objectInfo))\n };\n }\n}\n\nQuadkeyLayer.layerName = 'QuadkeyLayer';\nQuadkeyLayer.defaultProps = defaultProps;\n"],"file":"quadkey-layer.js"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.quadkeyToWorldBounds = quadkeyToWorldBounds;
9
+ exports.getQuadkeyPolygon = getQuadkeyPolygon;
10
+
11
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
+
13
+ var _webMercator = require("@math.gl/web-mercator");
14
+
15
+ var TILE_SIZE = 512;
16
+
17
+ function quadkeyToWorldBounds(quadkey) {
18
+ var x = 0;
19
+ var y = 0;
20
+ var mask = 1 << quadkey.length;
21
+ var scale = mask / TILE_SIZE;
22
+
23
+ for (var i = 0; i < quadkey.length; i++) {
24
+ mask >>= 1;
25
+ var q = parseInt(quadkey[i]);
26
+ if (q % 2) x |= mask;
27
+ if (q > 1) y |= mask;
28
+ }
29
+
30
+ return [[x / scale, TILE_SIZE - y / scale], [(x + 0.99) / scale, TILE_SIZE - (y + 0.99) / scale]];
31
+ }
32
+
33
+ function getQuadkeyPolygon(quadkey) {
34
+ var _quadkeyToWorldBounds = quadkeyToWorldBounds(quadkey),
35
+ _quadkeyToWorldBounds2 = (0, _slicedToArray2.default)(_quadkeyToWorldBounds, 2),
36
+ topLeft = _quadkeyToWorldBounds2[0],
37
+ bottomRight = _quadkeyToWorldBounds2[1];
38
+
39
+ var _worldToLngLat = (0, _webMercator.worldToLngLat)(topLeft),
40
+ _worldToLngLat2 = (0, _slicedToArray2.default)(_worldToLngLat, 2),
41
+ w = _worldToLngLat2[0],
42
+ n = _worldToLngLat2[1];
43
+
44
+ var _worldToLngLat3 = (0, _webMercator.worldToLngLat)(bottomRight),
45
+ _worldToLngLat4 = (0, _slicedToArray2.default)(_worldToLngLat3, 2),
46
+ e = _worldToLngLat4[0],
47
+ s = _worldToLngLat4[1];
48
+
49
+ return [e, n, e, s, w, s, w, n, e, n];
50
+ }
51
+ //# sourceMappingURL=quadkey-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/quadkey-layer/quadkey-utils.js"],"names":["TILE_SIZE","quadkeyToWorldBounds","quadkey","x","y","mask","length","scale","i","q","parseInt","getQuadkeyPolygon","topLeft","bottomRight","w","n","e","s"],"mappings":";;;;;;;;;;;;AAAA;;AAEA,IAAMA,SAAS,GAAG,GAAlB;;AAEO,SAASC,oBAAT,CAA8BC,OAA9B,EAAuC;AAC5C,MAAIC,CAAC,GAAG,CAAR;AACA,MAAIC,CAAC,GAAG,CAAR;AACA,MAAIC,IAAI,GAAG,KAAKH,OAAO,CAACI,MAAxB;AACA,MAAMC,KAAK,GAAGF,IAAI,GAAGL,SAArB;;AAEA,OAAK,IAAIQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,OAAO,CAACI,MAA5B,EAAoCE,CAAC,EAArC,EAAyC;AACvCH,IAAAA,IAAI,KAAK,CAAT;AACA,QAAMI,CAAC,GAAGC,QAAQ,CAACR,OAAO,CAACM,CAAD,CAAR,CAAlB;AACA,QAAIC,CAAC,GAAG,CAAR,EAAWN,CAAC,IAAIE,IAAL;AACX,QAAII,CAAC,GAAG,CAAR,EAAWL,CAAC,IAAIC,IAAL;AACZ;;AACD,SAAO,CACL,CAACF,CAAC,GAAGI,KAAL,EAAYP,SAAS,GAAGI,CAAC,GAAGG,KAA5B,CADK,EAEL,CAAC,CAACJ,CAAC,GAAG,IAAL,IAAaI,KAAd,EAAqBP,SAAS,GAAG,CAACI,CAAC,GAAG,IAAL,IAAaG,KAA9C,CAFK,CAAP;AAID;;AAEM,SAASI,iBAAT,CAA2BT,OAA3B,EAAoC;AACzC,8BAA+BD,oBAAoB,CAACC,OAAD,CAAnD;AAAA;AAAA,MAAOU,OAAP;AAAA,MAAgBC,WAAhB;;AACA,uBAAe,gCAAcD,OAAd,CAAf;AAAA;AAAA,MAAOE,CAAP;AAAA,MAAUC,CAAV;;AACA,wBAAe,gCAAcF,WAAd,CAAf;AAAA;AAAA,MAAOG,CAAP;AAAA,MAAUC,CAAV;;AACA,SAAO,CAACD,CAAD,EAAID,CAAJ,EAAOC,CAAP,EAAUC,CAAV,EAAaH,CAAb,EAAgBG,CAAhB,EAAmBH,CAAnB,EAAsBC,CAAtB,EAAyBC,CAAzB,EAA4BD,CAA5B,CAAP;AACD","sourcesContent":["import {worldToLngLat} from '@math.gl/web-mercator';\n\nconst TILE_SIZE = 512;\n\nexport function quadkeyToWorldBounds(quadkey) {\n let x = 0;\n let y = 0;\n let mask = 1 << quadkey.length;\n const scale = mask / TILE_SIZE;\n\n for (let i = 0; i < quadkey.length; i++) {\n mask >>= 1;\n const q = parseInt(quadkey[i]);\n if (q % 2) x |= mask;\n if (q > 1) y |= mask;\n }\n return [\n [x / scale, TILE_SIZE - y / scale],\n [(x + 0.99) / scale, TILE_SIZE - (y + 0.99) / scale]\n ];\n}\n\nexport function getQuadkeyPolygon(quadkey) {\n const [topLeft, bottomRight] = quadkeyToWorldBounds(quadkey);\n const [w, n] = worldToLngLat(topLeft);\n const [e, s] = worldToLngLat(bottomRight);\n return [e, n, e, s, w, s, w, n, e, n];\n}\n"],"file":"quadkey-utils.js"}