@antv/l7-map 2.15.2 → 2.15.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.
Files changed (103) hide show
  1. package/es/camera.js +90 -148
  2. package/es/earthmap.js +13 -65
  3. package/es/geo/edge_insets.js +4 -14
  4. package/es/geo/lng_lat.js +5 -13
  5. package/es/geo/lng_lat_bounds.js +4 -17
  6. package/es/geo/mercator.js +2 -10
  7. package/es/geo/point.js +0 -7
  8. package/es/geo/simple.js +6 -11
  9. package/es/geo/transform.js +123 -132
  10. package/es/handler/blockable_map_event.js +7 -12
  11. package/es/handler/box_zoom.js +10 -30
  12. package/es/handler/click_zoom.js +0 -5
  13. package/es/handler/events/event.js +0 -2
  14. package/es/handler/events/map_mouse_event.js +0 -12
  15. package/es/handler/events/map_touch_event.js +2 -12
  16. package/es/handler/events/map_wheel_event.js +1 -12
  17. package/es/handler/events/render_event.js +0 -13
  18. package/es/handler/handler_inertia.js +6 -34
  19. package/es/handler/handler_manager.js +55 -147
  20. package/es/handler/handler_util.js +1 -2
  21. package/es/handler/keyboard.js +1 -20
  22. package/es/handler/map_event.js +3 -9
  23. package/es/handler/mouse/mouse_handler.js +11 -24
  24. package/es/handler/mouse/mousepan_handler.js +1 -11
  25. package/es/handler/mouse/mousepitch_hander.js +1 -11
  26. package/es/handler/mouse/mouserotate_hander.js +1 -11
  27. package/es/handler/mouse/util.js +2 -3
  28. package/es/handler/scroll_zoom.js +43 -71
  29. package/es/handler/shim/dblclick_zoom.js +4 -9
  30. package/es/handler/shim/drag_pan.js +4 -11
  31. package/es/handler/shim/drag_rotate.js +4 -10
  32. package/es/handler/shim/touch_zoom_rotate.js +6 -16
  33. package/es/handler/tap/single_tap_recognizer.js +8 -31
  34. package/es/handler/tap/tap_drag_zoom.js +7 -15
  35. package/es/handler/tap/tap_recognizer.js +3 -11
  36. package/es/handler/tap/tap_zoom.js +1 -7
  37. package/es/handler/touch/touch_pan.js +4 -22
  38. package/es/handler/touch/touch_pitch.js +10 -27
  39. package/es/handler/touch/touch_rotate.js +8 -19
  40. package/es/handler/touch/touch_zoom.js +5 -18
  41. package/es/handler/touch/two_touch.js +19 -32
  42. package/es/hash.js +9 -31
  43. package/es/map.js +16 -78
  44. package/es/util.js +18 -23
  45. package/es/utils/Aabb.js +10 -31
  46. package/es/utils/dom.js +24 -58
  47. package/es/utils/performance.js +8 -7
  48. package/es/utils/primitives.js +13 -11
  49. package/es/utils/task_queue.js +6 -23
  50. package/lib/camera.js +90 -168
  51. package/lib/earthmap.js +11 -79
  52. package/lib/geo/edge_insets.js +3 -18
  53. package/lib/geo/lng_lat.js +5 -18
  54. package/lib/geo/lng_lat_bounds.js +4 -20
  55. package/lib/geo/mercator.js +1 -22
  56. package/lib/geo/point.js +0 -8
  57. package/lib/geo/simple.js +5 -24
  58. package/lib/geo/transform.js +123 -164
  59. package/lib/handler/blockable_map_event.js +6 -14
  60. package/lib/handler/box_zoom.js +8 -39
  61. package/lib/handler/click_zoom.js +0 -6
  62. package/lib/handler/events/event.js +0 -5
  63. package/lib/handler/events/index.js +0 -4
  64. package/lib/handler/events/map_mouse_event.js +0 -19
  65. package/lib/handler/events/map_touch_event.js +1 -20
  66. package/lib/handler/events/map_wheel_event.js +1 -16
  67. package/lib/handler/events/render_event.js +0 -19
  68. package/lib/handler/handler_inertia.js +4 -37
  69. package/lib/handler/handler_manager.js +55 -171
  70. package/lib/handler/handler_util.js +1 -3
  71. package/lib/handler/keyboard.js +1 -22
  72. package/lib/handler/map_event.js +2 -11
  73. package/lib/handler/mouse/index.js +0 -4
  74. package/lib/handler/mouse/mouse_handler.js +10 -27
  75. package/lib/handler/mouse/mousepan_handler.js +0 -17
  76. package/lib/handler/mouse/mousepitch_hander.js +0 -16
  77. package/lib/handler/mouse/mouserotate_hander.js +0 -16
  78. package/lib/handler/mouse/util.js +2 -6
  79. package/lib/handler/scroll_zoom.js +43 -77
  80. package/lib/handler/shim/dblclick_zoom.js +4 -10
  81. package/lib/handler/shim/drag_pan.js +4 -13
  82. package/lib/handler/shim/drag_rotate.js +4 -11
  83. package/lib/handler/shim/touch_zoom_rotate.js +6 -18
  84. package/lib/handler/tap/single_tap_recognizer.js +8 -33
  85. package/lib/handler/tap/tap_drag_zoom.js +6 -18
  86. package/lib/handler/tap/tap_recognizer.js +2 -17
  87. package/lib/handler/tap/tap_zoom.js +0 -9
  88. package/lib/handler/touch/index.js +0 -5
  89. package/lib/handler/touch/touch_pan.js +4 -25
  90. package/lib/handler/touch/touch_pitch.js +9 -31
  91. package/lib/handler/touch/touch_rotate.js +7 -24
  92. package/lib/handler/touch/touch_zoom.js +4 -23
  93. package/lib/handler/touch/two_touch.js +18 -35
  94. package/lib/hash.js +8 -35
  95. package/lib/index.js +0 -8
  96. package/lib/map.js +14 -94
  97. package/lib/util.js +16 -34
  98. package/lib/utils/Aabb.js +10 -34
  99. package/lib/utils/dom.js +22 -64
  100. package/lib/utils/performance.js +8 -9
  101. package/lib/utils/primitives.js +13 -16
  102. package/lib/utils/task_queue.js +6 -24
  103. package/package.json +3 -3
package/lib/camera.js CHANGED
@@ -1,63 +1,40 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.default = void 0;
9
-
10
8
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
9
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
-
16
11
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
17
-
18
12
  var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
19
-
20
13
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
-
22
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
15
  var _eventemitter = require("eventemitter3");
25
-
26
16
  var _lodash = require("lodash");
27
-
28
17
  var _lng_lat = _interopRequireDefault(require("./geo/lng_lat"));
29
-
30
18
  var _lng_lat_bounds = _interopRequireDefault(require("./geo/lng_lat_bounds"));
31
-
32
19
  var _point = _interopRequireDefault(require("./geo/point"));
33
-
34
20
  var _transform = _interopRequireDefault(require("./geo/transform"));
35
-
36
21
  var _event = require("./handler/events/event");
37
-
38
22
  var _util = require("./util");
39
-
40
23
  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); }; }
41
-
42
24
  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; } }
43
-
44
25
  var Camera = /*#__PURE__*/function (_EventEmitter) {
45
26
  (0, _inherits2.default)(Camera, _EventEmitter);
46
-
47
27
  var _super = _createSuper(Camera);
48
-
49
28
  // public requestRenderFrame: (_: any) => number;
50
29
  // public cancelRenderFrame: (_: number) => void;
30
+
51
31
  function Camera(options) {
52
32
  var _this;
53
-
54
33
  (0, _classCallCheck2.default)(this, Camera);
55
34
  _this = _super.call(this);
56
35
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "renderFrameCallback", function () {
57
36
  var t = Math.min(((0, _util.now)() - _this.easeStart) / _this.easeOptions.duration, 1);
58
-
59
37
  _this.onEaseFrame(_this.easeOptions.easing(t));
60
-
61
38
  if (t < 1) {
62
39
  // this.easeFrameId = window.requestAnimationFrame(this.renderFrameCallback);
63
40
  _this.easeFrameId = _this.requestRenderFrame(_this.renderFrameCallback);
@@ -67,10 +44,10 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
67
44
  });
68
45
  _this.options = options;
69
46
  var minZoom = options.minZoom,
70
- maxZoom = options.maxZoom,
71
- minPitch = options.minPitch,
72
- maxPitch = options.maxPitch,
73
- renderWorldCopies = options.renderWorldCopies;
47
+ maxZoom = options.maxZoom,
48
+ minPitch = options.minPitch,
49
+ maxPitch = options.maxPitch,
50
+ renderWorldCopies = options.renderWorldCopies;
74
51
  _this.moving = false;
75
52
  _this.zooming = false;
76
53
  _this.bearingSnap = options.bearingSnap;
@@ -78,15 +55,14 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
78
55
  _this.rotateEnabled = options.rotateEnabled;
79
56
  _this.transform = new _transform.default(minZoom, maxZoom, minPitch, maxPitch, renderWorldCopies);
80
57
  return _this;
81
- } // eslint-disable-next-line @typescript-eslint/no-unused-vars
82
-
83
-
58
+ }
59
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
84
60
  (0, _createClass2.default)(Camera, [{
85
61
  key: "requestRenderFrame",
86
62
  value: function requestRenderFrame(cb) {
87
63
  return 0;
88
- } // eslint-disable-next-line @typescript-eslint/no-unused-vars
89
-
64
+ }
65
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
90
66
  }, {
91
67
  key: "cancelRenderFrame",
92
68
  value: function cancelRenderFrame(_) {
@@ -96,8 +72,8 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
96
72
  key: "getCenter",
97
73
  value: function getCenter() {
98
74
  var _this$transform$cente = this.transform.center,
99
- lng = _this$transform$cente.lng,
100
- lat = _this$transform$cente.lat;
75
+ lng = _this$transform$cente.lng,
76
+ lat = _this$transform$cente.lat;
101
77
  return new _lng_lat.default(lng, lat);
102
78
  }
103
79
  }, {
@@ -213,14 +189,16 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
213
189
  }, {
214
190
  key: "fitBounds",
215
191
  value: function fitBounds(bounds, options, eventData) {
216
- return this.fitInternal( // @ts-ignore
192
+ return this.fitInternal(
193
+ // @ts-ignore
217
194
  this.cameraForBounds(bounds, options), options, eventData);
218
195
  }
219
196
  }, {
220
197
  key: "cameraForBounds",
221
198
  value: function cameraForBounds(bounds, options) {
222
199
  bounds = _lng_lat_bounds.default.convert(bounds);
223
- return this.cameraForBoxAndBearing(bounds.getNorthWest(), bounds.getSouthEast(), 0, // @ts-ignore
200
+ return this.cameraForBoxAndBearing(bounds.getNorthWest(), bounds.getSouthEast(), 0,
201
+ // @ts-ignore
224
202
  options);
225
203
  }
226
204
  }, {
@@ -229,7 +207,6 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
229
207
  if (Math.abs(this.getBearing()) < this.bearingSnap) {
230
208
  return this.resetNorth(options, eventData);
231
209
  }
232
-
233
210
  return this;
234
211
  }
235
212
  }, {
@@ -242,58 +219,47 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
242
219
  var zoomChanged = false;
243
220
  var bearingChanged = false;
244
221
  var pitchChanged = false;
245
-
246
222
  if (options.zoom !== undefined && tr.zoom !== +options.zoom) {
247
223
  zoomChanged = true;
248
224
  tr.zoom = +options.zoom;
249
225
  }
250
-
251
226
  if (options.center !== undefined) {
252
227
  tr.center = _lng_lat.default.convert(options.center);
253
228
  }
254
-
255
229
  if (options.bearing !== undefined && tr.bearing !== +options.bearing) {
256
230
  bearingChanged = true;
257
231
  tr.bearing = +options.bearing;
258
232
  }
259
-
260
233
  if (options.pitch !== undefined && tr.pitch !== +options.pitch) {
261
234
  pitchChanged = true;
262
235
  tr.pitch = +options.pitch;
263
236
  }
264
-
265
237
  if (options.padding !== undefined && !tr.isPaddingEqual(options.padding)) {
266
238
  tr.padding = options.padding;
267
239
  }
268
-
269
240
  this.emit('movestart', new _event.Event('movestart', eventData));
270
241
  this.emit('move', new _event.Event('move', eventData));
271
-
272
242
  if (zoomChanged) {
273
243
  this.emit('zoomstart', new _event.Event('zoomstart', eventData));
274
244
  this.emit('zoom', new _event.Event('zoom', eventData));
275
245
  this.emit('zoomend', new _event.Event('zoomend', eventData));
276
246
  }
277
-
278
247
  if (bearingChanged) {
279
248
  this.emit('rotatestart', new _event.Event('rotatestart', eventData));
280
249
  this.emit('rotate', new _event.Event('rotate', eventData));
281
250
  this.emit('rotateend', new _event.Event('rotateend', eventData));
282
251
  }
283
-
284
252
  if (pitchChanged) {
285
253
  this.emit('pitchstart', new _event.Event('pitchstart', eventData));
286
254
  this.emit('pitch', new _event.Event('pitch', eventData));
287
255
  this.emit('pitchend', new _event.Event('pitchend', eventData));
288
256
  }
289
-
290
257
  return this.emit('moveend', new _event.Event('moveend', eventData));
291
258
  }
292
259
  }, {
293
260
  key: "easeTo",
294
261
  value: function easeTo() {
295
262
  var _this2 = this;
296
-
297
263
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
298
264
  var eventData = arguments.length > 1 ? arguments[1] : undefined;
299
265
  options = (0, _lodash.merge)({
@@ -301,11 +267,9 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
301
267
  duration: 500,
302
268
  easing: _util.ease
303
269
  }, options);
304
-
305
270
  if (options.animate === false || !options.essential && (0, _util.prefersReducedMotion)()) {
306
271
  options.duration = 0;
307
272
  }
308
-
309
273
  var tr = this.transform;
310
274
  var startZoom = this.getZoom();
311
275
  var startBearing = this.getBearing();
@@ -315,26 +279,20 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
315
279
  var bearing = options.bearing ? this.normalizeBearing(options.bearing, startBearing) : startBearing;
316
280
  var pitch = options.pitch ? +options.pitch : startPitch;
317
281
  var padding = options.padding ? options.padding : tr.padding;
318
-
319
282
  var offsetAsPoint = _point.default.convert(options.offset);
320
-
321
283
  var pointAtOffset = tr.centerPoint.add(offsetAsPoint);
322
284
  var locationAtOffset = tr.pointLocation(pointAtOffset);
323
-
324
285
  var center = _lng_lat.default.convert(options.center || locationAtOffset);
325
-
326
286
  this.normalizeCenter(center);
327
287
  var from = tr.project(locationAtOffset);
328
288
  var delta = tr.project(center).sub(from);
329
289
  var finalScale = tr.zoomScale(zoom - startZoom);
330
290
  var around;
331
291
  var aroundPoint;
332
-
333
292
  if (options.around) {
334
293
  around = _lng_lat.default.convert(options.around);
335
294
  aroundPoint = tr.locationPoint(around);
336
295
  }
337
-
338
296
  var currently = {
339
297
  moving: this.moving,
340
298
  zooming: this.zooming,
@@ -352,22 +310,18 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
352
310
  if (_this2.zooming) {
353
311
  tr.zoom = (0, _util.interpolate)(startZoom, zoom, k);
354
312
  }
355
-
356
313
  if (_this2.rotating && _this2.rotateEnabled) {
357
314
  tr.bearing = (0, _util.interpolate)(startBearing, bearing, k);
358
315
  }
359
-
360
316
  if (_this2.pitching && _this2.pitchEnabled) {
361
317
  tr.pitch = (0, _util.interpolate)(startPitch, pitch, k);
362
318
  }
363
-
364
319
  if (_this2.padding) {
365
- tr.interpolatePadding(startPadding, padding, k); // When padding is being applied, Transform#centerPoint is changing continously,
320
+ tr.interpolatePadding(startPadding, padding, k);
321
+ // When padding is being applied, Transform#centerPoint is changing continously,
366
322
  // thus we need to recalculate offsetPoint every fra,e
367
-
368
323
  pointAtOffset = tr.centerPoint.add(offsetAsPoint);
369
324
  }
370
-
371
325
  if (around) {
372
326
  tr.setLocationAtPoint(around, aroundPoint);
373
327
  } else {
@@ -377,11 +331,11 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
377
331
  var newCenter = tr.unproject(from.add(delta.mult(k * speedup)).mult(scale));
378
332
  tr.setLocationAtPoint(tr.renderWorldCopies ? newCenter.wrap() : newCenter, pointAtOffset);
379
333
  }
380
-
381
334
  _this2.fireMoveEvents(eventData);
382
335
  }, function (interruptingEaseId) {
383
336
  _this2.afterEase(eventData, interruptingEaseId);
384
- }, // @ts-ignore
337
+ },
338
+ // @ts-ignore
385
339
  options);
386
340
  return this;
387
341
  }
@@ -389,16 +343,13 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
389
343
  key: "flyTo",
390
344
  value: function flyTo() {
391
345
  var _this3 = this;
392
-
393
346
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
394
347
  var eventData = arguments.length > 1 ? arguments[1] : undefined;
395
-
396
348
  // Fall through to jumpTo if user has set prefers-reduced-motion
397
349
  if (!options.essential && (0, _util.prefersReducedMotion)()) {
398
350
  var coercedOptions = (0, _util.pick)(options, ['center', 'zoom', 'bearing', 'pitch', 'around']);
399
351
  return this.jumpTo(coercedOptions, eventData);
400
352
  }
401
-
402
353
  this.stop();
403
354
  options = (0, _lodash.merge)({
404
355
  offset: [0, 0],
@@ -416,106 +367,95 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
416
367
  var pitch = options.pitch ? +options.pitch : startPitch;
417
368
  var padding = 'padding' in options ? options.padding : tr.padding;
418
369
  var scale = tr.zoomScale(zoom - startZoom);
419
-
420
370
  var offsetAsPoint = _point.default.convert(options.offset);
421
-
422
371
  var pointAtOffset = tr.centerPoint.add(offsetAsPoint);
423
372
  var locationAtOffset = tr.pointLocation(pointAtOffset);
424
-
425
373
  var center = _lng_lat.default.convert(options.center || locationAtOffset);
426
-
427
374
  this.normalizeCenter(center);
428
375
  var from = tr.project(locationAtOffset);
429
376
  var delta = tr.project(center).sub(from);
430
- var rho = options.curve; // w₀: Initial visible span, measured in pixels at the initial scale.
431
-
432
- var w0 = Math.max(tr.width, tr.height); // w₁: Final visible span, measured in pixels with respect to the initial scale.
377
+ var rho = options.curve;
433
378
 
434
- var w1 = w0 / scale; // Length of the flight path as projected onto the ground plane, measured in pixels from
379
+ // w₀: Initial visible span, measured in pixels at the initial scale.
380
+ var w0 = Math.max(tr.width, tr.height);
381
+ // w₁: Final visible span, measured in pixels with respect to the initial scale.
382
+ var w1 = w0 / scale;
383
+ // Length of the flight path as projected onto the ground plane, measured in pixels from
435
384
  // the world image origin at the initial scale.
436
-
437
385
  var u1 = delta.mag();
438
-
439
386
  if ('minZoom' in options) {
440
- var minZoom = (0, _util.clamp)(Math.min(options.minZoom, startZoom, zoom), tr.minZoom, tr.maxZoom); // w<sub>m</sub>: Maximum visible span, measured in pixels with respect to the initial
387
+ var minZoom = (0, _util.clamp)(Math.min(options.minZoom, startZoom, zoom), tr.minZoom, tr.maxZoom);
388
+ // w<sub>m</sub>: Maximum visible span, measured in pixels with respect to the initial
441
389
  // scale.
442
-
443
390
  var wMax = w0 / tr.zoomScale(minZoom - startZoom);
444
391
  rho = Math.sqrt(wMax / u1 * 2);
445
- } // ρ²
446
-
392
+ }
447
393
 
394
+ // ρ²
448
395
  var rho2 = rho * rho;
396
+
449
397
  /**
450
398
  * rᵢ: Returns the zoom-out factor at one end of the animation.
451
399
  *
452
400
  * @param i 0 for the ascent or 1 for the descent.
453
401
  * @private
454
402
  */
455
-
456
403
  function r(i) {
457
404
  var b = (w1 * w1 - w0 * w0 + (i ? -1 : 1) * rho2 * rho2 * u1 * u1) / (2 * (i ? w1 : w0) * rho2 * u1);
458
405
  return Math.log(Math.sqrt(b * b + 1) - b);
459
406
  }
460
-
461
407
  function sinh(n) {
462
408
  return (Math.exp(n) - Math.exp(-n)) / 2;
463
409
  }
464
-
465
410
  function cosh(n) {
466
411
  return (Math.exp(n) + Math.exp(-n)) / 2;
467
412
  }
468
-
469
413
  function tanh(n) {
470
414
  return sinh(n) / cosh(n);
471
- } // r₀: Zoom-out factor during ascent.
415
+ }
472
416
 
417
+ // r₀: Zoom-out factor during ascent.
418
+ var r0 = r(0);
473
419
 
474
- var r0 = r(0); // w(s): Returns the visible span on the ground, measured in pixels with respect to the
420
+ // w(s): Returns the visible span on the ground, measured in pixels with respect to the
475
421
  // initial scale. Assumes an angular field of view of 2 arctan ½ ≈ 53°.
476
-
477
422
  var w = function w(s) {
478
423
  return cosh(r0) / cosh(r0 + rho * s);
479
- }; // u(s): Returns the distance along the flight path as projected onto the ground plane,
480
- // measured in pixels from the world image origin at the initial scale.
481
-
424
+ };
482
425
 
426
+ // u(s): Returns the distance along the flight path as projected onto the ground plane,
427
+ // measured in pixels from the world image origin at the initial scale.
483
428
  var u = function u(s) {
484
429
  return w0 * ((cosh(r0) * tanh(r0 + rho * s) - sinh(r0)) / rho2) / u1;
485
- }; // S: Total length of the flight path, measured in ρ-screenfuls.
486
-
430
+ };
487
431
 
488
- var S = (r(1) - r0) / rho; // When u₀ = u₁, the optimal path doesn’t require both ascent and descent.
432
+ // S: Total length of the flight path, measured in ρ-screenfuls.
433
+ var S = (r(1) - r0) / rho;
489
434
 
435
+ // When u₀ = u₁, the optimal path doesn’t require both ascent and descent.
490
436
  if (Math.abs(u1) < 0.000001 || !isFinite(S)) {
491
437
  // Perform a more or less instantaneous transition if the path is too short.
492
438
  if (Math.abs(w0 - w1) < 0.000001) {
493
439
  return this.easeTo(options, eventData);
494
440
  }
495
-
496
441
  var k = w1 < w0 ? -1 : 1;
497
442
  S = Math.abs(Math.log(w1 / w0)) / rho;
498
-
499
443
  u = function u() {
500
444
  return 0;
501
445
  };
502
-
503
446
  w = function w(s) {
504
447
  return Math.exp(k * rho * s);
505
448
  };
506
449
  }
507
-
508
450
  if ('duration' in options) {
509
451
  options.duration = +options.duration;
510
452
  } else {
511
453
  var V = 'screenSpeed' in options ? +options.screenSpeed / rho : +options.speed;
512
454
  options.duration = 1000 * S / V;
513
455
  }
514
-
515
456
  if (options.maxDuration && options.duration > options.maxDuration) {
516
457
  options.duration = 0;
517
458
  }
518
-
519
459
  this.zooming = true;
520
460
  this.rotating = startBearing !== bearing;
521
461
  this.pitching = pitch !== startPitch;
@@ -523,29 +463,24 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
523
463
  this.prepareEase(eventData, false);
524
464
  this.ease(function (k) {
525
465
  // s: The distance traveled along the flight path, measured in ρ-screenfuls.
526
- var s = k * S; // @ts-ignore
527
-
466
+ var s = k * S;
467
+ // @ts-ignore
528
468
  var easeScale = 1 / w(s);
529
469
  tr.zoom = k === 1 ? zoom : startZoom + tr.scaleZoom(easeScale);
530
-
531
470
  if (_this3.rotating) {
532
471
  tr.bearing = (0, _util.interpolate)(startBearing, bearing, k);
533
472
  }
534
-
535
473
  if (_this3.pitching) {
536
474
  tr.pitch = (0, _util.interpolate)(startPitch, pitch, k);
537
475
  }
538
-
539
476
  if (_this3.padding) {
540
- tr.interpolatePadding(startPadding, padding, k); // When padding is being applied, Transform#centerPoint is changing continously,
477
+ tr.interpolatePadding(startPadding, padding, k);
478
+ // When padding is being applied, Transform#centerPoint is changing continously,
541
479
  // thus we need to recalculate offsetPoint every frame
542
-
543
480
  pointAtOffset = tr.centerPoint.add(offsetAsPoint);
544
481
  }
545
-
546
482
  var newCenter = k === 1 ? center : tr.unproject(from.add(delta.mult(u(s))).mult(easeScale));
547
483
  tr.setLocationAtPoint(tr.renderWorldCopies ? newCenter.wrap() : newCenter, pointAtOffset);
548
-
549
484
  _this3.fireMoveEvents(eventData);
550
485
  }, function () {
551
486
  return _this3.afterEase(eventData);
@@ -555,35 +490,35 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
555
490
  }, {
556
491
  key: "fitScreenCoordinates",
557
492
  value: function fitScreenCoordinates(p0, p1, bearing, options, eventData) {
558
- return this.fitInternal( // @ts-ignore
559
- this.cameraForBoxAndBearing(this.transform.pointLocation(_point.default.convert(p0)), this.transform.pointLocation(_point.default.convert(p1)), bearing, // @ts-ignore
493
+ return this.fitInternal(
494
+ // @ts-ignore
495
+ this.cameraForBoxAndBearing(this.transform.pointLocation(_point.default.convert(p0)), this.transform.pointLocation(_point.default.convert(p1)), bearing,
496
+ // @ts-ignore
560
497
  options), options, eventData);
561
498
  }
562
499
  }, {
563
500
  key: "stop",
564
501
  value: function stop(allowGestures, easeId) {
565
502
  if (this.easeFrameId) {
566
- this.cancelRenderFrame(this.easeFrameId); // @ts-ignore
567
-
568
- delete this.easeFrameId; // @ts-ignore
569
-
503
+ this.cancelRenderFrame(this.easeFrameId);
504
+ // @ts-ignore
505
+ delete this.easeFrameId;
506
+ // @ts-ignore
570
507
  delete this.onEaseFrame;
571
508
  }
572
-
573
509
  if (this.onEaseEnd) {
574
510
  // The _onEaseEnd function might emit events which trigger new
575
511
  // animation, which sets a new _onEaseEnd. Ensure we don't delete
576
512
  // it unintentionally.
577
- var onEaseEnd = this.onEaseEnd; // @ts-ignore
578
-
513
+ var onEaseEnd = this.onEaseEnd;
514
+ // @ts-ignore
579
515
  delete this.onEaseEnd;
580
516
  onEaseEnd.call(this, easeId);
581
- } // if (!allowGestures) {
517
+ }
518
+ // if (!allowGestures) {
582
519
  // const handlers = (this: any).handlers;
583
520
  // if (handlers) handlers.stop();
584
521
  // }
585
-
586
-
587
522
  return this;
588
523
  }
589
524
  }, {
@@ -591,26 +526,21 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
591
526
  value: function normalizeBearing(bearing, currentBearing) {
592
527
  bearing = (0, _util.wrap)(bearing, -180, 180);
593
528
  var diff = Math.abs(bearing - currentBearing);
594
-
595
529
  if (Math.abs(bearing - 360 - currentBearing) < diff) {
596
530
  bearing -= 360;
597
531
  }
598
-
599
532
  if (Math.abs(bearing + 360 - currentBearing) < diff) {
600
533
  bearing += 360;
601
534
  }
602
-
603
535
  return bearing;
604
536
  }
605
537
  }, {
606
538
  key: "normalizeCenter",
607
539
  value: function normalizeCenter(center) {
608
540
  var tr = this.transform;
609
-
610
541
  if (!tr.renderWorldCopies || tr.lngRange) {
611
542
  return;
612
543
  }
613
-
614
544
  var delta = center.lng - tr.center.lng;
615
545
  center.lng += delta > 180 ? -360 : delta < -180 ? 360 : 0;
616
546
  }
@@ -618,15 +548,12 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
618
548
  key: "fireMoveEvents",
619
549
  value: function fireMoveEvents(eventData) {
620
550
  this.emit('move', new _event.Event('move', eventData));
621
-
622
551
  if (this.zooming) {
623
552
  this.emit('zoom', new _event.Event('zoom', eventData));
624
553
  }
625
-
626
554
  if (this.rotating) {
627
555
  this.emit('rotate', new _event.Event('rotate', eventData));
628
556
  }
629
-
630
557
  if (this.pitching) {
631
558
  this.emit('rotate', new _event.Event('pitch', eventData));
632
559
  }
@@ -637,19 +564,15 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
637
564
  var noMoveStart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
638
565
  var currently = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
639
566
  this.moving = true;
640
-
641
567
  if (!noMoveStart && !currently.moving) {
642
568
  this.emit('movestart', new _event.Event('movestart', eventData));
643
569
  }
644
-
645
570
  if (this.zooming && !currently.zooming) {
646
571
  this.emit('zoomstart', new _event.Event('zoomstart', eventData));
647
572
  }
648
-
649
573
  if (this.rotating && !currently.rotating) {
650
574
  this.emit('rotatestart', new _event.Event('rotatestart', eventData));
651
575
  }
652
-
653
576
  if (this.pitching && !currently.pitching) {
654
577
  this.emit('pitchstart', new _event.Event('pitchstart', eventData));
655
578
  }
@@ -661,9 +584,8 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
661
584
  // the same id then don't fire any events to avoid extra start/stop events
662
585
  if (this.easeId && easeId && this.easeId === easeId) {
663
586
  return;
664
- } // @ts-ignore
665
-
666
-
587
+ }
588
+ // @ts-ignore
667
589
  delete this.easeId;
668
590
  var wasZooming = this.zooming;
669
591
  var wasRotating = this.rotating;
@@ -673,19 +595,15 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
673
595
  this.rotating = false;
674
596
  this.pitching = false;
675
597
  this.padding = false;
676
-
677
598
  if (wasZooming) {
678
599
  this.emit('zoomend', new _event.Event('zoomend', eventData));
679
600
  }
680
-
681
601
  if (wasRotating) {
682
602
  this.emit('rotateend', new _event.Event('rotateend', eventData));
683
603
  }
684
-
685
604
  if (wasPitching) {
686
605
  this.emit('pitchend', new _event.Event('pitchend', eventData));
687
606
  }
688
-
689
607
  this.emit('moveend', new _event.Event('moveend', eventData));
690
608
  }
691
609
  }, {
@@ -716,7 +634,6 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
716
634
  offset: [0, 0],
717
635
  maxZoom: this.transform.maxZoom
718
636
  }, options);
719
-
720
637
  if (typeof options.padding === 'number') {
721
638
  var p = options.padding;
722
639
  options.padding = {
@@ -726,42 +643,49 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
726
643
  left: p
727
644
  };
728
645
  }
729
-
730
646
  options.padding = (0, _lodash.merge)(defaultPadding, options.padding);
731
647
  var tr = this.transform;
732
- var edgePadding = tr.padding; // We want to calculate the upper right and lower left of the box defined by p0 and p1
733
- // in a coordinate system rotate to match the destination bearing.
648
+ var edgePadding = tr.padding;
734
649
 
650
+ // We want to calculate the upper right and lower left of the box defined by p0 and p1
651
+ // in a coordinate system rotate to match the destination bearing.
735
652
  var p0world = tr.project(_lng_lat.default.convert(p0));
736
653
  var p1world = tr.project(_lng_lat.default.convert(p1));
737
654
  var p0rotated = p0world.rotate(-bearing * Math.PI / 180);
738
655
  var p1rotated = p1world.rotate(-bearing * Math.PI / 180);
739
656
  var upperRight = new _point.default(Math.max(p0rotated.x, p1rotated.x), Math.max(p0rotated.y, p1rotated.y));
740
- var lowerLeft = new _point.default(Math.min(p0rotated.x, p1rotated.x), Math.min(p0rotated.y, p1rotated.y)); // Calculate zoom: consider the original bbox and padding.
657
+ var lowerLeft = new _point.default(Math.min(p0rotated.x, p1rotated.x), Math.min(p0rotated.y, p1rotated.y));
741
658
 
659
+ // Calculate zoom: consider the original bbox and padding.
742
660
  var size = upperRight.sub(lowerLeft);
743
- var scaleX = (tr.width - ( // @ts-ignore
744
- edgePadding.left + // @ts-ignore
745
- edgePadding.right + // @ts-ignore
746
- options.padding.left + // @ts-ignore
661
+ var scaleX = (tr.width - (
662
+ // @ts-ignore
663
+ edgePadding.left +
664
+ // @ts-ignore
665
+ edgePadding.right +
666
+ // @ts-ignore
667
+ options.padding.left +
668
+ // @ts-ignore
747
669
  options.padding.right)) / size.x;
748
- var scaleY = (tr.height - ( // @ts-ignore
749
- edgePadding.top + // @ts-ignore
750
- edgePadding.bottom + // @ts-ignore
751
- options.padding.top + // @ts-ignore
670
+ var scaleY = (tr.height - (
671
+ // @ts-ignore
672
+ edgePadding.top +
673
+ // @ts-ignore
674
+ edgePadding.bottom +
675
+ // @ts-ignore
676
+ options.padding.top +
677
+ // @ts-ignore
752
678
  options.padding.bottom)) / size.y;
753
-
754
679
  if (scaleY < 0 || scaleX < 0) {
755
680
  return;
756
681
  }
682
+ var zoom = Math.min(tr.scaleZoom(tr.scale * Math.min(scaleX, scaleY)), options.maxZoom);
757
683
 
758
- var zoom = Math.min(tr.scaleZoom(tr.scale * Math.min(scaleX, scaleY)), options.maxZoom); // Calculate center: apply the zoom, the configured offset, as well as offset that exists as a result of padding.
759
-
760
- var offset = _point.default.convert(options.offset); // @ts-ignore
761
-
762
-
763
- var paddingOffsetX = (options.padding.left - options.padding.right) / 2; // @ts-ignore
764
-
684
+ // Calculate center: apply the zoom, the configured offset, as well as offset that exists as a result of padding.
685
+ var offset = _point.default.convert(options.offset);
686
+ // @ts-ignore
687
+ var paddingOffsetX = (options.padding.left - options.padding.right) / 2;
688
+ // @ts-ignore
765
689
  var paddingOffsetY = (options.padding.top - options.padding.bottom) / 2;
766
690
  var offsetAtInitialZoom = new _point.default(offset.x + paddingOffsetX, offset.y + paddingOffsetY);
767
691
  var offsetAtFinalZoom = offsetAtInitialZoom.mult(tr.scale / tr.zoomScale(zoom));
@@ -779,15 +703,13 @@ var Camera = /*#__PURE__*/function (_EventEmitter) {
779
703
  if (!calculatedOptions) {
780
704
  return this;
781
705
  }
782
-
783
- options = (0, _lodash.merge)(calculatedOptions, options); // Explictly remove the padding field because, calculatedOptions already accounts for padding by setting zoom and center accordingly.
784
-
785
- delete options.padding; // @ts-ignore
786
-
706
+ options = (0, _lodash.merge)(calculatedOptions, options);
707
+ // Explictly remove the padding field because, calculatedOptions already accounts for padding by setting zoom and center accordingly.
708
+ delete options.padding;
709
+ // @ts-ignore
787
710
  return options.linear ? this.easeTo(options, eventData) : this.flyTo(options, eventData);
788
711
  }
789
712
  }]);
790
713
  return Camera;
791
714
  }(_eventemitter.EventEmitter);
792
-
793
715
  exports.default = Camera;