@antv/l7-map 2.9.19 → 2.9.22-alpha.0

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 (223) hide show
  1. package/es/camera.js +115 -85
  2. package/es/css/l7.css +98 -0
  3. package/es/earthmap.js +27 -43
  4. package/es/geo/edge_insets.js +44 -14
  5. package/es/geo/lng_lat.js +15 -11
  6. package/es/geo/lng_lat_bounds.js +6 -10
  7. package/es/geo/mercator.js +24 -12
  8. package/es/geo/point.js +2 -8
  9. package/es/geo/simple.js +24 -12
  10. package/es/geo/transform.js +421 -120
  11. package/es/handler/IHandler.js +1 -2
  12. package/es/handler/blockable_map_event.js +13 -14
  13. package/es/handler/box_zoom.js +43 -27
  14. package/es/handler/click_zoom.js +3 -8
  15. package/es/handler/events/event.js +3 -6
  16. package/es/handler/events/index.js +4 -5
  17. package/es/handler/events/map_mouse_event.js +30 -20
  18. package/es/handler/events/map_touch_event.js +55 -25
  19. package/es/handler/events/map_wheel_event.js +24 -15
  20. package/es/handler/events/render_event.js +3 -6
  21. package/es/handler/handler_inertia.js +10 -12
  22. package/es/handler/handler_manager.js +75 -72
  23. package/es/handler/handler_util.js +2 -2
  24. package/es/handler/keyboard.js +20 -15
  25. package/es/handler/map_event.js +23 -12
  26. package/es/handler/mouse/index.js +4 -5
  27. package/es/handler/mouse/mouse_handler.js +17 -21
  28. package/es/handler/mouse/mousepan_handler.js +5 -5
  29. package/es/handler/mouse/mousepitch_hander.js +7 -5
  30. package/es/handler/mouse/mouserotate_hander.js +7 -5
  31. package/es/handler/mouse/util.js +3 -3
  32. package/es/handler/scroll_zoom.js +103 -67
  33. package/es/handler/shim/dblclick_zoom.js +35 -8
  34. package/es/handler/shim/drag_pan.js +48 -12
  35. package/es/handler/shim/drag_rotate.js +39 -10
  36. package/es/handler/shim/touch_zoom_rotate.js +59 -16
  37. package/es/handler/tap/single_tap_recognizer.js +7 -17
  38. package/es/handler/tap/tap_drag_zoom.js +5 -18
  39. package/es/handler/tap/tap_recognizer.js +4 -15
  40. package/es/handler/tap/tap_zoom.js +4 -13
  41. package/es/handler/touch/index.js +5 -6
  42. package/es/handler/touch/touch_pan.js +9 -20
  43. package/es/handler/touch/touch_pitch.js +11 -23
  44. package/es/handler/touch/touch_rotate.js +15 -18
  45. package/es/handler/touch/touch_zoom.js +5 -19
  46. package/es/handler/touch/two_touch.js +14 -21
  47. package/es/hash.js +28 -16
  48. package/es/index.js +2 -3
  49. package/es/interface.js +1 -2
  50. package/es/map.js +26 -47
  51. package/es/util.js +15 -6
  52. package/es/utils/Aabb.js +11 -12
  53. package/es/utils/dom.js +30 -11
  54. package/es/utils/performance.js +10 -6
  55. package/es/utils/primitives.js +11 -10
  56. package/es/utils/task_queue.js +6 -13
  57. package/lib/camera.js +508 -721
  58. package/lib/css/l7.css +98 -0
  59. package/lib/earthmap.js +222 -392
  60. package/lib/geo/edge_insets.js +64 -83
  61. package/lib/geo/lng_lat.js +65 -81
  62. package/lib/geo/lng_lat_bounds.js +124 -165
  63. package/lib/geo/mercator.js +62 -78
  64. package/lib/geo/point.js +171 -239
  65. package/lib/geo/simple.js +61 -80
  66. package/lib/geo/transform.js +470 -653
  67. package/lib/handler/IHandler.js +17 -2
  68. package/lib/handler/blockable_map_event.js +63 -83
  69. package/lib/handler/box_zoom.js +123 -176
  70. package/lib/handler/click_zoom.js +56 -68
  71. package/lib/handler/events/event.js +35 -23
  72. package/lib/handler/events/index.js +35 -29
  73. package/lib/handler/events/map_mouse_event.js +42 -72
  74. package/lib/handler/events/map_touch_event.js +45 -80
  75. package/lib/handler/events/map_wheel_event.js +34 -58
  76. package/lib/handler/events/render_event.js +31 -52
  77. package/lib/handler/handler_inertia.js +113 -160
  78. package/lib/handler/handler_manager.js +379 -620
  79. package/lib/handler/handler_util.js +28 -10
  80. package/lib/handler/keyboard.js +114 -146
  81. package/lib/handler/map_event.js +84 -120
  82. package/lib/handler/mouse/index.js +35 -29
  83. package/lib/handler/mouse/mouse_handler.js +90 -123
  84. package/lib/handler/mouse/mousepan_handler.js +46 -65
  85. package/lib/handler/mouse/mousepitch_hander.js +44 -63
  86. package/lib/handler/mouse/mouserotate_hander.js +44 -63
  87. package/lib/handler/mouse/util.js +38 -20
  88. package/lib/handler/scroll_zoom.js +175 -258
  89. package/lib/handler/shim/dblclick_zoom.js +42 -48
  90. package/lib/handler/shim/drag_pan.js +48 -59
  91. package/lib/handler/shim/drag_rotate.js +43 -51
  92. package/lib/handler/shim/touch_zoom_rotate.js +58 -78
  93. package/lib/handler/tap/single_tap_recognizer.js +84 -117
  94. package/lib/handler/tap/tap_drag_zoom.js +92 -115
  95. package/lib/handler/tap/tap_recognizer.js +60 -78
  96. package/lib/handler/tap/tap_zoom.js +88 -119
  97. package/lib/handler/touch/index.js +38 -37
  98. package/lib/handler/touch/touch_pan.js +98 -132
  99. package/lib/handler/touch/touch_pitch.js +73 -117
  100. package/lib/handler/touch/touch_rotate.js +58 -94
  101. package/lib/handler/touch/touch_zoom.js +49 -84
  102. package/lib/handler/touch/two_touch.js +88 -128
  103. package/lib/hash.js +100 -133
  104. package/lib/index.js +19 -31
  105. package/lib/interface.js +17 -2
  106. package/lib/map.js +238 -420
  107. package/lib/util.js +67 -78
  108. package/lib/utils/Aabb.js +80 -132
  109. package/lib/utils/dom.js +84 -141
  110. package/lib/utils/performance.js +54 -42
  111. package/lib/utils/primitives.js +59 -51
  112. package/lib/utils/task_queue.js +61 -108
  113. package/package.json +11 -8
  114. package/es/camera.js.map +0 -1
  115. package/es/earthmap.js.map +0 -1
  116. package/es/geo/edge_insets.js.map +0 -1
  117. package/es/geo/lng_lat.js.map +0 -1
  118. package/es/geo/lng_lat_bounds.js.map +0 -1
  119. package/es/geo/mercator.js.map +0 -1
  120. package/es/geo/point.js.map +0 -1
  121. package/es/geo/simple.js.map +0 -1
  122. package/es/geo/transform.js.map +0 -1
  123. package/es/handler/IHandler.js.map +0 -1
  124. package/es/handler/blockable_map_event.js.map +0 -1
  125. package/es/handler/box_zoom.js.map +0 -1
  126. package/es/handler/click_zoom.js.map +0 -1
  127. package/es/handler/events/event.js.map +0 -1
  128. package/es/handler/events/index.js.map +0 -1
  129. package/es/handler/events/map_mouse_event.js.map +0 -1
  130. package/es/handler/events/map_touch_event.js.map +0 -1
  131. package/es/handler/events/map_wheel_event.js.map +0 -1
  132. package/es/handler/events/render_event.js.map +0 -1
  133. package/es/handler/handler_inertia.js.map +0 -1
  134. package/es/handler/handler_manager.js.map +0 -1
  135. package/es/handler/handler_util.js.map +0 -1
  136. package/es/handler/keyboard.js.map +0 -1
  137. package/es/handler/map_event.js.map +0 -1
  138. package/es/handler/mouse/index.js.map +0 -1
  139. package/es/handler/mouse/mouse_handler.js.map +0 -1
  140. package/es/handler/mouse/mousepan_handler.js.map +0 -1
  141. package/es/handler/mouse/mousepitch_hander.js.map +0 -1
  142. package/es/handler/mouse/mouserotate_hander.js.map +0 -1
  143. package/es/handler/mouse/util.js.map +0 -1
  144. package/es/handler/scroll_zoom.js.map +0 -1
  145. package/es/handler/shim/dblclick_zoom.js.map +0 -1
  146. package/es/handler/shim/drag_pan.js.map +0 -1
  147. package/es/handler/shim/drag_rotate.js.map +0 -1
  148. package/es/handler/shim/touch_zoom_rotate.js.map +0 -1
  149. package/es/handler/tap/single_tap_recognizer.js.map +0 -1
  150. package/es/handler/tap/tap_drag_zoom.js.map +0 -1
  151. package/es/handler/tap/tap_recognizer.js.map +0 -1
  152. package/es/handler/tap/tap_zoom.js.map +0 -1
  153. package/es/handler/touch/index.js.map +0 -1
  154. package/es/handler/touch/touch_pan.js.map +0 -1
  155. package/es/handler/touch/touch_pitch.js.map +0 -1
  156. package/es/handler/touch/touch_rotate.js.map +0 -1
  157. package/es/handler/touch/touch_zoom.js.map +0 -1
  158. package/es/handler/touch/two_touch.js.map +0 -1
  159. package/es/hash.js.map +0 -1
  160. package/es/index.js.map +0 -1
  161. package/es/interface.js.map +0 -1
  162. package/es/map.js.map +0 -1
  163. package/es/util.js.map +0 -1
  164. package/es/utils/Aabb.js.map +0 -1
  165. package/es/utils/dom.js.map +0 -1
  166. package/es/utils/performance.js.map +0 -1
  167. package/es/utils/primitives.js.map +0 -1
  168. package/es/utils/task_queue.js.map +0 -1
  169. package/lib/camera.js.map +0 -1
  170. package/lib/earthmap.js.map +0 -1
  171. package/lib/geo/edge_insets.js.map +0 -1
  172. package/lib/geo/lng_lat.js.map +0 -1
  173. package/lib/geo/lng_lat_bounds.js.map +0 -1
  174. package/lib/geo/mercator.js.map +0 -1
  175. package/lib/geo/point.js.map +0 -1
  176. package/lib/geo/simple.js.map +0 -1
  177. package/lib/geo/transform.js.map +0 -1
  178. package/lib/handler/IHandler.js.map +0 -1
  179. package/lib/handler/blockable_map_event.js.map +0 -1
  180. package/lib/handler/box_zoom.js.map +0 -1
  181. package/lib/handler/click_zoom.js.map +0 -1
  182. package/lib/handler/events/event.js.map +0 -1
  183. package/lib/handler/events/index.js.map +0 -1
  184. package/lib/handler/events/map_mouse_event.js.map +0 -1
  185. package/lib/handler/events/map_touch_event.js.map +0 -1
  186. package/lib/handler/events/map_wheel_event.js.map +0 -1
  187. package/lib/handler/events/render_event.js.map +0 -1
  188. package/lib/handler/handler_inertia.js.map +0 -1
  189. package/lib/handler/handler_manager.js.map +0 -1
  190. package/lib/handler/handler_util.js.map +0 -1
  191. package/lib/handler/keyboard.js.map +0 -1
  192. package/lib/handler/map_event.js.map +0 -1
  193. package/lib/handler/mouse/index.js.map +0 -1
  194. package/lib/handler/mouse/mouse_handler.js.map +0 -1
  195. package/lib/handler/mouse/mousepan_handler.js.map +0 -1
  196. package/lib/handler/mouse/mousepitch_hander.js.map +0 -1
  197. package/lib/handler/mouse/mouserotate_hander.js.map +0 -1
  198. package/lib/handler/mouse/util.js.map +0 -1
  199. package/lib/handler/scroll_zoom.js.map +0 -1
  200. package/lib/handler/shim/dblclick_zoom.js.map +0 -1
  201. package/lib/handler/shim/drag_pan.js.map +0 -1
  202. package/lib/handler/shim/drag_rotate.js.map +0 -1
  203. package/lib/handler/shim/touch_zoom_rotate.js.map +0 -1
  204. package/lib/handler/tap/single_tap_recognizer.js.map +0 -1
  205. package/lib/handler/tap/tap_drag_zoom.js.map +0 -1
  206. package/lib/handler/tap/tap_recognizer.js.map +0 -1
  207. package/lib/handler/tap/tap_zoom.js.map +0 -1
  208. package/lib/handler/touch/index.js.map +0 -1
  209. package/lib/handler/touch/touch_pan.js.map +0 -1
  210. package/lib/handler/touch/touch_pitch.js.map +0 -1
  211. package/lib/handler/touch/touch_rotate.js.map +0 -1
  212. package/lib/handler/touch/touch_zoom.js.map +0 -1
  213. package/lib/handler/touch/two_touch.js.map +0 -1
  214. package/lib/hash.js.map +0 -1
  215. package/lib/index.js.map +0 -1
  216. package/lib/interface.js.map +0 -1
  217. package/lib/map.js.map +0 -1
  218. package/lib/util.js.map +0 -1
  219. package/lib/utils/Aabb.js.map +0 -1
  220. package/lib/utils/dom.js.map +0 -1
  221. package/lib/utils/performance.js.map +0 -1
  222. package/lib/utils/primitives.js.map +0 -1
  223. package/lib/utils/task_queue.js.map +0 -1
@@ -1,196 +1,149 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod));
20
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
4
21
 
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
22
+ // src/handler/handler_inertia.ts
23
+ var handler_inertia_exports = {};
24
+ __export(handler_inertia_exports, {
25
+ default: () => HandlerInertia
7
26
  });
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 _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
- var _point = _interopRequireDefault(require("../geo/point"));
17
-
18
- var _merge = _interopRequireDefault(require("lodash/merge"));
19
-
20
- var _util = require("../util");
21
-
22
- 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; } } }; }
23
-
24
- 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); }
25
-
26
- 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; }
27
-
27
+ module.exports = __toCommonJS(handler_inertia_exports);
28
+ var import_point = __toESM(require("../geo/point"));
29
+ var import_merge = __toESM(require("lodash/merge"));
30
+ var import_util = require("../util");
28
31
  var defaultInertiaOptions = {
29
32
  linearity: 0.3,
30
- easing: (0, _util.bezier)(0, 0, 0.3, 1)
33
+ easing: (0, import_util.bezier)(0, 0, 0.3, 1)
31
34
  };
32
- var defaultPanInertiaOptions = (0, _merge.default)({
35
+ var defaultPanInertiaOptions = (0, import_merge.default)({
33
36
  deceleration: 2500,
34
37
  maxSpeed: 1400
35
38
  }, defaultInertiaOptions);
36
- var defaultZoomInertiaOptions = (0, _merge.default)({
39
+ var defaultZoomInertiaOptions = (0, import_merge.default)({
37
40
  deceleration: 20,
38
41
  maxSpeed: 1400
39
42
  }, defaultInertiaOptions);
40
- var defaultBearingInertiaOptions = (0, _merge.default)({
41
- deceleration: 1000,
43
+ var defaultBearingInertiaOptions = (0, import_merge.default)({
44
+ deceleration: 1e3,
42
45
  maxSpeed: 360
43
46
  }, defaultInertiaOptions);
44
- var defaultPitchInertiaOptions = (0, _merge.default)({
45
- deceleration: 1000,
47
+ var defaultPitchInertiaOptions = (0, import_merge.default)({
48
+ deceleration: 1e3,
46
49
  maxSpeed: 90
47
50
  }, defaultInertiaOptions);
48
-
49
- var HandlerInertia = function () {
50
- function HandlerInertia(map) {
51
- (0, _classCallCheck2.default)(this, HandlerInertia);
52
- (0, _defineProperty2.default)(this, "map", void 0);
53
- (0, _defineProperty2.default)(this, "inertiaBuffer", void 0);
51
+ var HandlerInertia = class {
52
+ constructor(map) {
54
53
  this.map = map;
55
54
  this.clear();
56
55
  }
57
-
58
- (0, _createClass2.default)(HandlerInertia, [{
59
- key: "clear",
60
- value: function clear() {
61
- this.inertiaBuffer = [];
62
- }
63
- }, {
64
- key: "record",
65
- value: function record(settings) {
66
- this.drainInertiaBuffer();
67
- this.inertiaBuffer.push({
68
- time: (0, _util.now)(),
69
- settings: settings
70
- });
56
+ clear() {
57
+ this.inertiaBuffer = [];
58
+ }
59
+ record(settings) {
60
+ this.drainInertiaBuffer();
61
+ this.inertiaBuffer.push({ time: (0, import_util.now)(), settings });
62
+ }
63
+ drainInertiaBuffer() {
64
+ const inertia = this.inertiaBuffer;
65
+ const nowTime = (0, import_util.now)();
66
+ const cutoff = 160;
67
+ while (inertia.length > 0 && nowTime - inertia[0].time > cutoff) {
68
+ inertia.shift();
71
69
  }
72
- }, {
73
- key: "drainInertiaBuffer",
74
- value: function drainInertiaBuffer() {
75
- var inertia = this.inertiaBuffer;
76
- var nowTime = (0, _util.now)();
77
- var cutoff = 160;
78
-
79
- while (inertia.length > 0 && nowTime - inertia[0].time > cutoff) {
80
- inertia.shift();
81
- }
70
+ }
71
+ onMoveEnd(panInertiaOptions) {
72
+ this.drainInertiaBuffer();
73
+ if (this.inertiaBuffer.length < 2) {
74
+ return;
82
75
  }
83
- }, {
84
- key: "onMoveEnd",
85
- value: function onMoveEnd(panInertiaOptions) {
86
- this.drainInertiaBuffer();
87
-
88
- if (this.inertiaBuffer.length < 2) {
89
- return;
90
- }
91
-
92
- var deltas = {
93
- zoom: 0,
94
- bearing: 0,
95
- pitch: 0,
96
- pan: new _point.default(0, 0),
97
- pinchAround: undefined,
98
- around: undefined
99
- };
100
-
101
- var _iterator = _createForOfIteratorHelper(this.inertiaBuffer),
102
- _step;
103
-
104
- try {
105
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
106
- var settings = _step.value.settings;
107
- deltas.zoom += settings.zoomDelta || 0;
108
- deltas.bearing += settings.bearingDelta || 0;
109
- deltas.pitch += settings.pitchDelta || 0;
110
-
111
- if (settings.panDelta) {
112
- deltas.pan._add(settings.panDelta);
113
- }
114
-
115
- if (settings.around) {
116
- deltas.around = settings.around;
117
- }
118
-
119
- if (settings.pinchAround) {
120
- deltas.pinchAround = settings.pinchAround;
121
- }
122
- }
123
- } catch (err) {
124
- _iterator.e(err);
125
- } finally {
126
- _iterator.f();
127
- }
128
-
129
- var lastEntry = this.inertiaBuffer[this.inertiaBuffer.length - 1];
130
- var duration = lastEntry.time - this.inertiaBuffer[0].time;
131
- var easeOptions = {};
132
-
133
- if (deltas.pan.mag()) {
134
- var result = calculateEasing(deltas.pan.mag(), duration, (0, _merge.default)({}, defaultPanInertiaOptions, panInertiaOptions || {}));
135
- easeOptions.offset = deltas.pan.mult(result.amount / deltas.pan.mag());
136
- easeOptions.center = this.map.transform.center;
137
- extendDuration(easeOptions, result);
138
- }
139
-
140
- if (deltas.zoom) {
141
- var _result = calculateEasing(deltas.zoom, duration, defaultZoomInertiaOptions);
142
-
143
- easeOptions.zoom = this.map.transform.zoom + _result.amount;
144
- extendDuration(easeOptions, _result);
76
+ const deltas = {
77
+ zoom: 0,
78
+ bearing: 0,
79
+ pitch: 0,
80
+ pan: new import_point.default(0, 0),
81
+ pinchAround: void 0,
82
+ around: void 0
83
+ };
84
+ for (const { settings } of this.inertiaBuffer) {
85
+ deltas.zoom += settings.zoomDelta || 0;
86
+ deltas.bearing += settings.bearingDelta || 0;
87
+ deltas.pitch += settings.pitchDelta || 0;
88
+ if (settings.panDelta) {
89
+ deltas.pan._add(settings.panDelta);
145
90
  }
146
-
147
- if (deltas.bearing) {
148
- var _result2 = calculateEasing(deltas.bearing, duration, defaultBearingInertiaOptions);
149
-
150
- easeOptions.bearing = this.map.transform.bearing + (0, _util.clamp)(_result2.amount, -179, 179);
151
- extendDuration(easeOptions, _result2);
91
+ if (settings.around) {
92
+ deltas.around = settings.around;
152
93
  }
153
-
154
- if (deltas.pitch) {
155
- var _result3 = calculateEasing(deltas.pitch, duration, defaultPitchInertiaOptions);
156
-
157
- easeOptions.pitch = this.map.transform.pitch + _result3.amount;
158
- extendDuration(easeOptions, _result3);
94
+ if (settings.pinchAround) {
95
+ deltas.pinchAround = settings.pinchAround;
159
96
  }
160
-
161
- if (easeOptions.zoom || easeOptions.bearing) {
162
- var last = deltas.pinchAround === undefined ? deltas.around : deltas.pinchAround;
163
- easeOptions.around = last ? this.map.unproject(last) : this.map.getCenter();
164
- }
165
-
166
- this.clear();
167
- return (0, _merge.default)(easeOptions, {
168
- noMoveStart: true
169
- });
170
97
  }
171
- }]);
172
- return HandlerInertia;
173
- }();
174
-
175
- exports.default = HandlerInertia;
176
-
98
+ const lastEntry = this.inertiaBuffer[this.inertiaBuffer.length - 1];
99
+ const duration = lastEntry.time - this.inertiaBuffer[0].time;
100
+ const easeOptions = {};
101
+ if (deltas.pan.mag()) {
102
+ const result = calculateEasing(deltas.pan.mag(), duration, (0, import_merge.default)({}, defaultPanInertiaOptions, panInertiaOptions || {}));
103
+ easeOptions.offset = deltas.pan.mult(result.amount / deltas.pan.mag());
104
+ easeOptions.center = this.map.transform.center;
105
+ extendDuration(easeOptions, result);
106
+ }
107
+ if (deltas.zoom) {
108
+ const result = calculateEasing(deltas.zoom, duration, defaultZoomInertiaOptions);
109
+ easeOptions.zoom = this.map.transform.zoom + result.amount;
110
+ extendDuration(easeOptions, result);
111
+ }
112
+ if (deltas.bearing) {
113
+ const result = calculateEasing(deltas.bearing, duration, defaultBearingInertiaOptions);
114
+ easeOptions.bearing = this.map.transform.bearing + (0, import_util.clamp)(result.amount, -179, 179);
115
+ extendDuration(easeOptions, result);
116
+ }
117
+ if (deltas.pitch) {
118
+ const result = calculateEasing(deltas.pitch, duration, defaultPitchInertiaOptions);
119
+ easeOptions.pitch = this.map.transform.pitch + result.amount;
120
+ extendDuration(easeOptions, result);
121
+ }
122
+ if (easeOptions.zoom || easeOptions.bearing) {
123
+ const last = deltas.pinchAround === void 0 ? deltas.around : deltas.pinchAround;
124
+ easeOptions.around = last ? this.map.unproject(last) : this.map.getCenter();
125
+ }
126
+ this.clear();
127
+ return (0, import_merge.default)(easeOptions, {
128
+ noMoveStart: true
129
+ });
130
+ }
131
+ };
177
132
  function extendDuration(easeOptions, result) {
178
133
  if (!easeOptions.duration || easeOptions.duration < result.duration) {
179
134
  easeOptions.duration = result.duration;
180
135
  easeOptions.easing = result.easing;
181
136
  }
182
137
  }
183
-
184
138
  function calculateEasing(amount, inertiaDuration, inertiaOptions) {
185
- var maxSpeed = inertiaOptions.maxSpeed,
186
- linearity = inertiaOptions.linearity,
187
- deceleration = inertiaOptions.deceleration;
188
- var speed = (0, _util.clamp)(amount * linearity / (inertiaDuration / 1000), -maxSpeed, maxSpeed);
189
- var duration = Math.abs(speed) / (deceleration * linearity);
139
+ const { maxSpeed, linearity, deceleration } = inertiaOptions;
140
+ const speed = (0, import_util.clamp)(amount * linearity / (inertiaDuration / 1e3), -maxSpeed, maxSpeed);
141
+ const duration = Math.abs(speed) / (deceleration * linearity);
190
142
  return {
191
143
  easing: inertiaOptions.easing,
192
- duration: duration * 1000,
144
+ duration: duration * 1e3,
193
145
  amount: speed * (duration / 2)
194
146
  };
195
147
  }
196
- //# sourceMappingURL=handler_inertia.js.map
148
+ // Annotate the CommonJS export names for ESM import in node:
149
+ 0 && (module.exports = {});