@antv/l7-map 2.17.3 → 2.17.4

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 +148 -90
  2. package/es/earthmap.js +65 -13
  3. package/es/geo/edge_insets.js +14 -4
  4. package/es/geo/lng_lat.js +13 -5
  5. package/es/geo/lng_lat_bounds.js +17 -4
  6. package/es/geo/mercator.js +10 -2
  7. package/es/geo/point.js +7 -0
  8. package/es/geo/simple.js +11 -6
  9. package/es/geo/transform.js +132 -123
  10. package/es/handler/blockable_map_event.js +12 -7
  11. package/es/handler/box_zoom.js +30 -10
  12. package/es/handler/click_zoom.js +5 -0
  13. package/es/handler/events/event.js +2 -0
  14. package/es/handler/events/map_mouse_event.js +12 -0
  15. package/es/handler/events/map_touch_event.js +12 -2
  16. package/es/handler/events/map_wheel_event.js +12 -1
  17. package/es/handler/events/render_event.js +13 -0
  18. package/es/handler/handler_inertia.js +34 -6
  19. package/es/handler/handler_manager.js +147 -55
  20. package/es/handler/handler_util.js +2 -1
  21. package/es/handler/keyboard.js +20 -1
  22. package/es/handler/map_event.js +9 -3
  23. package/es/handler/mouse/mouse_handler.js +24 -11
  24. package/es/handler/mouse/mousepan_handler.js +11 -1
  25. package/es/handler/mouse/mousepitch_hander.js +11 -1
  26. package/es/handler/mouse/mouserotate_hander.js +11 -1
  27. package/es/handler/mouse/util.js +3 -2
  28. package/es/handler/scroll_zoom.js +71 -43
  29. package/es/handler/shim/dblclick_zoom.js +9 -4
  30. package/es/handler/shim/drag_pan.js +11 -4
  31. package/es/handler/shim/drag_rotate.js +10 -4
  32. package/es/handler/shim/touch_zoom_rotate.js +16 -6
  33. package/es/handler/tap/single_tap_recognizer.js +31 -8
  34. package/es/handler/tap/tap_drag_zoom.js +15 -7
  35. package/es/handler/tap/tap_recognizer.js +11 -3
  36. package/es/handler/tap/tap_zoom.js +7 -1
  37. package/es/handler/touch/touch_pan.js +22 -4
  38. package/es/handler/touch/touch_pitch.js +27 -10
  39. package/es/handler/touch/touch_rotate.js +19 -8
  40. package/es/handler/touch/touch_zoom.js +18 -5
  41. package/es/handler/touch/two_touch.js +32 -19
  42. package/es/hash.js +31 -9
  43. package/es/map.js +78 -16
  44. package/es/util.js +26 -18
  45. package/es/utils/Aabb.js +31 -10
  46. package/es/utils/dom.js +58 -24
  47. package/es/utils/performance.js +7 -8
  48. package/es/utils/primitives.js +11 -13
  49. package/es/utils/task_queue.js +23 -6
  50. package/lib/camera.js +168 -90
  51. package/lib/earthmap.js +79 -11
  52. package/lib/geo/edge_insets.js +18 -3
  53. package/lib/geo/lng_lat.js +18 -5
  54. package/lib/geo/lng_lat_bounds.js +20 -4
  55. package/lib/geo/mercator.js +22 -1
  56. package/lib/geo/point.js +8 -0
  57. package/lib/geo/simple.js +24 -5
  58. package/lib/geo/transform.js +164 -123
  59. package/lib/handler/blockable_map_event.js +14 -6
  60. package/lib/handler/box_zoom.js +39 -8
  61. package/lib/handler/click_zoom.js +6 -0
  62. package/lib/handler/events/event.js +5 -0
  63. package/lib/handler/events/index.js +4 -0
  64. package/lib/handler/events/map_mouse_event.js +19 -0
  65. package/lib/handler/events/map_touch_event.js +20 -1
  66. package/lib/handler/events/map_wheel_event.js +16 -1
  67. package/lib/handler/events/render_event.js +19 -0
  68. package/lib/handler/handler_inertia.js +37 -4
  69. package/lib/handler/handler_manager.js +171 -55
  70. package/lib/handler/handler_util.js +3 -1
  71. package/lib/handler/keyboard.js +22 -1
  72. package/lib/handler/map_event.js +11 -2
  73. package/lib/handler/mouse/index.js +4 -0
  74. package/lib/handler/mouse/mouse_handler.js +27 -10
  75. package/lib/handler/mouse/mousepan_handler.js +17 -0
  76. package/lib/handler/mouse/mousepitch_hander.js +16 -0
  77. package/lib/handler/mouse/mouserotate_hander.js +16 -0
  78. package/lib/handler/mouse/util.js +6 -2
  79. package/lib/handler/scroll_zoom.js +77 -43
  80. package/lib/handler/shim/dblclick_zoom.js +10 -4
  81. package/lib/handler/shim/drag_pan.js +13 -4
  82. package/lib/handler/shim/drag_rotate.js +11 -4
  83. package/lib/handler/shim/touch_zoom_rotate.js +18 -6
  84. package/lib/handler/tap/single_tap_recognizer.js +33 -8
  85. package/lib/handler/tap/tap_drag_zoom.js +18 -6
  86. package/lib/handler/tap/tap_recognizer.js +17 -2
  87. package/lib/handler/tap/tap_zoom.js +9 -0
  88. package/lib/handler/touch/index.js +5 -0
  89. package/lib/handler/touch/touch_pan.js +25 -4
  90. package/lib/handler/touch/touch_pitch.js +31 -9
  91. package/lib/handler/touch/touch_rotate.js +24 -7
  92. package/lib/handler/touch/touch_zoom.js +23 -4
  93. package/lib/handler/touch/two_touch.js +35 -18
  94. package/lib/hash.js +35 -8
  95. package/lib/index.js +8 -0
  96. package/lib/map.js +94 -14
  97. package/lib/util.js +38 -16
  98. package/lib/utils/Aabb.js +34 -10
  99. package/lib/utils/dom.js +64 -22
  100. package/lib/utils/performance.js +9 -8
  101. package/lib/utils/primitives.js +16 -13
  102. package/lib/utils/task_queue.js +24 -6
  103. package/package.json +3 -3
@@ -1,18 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
9
+
8
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
9
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
10
14
  var _point = _interopRequireDefault(require("../geo/point"));
15
+
11
16
  var _merge = _interopRequireDefault(require("lodash/merge"));
17
+
12
18
  var _util = require("../util");
19
+
13
20
  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; } } }; }
21
+
14
22
  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); }
15
- 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; }
23
+
24
+ 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; }
25
+
16
26
  var defaultInertiaOptions = {
17
27
  linearity: 0.3,
18
28
  easing: (0, _util.bezier)(0, 0, 0.3, 1)
@@ -33,12 +43,14 @@ var defaultPitchInertiaOptions = (0, _merge.default)({
33
43
  deceleration: 1000,
34
44
  maxSpeed: 90
35
45
  }, defaultInertiaOptions);
46
+
36
47
  var HandlerInertia = /*#__PURE__*/function () {
37
48
  function HandlerInertia(map) {
38
49
  (0, _classCallCheck2.default)(this, HandlerInertia);
39
50
  this.map = map;
40
51
  this.clear();
41
52
  }
53
+
42
54
  (0, _createClass2.default)(HandlerInertia, [{
43
55
  key: "clear",
44
56
  value: function clear() {
@@ -68,9 +80,11 @@ var HandlerInertia = /*#__PURE__*/function () {
68
80
  key: "onMoveEnd",
69
81
  value: function onMoveEnd(panInertiaOptions) {
70
82
  this.drainInertiaBuffer();
83
+
71
84
  if (this.inertiaBuffer.length < 2) {
72
85
  return;
73
86
  }
87
+
74
88
  var deltas = {
75
89
  zoom: 0,
76
90
  bearing: 0,
@@ -79,20 +93,25 @@ var HandlerInertia = /*#__PURE__*/function () {
79
93
  pinchAround: undefined,
80
94
  around: undefined
81
95
  };
96
+
82
97
  var _iterator = _createForOfIteratorHelper(this.inertiaBuffer),
83
- _step;
98
+ _step;
99
+
84
100
  try {
85
101
  for (_iterator.s(); !(_step = _iterator.n()).done;) {
86
102
  var settings = _step.value.settings;
87
103
  deltas.zoom += settings.zoomDelta || 0;
88
104
  deltas.bearing += settings.bearingDelta || 0;
89
105
  deltas.pitch += settings.pitchDelta || 0;
106
+
90
107
  if (settings.panDelta) {
91
108
  deltas.pan._add(settings.panDelta);
92
109
  }
110
+
93
111
  if (settings.around) {
94
112
  deltas.around = settings.around;
95
113
  }
114
+
96
115
  if (settings.pinchAround) {
97
116
  deltas.pinchAround = settings.pinchAround;
98
117
  }
@@ -102,34 +121,44 @@ var HandlerInertia = /*#__PURE__*/function () {
102
121
  } finally {
103
122
  _iterator.f();
104
123
  }
124
+
105
125
  var lastEntry = this.inertiaBuffer[this.inertiaBuffer.length - 1];
106
126
  var duration = lastEntry.time - this.inertiaBuffer[0].time;
107
127
  var easeOptions = {};
128
+
108
129
  if (deltas.pan.mag()) {
109
130
  var result = calculateEasing(deltas.pan.mag(), duration, (0, _merge.default)({}, defaultPanInertiaOptions, panInertiaOptions || {}));
110
131
  easeOptions.offset = deltas.pan.mult(result.amount / deltas.pan.mag());
111
132
  easeOptions.center = this.map.transform.center;
112
133
  extendDuration(easeOptions, result);
113
134
  }
135
+
114
136
  if (deltas.zoom) {
115
137
  var _result = calculateEasing(deltas.zoom, duration, defaultZoomInertiaOptions);
138
+
116
139
  easeOptions.zoom = this.map.transform.zoom + _result.amount;
117
140
  extendDuration(easeOptions, _result);
118
141
  }
142
+
119
143
  if (deltas.bearing) {
120
144
  var _result2 = calculateEasing(deltas.bearing, duration, defaultBearingInertiaOptions);
145
+
121
146
  easeOptions.bearing = this.map.transform.bearing + (0, _util.clamp)(_result2.amount, -179, 179);
122
147
  extendDuration(easeOptions, _result2);
123
148
  }
149
+
124
150
  if (deltas.pitch) {
125
151
  var _result3 = calculateEasing(deltas.pitch, duration, defaultPitchInertiaOptions);
152
+
126
153
  easeOptions.pitch = this.map.transform.pitch + _result3.amount;
127
154
  extendDuration(easeOptions, _result3);
128
155
  }
156
+
129
157
  if (easeOptions.zoom || easeOptions.bearing) {
130
158
  var last = deltas.pinchAround === undefined ? deltas.around : deltas.pinchAround;
131
159
  easeOptions.around = last ? this.map.unproject(last) : this.map.getCenter();
132
160
  }
161
+
133
162
  this.clear();
134
163
  return (0, _merge.default)(easeOptions, {
135
164
  noMoveStart: true
@@ -139,17 +168,21 @@ var HandlerInertia = /*#__PURE__*/function () {
139
168
  return HandlerInertia;
140
169
  }(); // Unfortunately zoom, bearing, etc can't have different durations and easings so
141
170
  // we need to choose one. We use the longest duration and it's corresponding easing.
171
+
172
+
142
173
  exports.default = HandlerInertia;
174
+
143
175
  function extendDuration(easeOptions, result) {
144
176
  if (!easeOptions.duration || easeOptions.duration < result.duration) {
145
177
  easeOptions.duration = result.duration;
146
178
  easeOptions.easing = result.easing;
147
179
  }
148
180
  }
181
+
149
182
  function calculateEasing(amount, inertiaDuration, inertiaOptions) {
150
183
  var maxSpeed = inertiaOptions.maxSpeed,
151
- linearity = inertiaOptions.linearity,
152
- deceleration = inertiaOptions.deceleration;
184
+ linearity = inertiaOptions.linearity,
185
+ deceleration = inertiaOptions.deceleration;
153
186
  var speed = (0, _util.clamp)(amount * linearity / (inertiaDuration / 1000), -maxSpeed, maxSpeed);
154
187
  var duration = Math.abs(speed) / (deceleration * linearity);
155
188
  return {