@deck.gl/geo-layers 8.6.2 → 8.6.3
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 +1449 -1449
- package/dist/es5/great-circle-layer/great-circle-layer.js +1 -26
- package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-cluster-layer.js +87 -149
- package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-hexagon-layer.js +226 -321
- package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/es5/index.js +9 -9
- package/dist/es5/mesh-layer/mesh-layer.js +125 -151
- package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/es5/mvt-layer/coordinate-transform.js +19 -45
- package/dist/es5/mvt-layer/coordinate-transform.js.map +1 -1
- package/dist/es5/mvt-layer/find-index-binary.js +26 -45
- package/dist/es5/mvt-layer/find-index-binary.js.map +1 -1
- package/dist/es5/mvt-layer/mvt-layer.js +282 -374
- package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-geometry.js +32 -43
- package/dist/es5/s2-layer/s2-geometry.js.map +1 -1
- package/dist/es5/s2-layer/s2-layer.js +69 -104
- package/dist/es5/s2-layer/s2-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-utils.js +28 -27
- package/dist/es5/s2-layer/s2-utils.js.map +1 -1
- package/dist/es5/terrain-layer/terrain-layer.js +208 -254
- package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/es5/tile-3d-layer/tile-3d-layer.js +329 -382
- package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/es5/tile-layer/tile-2d-header.js +119 -183
- package/dist/es5/tile-layer/tile-2d-header.js.map +1 -1
- package/dist/es5/tile-layer/tile-2d-traversal.js +115 -178
- package/dist/es5/tile-layer/tile-2d-traversal.js.map +1 -1
- package/dist/es5/tile-layer/tile-layer.js +214 -258
- package/dist/es5/tile-layer/tile-layer.js.map +1 -1
- package/dist/es5/tile-layer/tileset-2d.js +290 -435
- package/dist/es5/tile-layer/tileset-2d.js.map +1 -1
- package/dist/es5/tile-layer/utils.js +61 -110
- package/dist/es5/tile-layer/utils.js.map +1 -1
- package/dist/es5/trips-layer/trips-layer.js +44 -81
- package/dist/es5/trips-layer/trips-layer.js.map +1 -1
- package/dist.min.js +1 -1
- package/package.json +2 -2
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
3
|
Object.defineProperty(exports, "__esModule", {
|
|
6
4
|
value: true
|
|
7
5
|
});
|
|
@@ -9,22 +7,6 @@ exports.normalizeLongitudes = normalizeLongitudes;
|
|
|
9
7
|
exports.scalePolygon = scalePolygon;
|
|
10
8
|
exports.default = void 0;
|
|
11
9
|
|
|
12
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
13
|
-
|
|
14
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
|
-
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
|
-
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
22
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
|
-
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
25
|
-
|
|
26
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
27
|
-
|
|
28
10
|
var _h3Js = require("h3-js");
|
|
29
11
|
|
|
30
12
|
var _math = require("math.gl");
|
|
@@ -33,77 +15,42 @@ var _core = require("@deck.gl/core");
|
|
|
33
15
|
|
|
34
16
|
var _layers = require("@deck.gl/layers");
|
|
35
17
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
|
|
39
|
-
|
|
40
|
-
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; }
|
|
41
|
-
|
|
42
|
-
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; }
|
|
43
|
-
|
|
44
|
-
function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { 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 = o[Symbol.iterator](); }, 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; } } }; }
|
|
45
|
-
|
|
46
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
47
|
-
|
|
48
|
-
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; }
|
|
49
|
-
|
|
50
|
-
var UPDATE_THRESHOLD_KM = 10;
|
|
18
|
+
const UPDATE_THRESHOLD_KM = 10;
|
|
51
19
|
|
|
52
20
|
function normalizeLongitudes(vertices, refLng) {
|
|
53
21
|
refLng = refLng === undefined ? vertices[0][0] : refLng;
|
|
54
22
|
|
|
55
|
-
|
|
56
|
-
|
|
23
|
+
for (const pt of vertices) {
|
|
24
|
+
const deltaLng = pt[0] - refLng;
|
|
57
25
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (deltaLng > 180) {
|
|
64
|
-
pt[0] -= 360;
|
|
65
|
-
} else if (deltaLng < -180) {
|
|
66
|
-
pt[0] += 360;
|
|
67
|
-
}
|
|
26
|
+
if (deltaLng > 180) {
|
|
27
|
+
pt[0] -= 360;
|
|
28
|
+
} else if (deltaLng < -180) {
|
|
29
|
+
pt[0] += 360;
|
|
68
30
|
}
|
|
69
|
-
} catch (err) {
|
|
70
|
-
_iterator.e(err);
|
|
71
|
-
} finally {
|
|
72
|
-
_iterator.f();
|
|
73
31
|
}
|
|
74
32
|
}
|
|
75
33
|
|
|
76
34
|
function scalePolygon(hexId, vertices, factor) {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
lat = _h3ToGeo2[0],
|
|
80
|
-
lng = _h3ToGeo2[1];
|
|
81
|
-
|
|
82
|
-
var actualCount = vertices.length;
|
|
35
|
+
const [lat, lng] = (0, _h3Js.h3ToGeo)(hexId);
|
|
36
|
+
const actualCount = vertices.length;
|
|
83
37
|
normalizeLongitudes(vertices, lng);
|
|
84
|
-
|
|
38
|
+
const vertexCount = vertices[0] === vertices[actualCount - 1] ? actualCount - 1 : actualCount;
|
|
85
39
|
|
|
86
|
-
for (
|
|
40
|
+
for (let i = 0; i < vertexCount; i++) {
|
|
87
41
|
vertices[i][0] = (0, _math.lerp)(lng, vertices[i][0], factor);
|
|
88
42
|
vertices[i][1] = (0, _math.lerp)(lat, vertices[i][1], factor);
|
|
89
43
|
}
|
|
90
44
|
}
|
|
91
45
|
|
|
92
46
|
function getHexagonCentroid(getHexagon, object, objectInfo) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
var _h3ToGeo3 = (0, _h3Js.h3ToGeo)(hexagonId),
|
|
96
|
-
_h3ToGeo4 = (0, _slicedToArray2.default)(_h3ToGeo3, 2),
|
|
97
|
-
lat = _h3ToGeo4[0],
|
|
98
|
-
lng = _h3ToGeo4[1];
|
|
99
|
-
|
|
47
|
+
const hexagonId = getHexagon(object, objectInfo);
|
|
48
|
+
const [lat, lng] = (0, _h3Js.h3ToGeo)(hexagonId);
|
|
100
49
|
return [lng, lat];
|
|
101
50
|
}
|
|
102
51
|
|
|
103
|
-
function h3ToPolygon(hexId) {
|
|
104
|
-
|
|
105
|
-
var flatten = arguments.length > 2 ? arguments[2] : undefined;
|
|
106
|
-
var vertices = (0, _h3Js.h3ToGeoBoundary)(hexId, true);
|
|
52
|
+
function h3ToPolygon(hexId, coverage = 1, flatten) {
|
|
53
|
+
const vertices = (0, _h3Js.h3ToGeoBoundary)(hexId, true);
|
|
107
54
|
|
|
108
55
|
if (coverage !== 1) {
|
|
109
56
|
scalePolygon(hexId, vertices, coverage);
|
|
@@ -112,22 +59,12 @@ function h3ToPolygon(hexId) {
|
|
|
112
59
|
}
|
|
113
60
|
|
|
114
61
|
if (flatten) {
|
|
115
|
-
|
|
116
|
-
|
|
62
|
+
const positions = new Float64Array(vertices.length * 2);
|
|
63
|
+
let i = 0;
|
|
117
64
|
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
try {
|
|
122
|
-
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
123
|
-
var pt = _step2.value;
|
|
124
|
-
positions[i++] = pt[0];
|
|
125
|
-
positions[i++] = pt[1];
|
|
126
|
-
}
|
|
127
|
-
} catch (err) {
|
|
128
|
-
_iterator2.e(err);
|
|
129
|
-
} finally {
|
|
130
|
-
_iterator2.f();
|
|
65
|
+
for (const pt of vertices) {
|
|
66
|
+
positions[i++] = pt[0];
|
|
67
|
+
positions[i++] = pt[1];
|
|
131
68
|
}
|
|
132
69
|
|
|
133
70
|
return positions;
|
|
@@ -137,25 +74,25 @@ function h3ToPolygon(hexId) {
|
|
|
137
74
|
}
|
|
138
75
|
|
|
139
76
|
function mergeTriggers(getHexagon, coverage) {
|
|
140
|
-
|
|
77
|
+
let trigger;
|
|
141
78
|
|
|
142
79
|
if (getHexagon === undefined || getHexagon === null) {
|
|
143
80
|
trigger = coverage;
|
|
144
|
-
} else if (
|
|
145
|
-
trigger =
|
|
146
|
-
coverage
|
|
147
|
-
}
|
|
81
|
+
} else if (typeof getHexagon === 'object') {
|
|
82
|
+
trigger = { ...getHexagon,
|
|
83
|
+
coverage
|
|
84
|
+
};
|
|
148
85
|
} else {
|
|
149
86
|
trigger = {
|
|
150
|
-
getHexagon
|
|
151
|
-
coverage
|
|
87
|
+
getHexagon,
|
|
88
|
+
coverage
|
|
152
89
|
};
|
|
153
90
|
}
|
|
154
91
|
|
|
155
92
|
return trigger;
|
|
156
93
|
}
|
|
157
94
|
|
|
158
|
-
|
|
95
|
+
const defaultProps = { ..._layers.PolygonLayer.defaultProps,
|
|
159
96
|
highPrecision: 'auto',
|
|
160
97
|
coverage: {
|
|
161
98
|
type: 'number',
|
|
@@ -166,263 +103,231 @@ var defaultProps = _objectSpread(_objectSpread({}, _layers.PolygonLayer.defaultP
|
|
|
166
103
|
centerHexagon: null,
|
|
167
104
|
getHexagon: {
|
|
168
105
|
type: 'accessor',
|
|
169
|
-
value:
|
|
170
|
-
return x.hexagon;
|
|
171
|
-
}
|
|
106
|
+
value: x => x.hexagon
|
|
172
107
|
},
|
|
173
108
|
extruded: true
|
|
174
|
-
}
|
|
175
|
-
|
|
109
|
+
};
|
|
176
110
|
delete defaultProps.getLineDashArray;
|
|
177
111
|
|
|
178
|
-
|
|
179
|
-
(
|
|
112
|
+
class H3HexagonLayer extends _core.CompositeLayer {
|
|
113
|
+
shouldUpdateState({
|
|
114
|
+
changeFlags
|
|
115
|
+
}) {
|
|
116
|
+
return this._shouldUseHighPrecision() ? changeFlags.propsOrDataChanged : changeFlags.somethingChanged;
|
|
117
|
+
}
|
|
180
118
|
|
|
181
|
-
|
|
119
|
+
updateState({
|
|
120
|
+
props,
|
|
121
|
+
oldProps,
|
|
122
|
+
changeFlags
|
|
123
|
+
}) {
|
|
124
|
+
if (props.highPrecision !== true && (changeFlags.dataChanged || changeFlags.updateTriggers && changeFlags.updateTriggers.getHexagon)) {
|
|
125
|
+
const dataProps = this._calculateH3DataProps(props);
|
|
182
126
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
127
|
+
this.setState(dataProps);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
this._updateVertices(this.context.viewport);
|
|
186
131
|
}
|
|
187
132
|
|
|
188
|
-
(
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
value: function updateState(_ref2) {
|
|
197
|
-
var props = _ref2.props,
|
|
198
|
-
oldProps = _ref2.oldProps,
|
|
199
|
-
changeFlags = _ref2.changeFlags;
|
|
133
|
+
_calculateH3DataProps(props) {
|
|
134
|
+
let resolution = -1;
|
|
135
|
+
let hasPentagon = false;
|
|
136
|
+
let hasMultipleRes = false;
|
|
137
|
+
const {
|
|
138
|
+
iterable,
|
|
139
|
+
objectInfo
|
|
140
|
+
} = (0, _core.createIterable)(props.data);
|
|
200
141
|
|
|
201
|
-
|
|
202
|
-
|
|
142
|
+
for (const object of iterable) {
|
|
143
|
+
objectInfo.index++;
|
|
144
|
+
const hexId = props.getHexagon(object, objectInfo);
|
|
145
|
+
const hexResolution = (0, _h3Js.h3GetResolution)(hexId);
|
|
203
146
|
|
|
204
|
-
|
|
147
|
+
if (resolution < 0) {
|
|
148
|
+
resolution = hexResolution;
|
|
149
|
+
if (!props.highPrecision) break;
|
|
150
|
+
} else if (resolution !== hexResolution) {
|
|
151
|
+
hasMultipleRes = true;
|
|
152
|
+
break;
|
|
205
153
|
}
|
|
206
154
|
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
key: "_calculateH3DataProps",
|
|
211
|
-
value: function _calculateH3DataProps(props) {
|
|
212
|
-
var resolution = -1;
|
|
213
|
-
var hasPentagon = false;
|
|
214
|
-
var hasMultipleRes = false;
|
|
215
|
-
|
|
216
|
-
var _createIterable = (0, _core.createIterable)(props.data),
|
|
217
|
-
iterable = _createIterable.iterable,
|
|
218
|
-
objectInfo = _createIterable.objectInfo;
|
|
219
|
-
|
|
220
|
-
var _iterator3 = _createForOfIteratorHelper(iterable),
|
|
221
|
-
_step3;
|
|
222
|
-
|
|
223
|
-
try {
|
|
224
|
-
for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
|
|
225
|
-
var object = _step3.value;
|
|
226
|
-
objectInfo.index++;
|
|
227
|
-
var hexId = props.getHexagon(object, objectInfo);
|
|
228
|
-
var hexResolution = (0, _h3Js.h3GetResolution)(hexId);
|
|
229
|
-
|
|
230
|
-
if (resolution < 0) {
|
|
231
|
-
resolution = hexResolution;
|
|
232
|
-
if (!props.highPrecision) break;
|
|
233
|
-
} else if (resolution !== hexResolution) {
|
|
234
|
-
hasMultipleRes = true;
|
|
235
|
-
break;
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
if ((0, _h3Js.h3IsPentagon)(hexId)) {
|
|
239
|
-
hasPentagon = true;
|
|
240
|
-
break;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
} catch (err) {
|
|
244
|
-
_iterator3.e(err);
|
|
245
|
-
} finally {
|
|
246
|
-
_iterator3.f();
|
|
155
|
+
if ((0, _h3Js.h3IsPentagon)(hexId)) {
|
|
156
|
+
hasPentagon = true;
|
|
157
|
+
break;
|
|
247
158
|
}
|
|
159
|
+
}
|
|
248
160
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
161
|
+
return {
|
|
162
|
+
resolution,
|
|
163
|
+
edgeLengthKM: resolution >= 0 ? (0, _h3Js.edgeLength)(resolution, _h3Js.UNITS.km) : 0,
|
|
164
|
+
hasMultipleRes,
|
|
165
|
+
hasPentagon
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
_shouldUseHighPrecision() {
|
|
170
|
+
if (this.props.highPrecision === 'auto') {
|
|
171
|
+
const {
|
|
172
|
+
resolution,
|
|
173
|
+
hasPentagon,
|
|
174
|
+
hasMultipleRes
|
|
175
|
+
} = this.state;
|
|
176
|
+
const {
|
|
177
|
+
viewport
|
|
178
|
+
} = this.context;
|
|
179
|
+
return viewport.resolution || hasMultipleRes || hasPentagon || resolution >= 0 && resolution <= 5;
|
|
255
180
|
}
|
|
256
|
-
}, {
|
|
257
|
-
key: "_shouldUseHighPrecision",
|
|
258
|
-
value: function _shouldUseHighPrecision() {
|
|
259
|
-
if (this.props.highPrecision === 'auto') {
|
|
260
|
-
var _this$state = this.state,
|
|
261
|
-
resolution = _this$state.resolution,
|
|
262
|
-
hasPentagon = _this$state.hasPentagon,
|
|
263
|
-
hasMultipleRes = _this$state.hasMultipleRes;
|
|
264
|
-
var viewport = this.context.viewport;
|
|
265
|
-
return viewport.resolution || hasMultipleRes || hasPentagon || resolution >= 0 && resolution <= 5;
|
|
266
|
-
}
|
|
267
181
|
|
|
268
|
-
|
|
182
|
+
return this.props.highPrecision;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
_updateVertices(viewport) {
|
|
186
|
+
if (this._shouldUseHighPrecision()) {
|
|
187
|
+
return;
|
|
269
188
|
}
|
|
270
|
-
}, {
|
|
271
|
-
key: "_updateVertices",
|
|
272
|
-
value: function _updateVertices(viewport) {
|
|
273
|
-
if (this._shouldUseHighPrecision()) {
|
|
274
|
-
return;
|
|
275
|
-
}
|
|
276
189
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
190
|
+
const {
|
|
191
|
+
resolution,
|
|
192
|
+
edgeLengthKM,
|
|
193
|
+
centerHex
|
|
194
|
+
} = this.state;
|
|
281
195
|
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
196
|
+
if (resolution < 0) {
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
const hex = this.props.centerHexagon || (0, _h3Js.geoToH3)(viewport.latitude, viewport.longitude, resolution);
|
|
201
|
+
|
|
202
|
+
if (centerHex === hex) {
|
|
203
|
+
return;
|
|
204
|
+
}
|
|
285
205
|
|
|
286
|
-
|
|
206
|
+
if (centerHex) {
|
|
207
|
+
const distance = (0, _h3Js.h3Distance)(centerHex, hex);
|
|
287
208
|
|
|
288
|
-
if (
|
|
209
|
+
if (distance >= 0 && distance * edgeLengthKM < UPDATE_THRESHOLD_KM) {
|
|
289
210
|
return;
|
|
290
211
|
}
|
|
212
|
+
}
|
|
291
213
|
|
|
292
|
-
|
|
293
|
-
|
|
214
|
+
const {
|
|
215
|
+
unitsPerMeter
|
|
216
|
+
} = viewport.distanceScales;
|
|
217
|
+
let vertices = h3ToPolygon(hex);
|
|
218
|
+
const [centerLat, centerLng] = (0, _h3Js.h3ToGeo)(hex);
|
|
219
|
+
const [centerX, centerY] = viewport.projectFlat([centerLng, centerLat]);
|
|
220
|
+
vertices = vertices.map(p => {
|
|
221
|
+
const worldPosition = viewport.projectFlat(p);
|
|
222
|
+
return [(worldPosition[0] - centerX) / unitsPerMeter[0], (worldPosition[1] - centerY) / unitsPerMeter[1]];
|
|
223
|
+
});
|
|
224
|
+
this.setState({
|
|
225
|
+
centerHex: hex,
|
|
226
|
+
vertices
|
|
227
|
+
});
|
|
228
|
+
}
|
|
294
229
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
230
|
+
renderLayers() {
|
|
231
|
+
return this._shouldUseHighPrecision() ? this._renderPolygonLayer() : this._renderColumnLayer();
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
_getForwardProps() {
|
|
235
|
+
const {
|
|
236
|
+
elevationScale,
|
|
237
|
+
material,
|
|
238
|
+
coverage,
|
|
239
|
+
extruded,
|
|
240
|
+
wireframe,
|
|
241
|
+
stroked,
|
|
242
|
+
filled,
|
|
243
|
+
lineWidthUnits,
|
|
244
|
+
lineWidthScale,
|
|
245
|
+
lineWidthMinPixels,
|
|
246
|
+
lineWidthMaxPixels,
|
|
247
|
+
getFillColor,
|
|
248
|
+
getElevation,
|
|
249
|
+
getLineColor,
|
|
250
|
+
getLineWidth,
|
|
251
|
+
transitions,
|
|
252
|
+
updateTriggers
|
|
253
|
+
} = this.props;
|
|
254
|
+
return {
|
|
255
|
+
elevationScale,
|
|
256
|
+
extruded,
|
|
257
|
+
coverage,
|
|
258
|
+
wireframe,
|
|
259
|
+
stroked,
|
|
260
|
+
filled,
|
|
261
|
+
lineWidthUnits,
|
|
262
|
+
lineWidthScale,
|
|
263
|
+
lineWidthMinPixels,
|
|
264
|
+
lineWidthMaxPixels,
|
|
265
|
+
material,
|
|
266
|
+
getElevation,
|
|
267
|
+
getFillColor,
|
|
268
|
+
getLineColor,
|
|
269
|
+
getLineWidth,
|
|
270
|
+
transitions,
|
|
271
|
+
updateTriggers: {
|
|
272
|
+
getFillColor: updateTriggers.getFillColor,
|
|
273
|
+
getElevation: updateTriggers.getElevation,
|
|
274
|
+
getLineColor: updateTriggers.getLineColor,
|
|
275
|
+
getLineWidth: updateTriggers.getLineWidth
|
|
298
276
|
}
|
|
277
|
+
};
|
|
278
|
+
}
|
|
299
279
|
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
coverage: coverage,
|
|
352
|
-
wireframe: wireframe,
|
|
353
|
-
stroked: stroked,
|
|
354
|
-
filled: filled,
|
|
355
|
-
lineWidthUnits: lineWidthUnits,
|
|
356
|
-
lineWidthScale: lineWidthScale,
|
|
357
|
-
lineWidthMinPixels: lineWidthMinPixels,
|
|
358
|
-
lineWidthMaxPixels: lineWidthMaxPixels,
|
|
359
|
-
material: material,
|
|
360
|
-
getElevation: getElevation,
|
|
361
|
-
getFillColor: getFillColor,
|
|
362
|
-
getLineColor: getLineColor,
|
|
363
|
-
getLineWidth: getLineWidth,
|
|
364
|
-
transitions: transitions,
|
|
365
|
-
updateTriggers: {
|
|
366
|
-
getFillColor: updateTriggers.getFillColor,
|
|
367
|
-
getElevation: updateTriggers.getElevation,
|
|
368
|
-
getLineColor: updateTriggers.getLineColor,
|
|
369
|
-
getLineWidth: updateTriggers.getLineWidth
|
|
370
|
-
}
|
|
371
|
-
};
|
|
372
|
-
}
|
|
373
|
-
}, {
|
|
374
|
-
key: "_renderPolygonLayer",
|
|
375
|
-
value: function _renderPolygonLayer() {
|
|
376
|
-
var _this$props2 = this.props,
|
|
377
|
-
data = _this$props2.data,
|
|
378
|
-
getHexagon = _this$props2.getHexagon,
|
|
379
|
-
updateTriggers = _this$props2.updateTriggers,
|
|
380
|
-
coverage = _this$props2.coverage;
|
|
381
|
-
var SubLayerClass = this.getSubLayerClass('hexagon-cell-hifi', _layers.PolygonLayer);
|
|
382
|
-
|
|
383
|
-
var forwardProps = this._getForwardProps();
|
|
384
|
-
|
|
385
|
-
forwardProps.updateTriggers.getPolygon = mergeTriggers(updateTriggers.getHexagon, coverage);
|
|
386
|
-
return new SubLayerClass(forwardProps, this.getSubLayerProps({
|
|
387
|
-
id: 'hexagon-cell-hifi',
|
|
388
|
-
updateTriggers: forwardProps.updateTriggers
|
|
389
|
-
}), {
|
|
390
|
-
data: data,
|
|
391
|
-
_normalize: false,
|
|
392
|
-
_windingOrder: 'CCW',
|
|
393
|
-
positionFormat: 'XY',
|
|
394
|
-
getPolygon: function getPolygon(object, objectInfo) {
|
|
395
|
-
var hexagonId = getHexagon(object, objectInfo);
|
|
396
|
-
return h3ToPolygon(hexagonId, coverage, true);
|
|
397
|
-
}
|
|
398
|
-
});
|
|
399
|
-
}
|
|
400
|
-
}, {
|
|
401
|
-
key: "_renderColumnLayer",
|
|
402
|
-
value: function _renderColumnLayer() {
|
|
403
|
-
var _this$props3 = this.props,
|
|
404
|
-
data = _this$props3.data,
|
|
405
|
-
getHexagon = _this$props3.getHexagon,
|
|
406
|
-
updateTriggers = _this$props3.updateTriggers;
|
|
407
|
-
var SubLayerClass = this.getSubLayerClass('hexagon-cell', _layers.ColumnLayer);
|
|
408
|
-
|
|
409
|
-
var forwardProps = this._getForwardProps();
|
|
410
|
-
|
|
411
|
-
forwardProps.updateTriggers.getPosition = updateTriggers.getHexagon;
|
|
412
|
-
return new SubLayerClass(forwardProps, this.getSubLayerProps({
|
|
413
|
-
id: 'hexagon-cell',
|
|
414
|
-
updateTriggers: forwardProps.updateTriggers
|
|
415
|
-
}), {
|
|
416
|
-
data: data,
|
|
417
|
-
diskResolution: 6,
|
|
418
|
-
radius: 1,
|
|
419
|
-
vertices: this.state.vertices,
|
|
420
|
-
getPosition: getHexagonCentroid.bind(null, getHexagon)
|
|
421
|
-
});
|
|
422
|
-
}
|
|
423
|
-
}]);
|
|
424
|
-
return H3HexagonLayer;
|
|
425
|
-
}(_core.CompositeLayer);
|
|
280
|
+
_renderPolygonLayer() {
|
|
281
|
+
const {
|
|
282
|
+
data,
|
|
283
|
+
getHexagon,
|
|
284
|
+
updateTriggers,
|
|
285
|
+
coverage
|
|
286
|
+
} = this.props;
|
|
287
|
+
const SubLayerClass = this.getSubLayerClass('hexagon-cell-hifi', _layers.PolygonLayer);
|
|
288
|
+
|
|
289
|
+
const forwardProps = this._getForwardProps();
|
|
290
|
+
|
|
291
|
+
forwardProps.updateTriggers.getPolygon = mergeTriggers(updateTriggers.getHexagon, coverage);
|
|
292
|
+
return new SubLayerClass(forwardProps, this.getSubLayerProps({
|
|
293
|
+
id: 'hexagon-cell-hifi',
|
|
294
|
+
updateTriggers: forwardProps.updateTriggers
|
|
295
|
+
}), {
|
|
296
|
+
data,
|
|
297
|
+
_normalize: false,
|
|
298
|
+
_windingOrder: 'CCW',
|
|
299
|
+
positionFormat: 'XY',
|
|
300
|
+
getPolygon: (object, objectInfo) => {
|
|
301
|
+
const hexagonId = getHexagon(object, objectInfo);
|
|
302
|
+
return h3ToPolygon(hexagonId, coverage, true);
|
|
303
|
+
}
|
|
304
|
+
});
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
_renderColumnLayer() {
|
|
308
|
+
const {
|
|
309
|
+
data,
|
|
310
|
+
getHexagon,
|
|
311
|
+
updateTriggers
|
|
312
|
+
} = this.props;
|
|
313
|
+
const SubLayerClass = this.getSubLayerClass('hexagon-cell', _layers.ColumnLayer);
|
|
314
|
+
|
|
315
|
+
const forwardProps = this._getForwardProps();
|
|
316
|
+
|
|
317
|
+
forwardProps.updateTriggers.getPosition = updateTriggers.getHexagon;
|
|
318
|
+
return new SubLayerClass(forwardProps, this.getSubLayerProps({
|
|
319
|
+
id: 'hexagon-cell',
|
|
320
|
+
updateTriggers: forwardProps.updateTriggers
|
|
321
|
+
}), {
|
|
322
|
+
data,
|
|
323
|
+
diskResolution: 6,
|
|
324
|
+
radius: 1,
|
|
325
|
+
vertices: this.state.vertices,
|
|
326
|
+
getPosition: getHexagonCentroid.bind(null, getHexagon)
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
}
|
|
426
331
|
|
|
427
332
|
exports.default = H3HexagonLayer;
|
|
428
333
|
H3HexagonLayer.defaultProps = defaultProps;
|