@vtx/map 1.1.43 → 1.1.44
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/lib/VtxMap/AMap/AMap.js +1012 -640
- package/lib/VtxMap/AMap/AMap.js.map +1 -1
- package/lib/VtxMap/BMap/Map.js +1197 -749
- package/lib/VtxMap/BMap/Map.js.map +1 -1
- package/lib/VtxMap/GMap/Map.js +1564 -1046
- package/lib/VtxMap/GMap/Map.js.map +1 -1
- package/lib/VtxMap/Map.js +42 -8
- package/lib/VtxMap/Map.js.map +1 -1
- package/lib/VtxMap/MapToolFunction.js +63 -26
- package/lib/VtxMap/MapToolFunction.js.map +1 -1
- package/lib/VtxMap/OMap/Map.js +1361 -867
- package/lib/VtxMap/OMap/Map.js.map +1 -1
- package/lib/VtxMap/OlMap/Map.js +1289 -699
- package/lib/VtxMap/OlMap/Map.js.map +1 -1
- package/lib/VtxMap/TMap/TMap.js +1058 -651
- package/lib/VtxMap/TMap/TMap.js.map +1 -1
- package/lib/VtxMap/index.js +8 -1
- package/lib/VtxMap/index.js.map +1 -1
- package/lib/VtxMap/mapPlayer.js +123 -67
- package/lib/VtxMap/mapPlayer.js.map +1 -1
- package/lib/VtxMap/optimizingPointMap.js +77 -21
- package/lib/VtxMap/optimizingPointMap.js.map +1 -1
- package/lib/VtxMap/style/css.js +6 -0
- package/lib/VtxMap/style/css.js.map +1 -1
- package/lib/VtxMap/style/index.js +6 -0
- package/lib/VtxMap/style/index.js.map +1 -1
- package/lib/VtxMap/zoomMap.js +41 -12
- package/lib/VtxMap/zoomMap.js.map +1 -1
- package/lib/VtxModal/VtxModal.js +63 -19
- package/lib/VtxModal/VtxModal.js.map +1 -1
- package/lib/VtxModal/draggableModal.js +48 -12
- package/lib/VtxModal/draggableModal.js.map +1 -1
- package/lib/VtxModal/index.js +6 -1
- package/lib/VtxModal/index.js.map +1 -1
- package/lib/VtxModal/style/css.js +6 -0
- package/lib/VtxModal/style/css.js.map +1 -1
- package/lib/VtxModal/style/index.js +6 -0
- package/lib/VtxModal/style/index.js.map +1 -1
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js +238 -105
- package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js.map +1 -1
- package/lib/VtxSearchCheckMap/index.js +2 -0
- package/lib/VtxSearchCheckMap/index.js.map +1 -1
- package/lib/VtxSearchCheckMap/mapping.js +2 -1
- package/lib/VtxSearchCheckMap/mapping.js.map +1 -1
- package/lib/VtxSearchCheckMap/style/css.js +19 -0
- package/lib/VtxSearchCheckMap/style/css.js.map +1 -1
- package/lib/VtxSearchCheckMap/style/index.js +19 -0
- package/lib/VtxSearchCheckMap/style/index.js.map +1 -1
- package/lib/VtxSearchMap/VtxSearchMap.js +220 -89
- package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
- package/lib/VtxSearchMap/index.js +2 -0
- package/lib/VtxSearchMap/index.js.map +1 -1
- package/lib/VtxSearchMap/mapping.js +2 -1
- package/lib/VtxSearchMap/mapping.js.map +1 -1
- package/lib/VtxSearchMap/style/css.js +19 -0
- package/lib/VtxSearchMap/style/css.js.map +1 -1
- package/lib/VtxSearchMap/style/index.js +19 -0
- package/lib/VtxSearchMap/style/index.js.map +1 -1
- package/lib/default.js +13 -4
- package/lib/default.js.map +1 -1
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
package/lib/VtxMap/index.js
CHANGED
|
@@ -28,13 +28,20 @@ Object.defineProperty(exports, "VtxZoomMap", {
|
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
30
|
exports["default"] = void 0;
|
|
31
|
+
|
|
31
32
|
var _Map = _interopRequireDefault(require("./Map"));
|
|
33
|
+
|
|
32
34
|
var _optimizingPointMap = _interopRequireDefault(require("./optimizingPointMap"));
|
|
35
|
+
|
|
33
36
|
var _zoomMap = _interopRequireDefault(require("./zoomMap"));
|
|
37
|
+
|
|
34
38
|
var _mapPlayer = _interopRequireDefault(require("./mapPlayer"));
|
|
39
|
+
|
|
35
40
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
41
|
+
|
|
36
42
|
_Map["default"].VtxOptMap = _optimizingPointMap["default"];
|
|
37
43
|
_Map["default"].VtxZoomMap = _zoomMap["default"];
|
|
38
44
|
_Map["default"].MapPlayer = _mapPlayer["default"];
|
|
39
|
-
var _default =
|
|
45
|
+
var _default = _Map["default"];
|
|
46
|
+
exports["default"] = _default;
|
|
40
47
|
//# sourceMappingURL=index.js.map
|
package/lib/VtxMap/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["VtxMap","VtxOptMap","VtxZoomMap","MapPlayer"],"sources":["VtxMap/index.js"],"sourcesContent":["import {default as VtxMap} from './Map';\r\nimport {default as VtxOptMap} from './optimizingPointMap';\r\nimport {default as VtxZoomMap} from './zoomMap';\r\nimport {default as MapPlayer} from './mapPlayer';\r\n\r\nVtxMap.VtxOptMap = VtxOptMap;\r\nVtxMap.VtxZoomMap = VtxZoomMap;\r\nVtxMap.MapPlayer = MapPlayer;\r\n\r\nexport default VtxMap;\r\nexport {VtxMap,VtxOptMap,VtxZoomMap,MapPlayer};"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAEAA,eAAA,CAAOC,SAAP,GAAmBA,8BAAnB;AACAD,eAAA,CAAOE,UAAP,GAAoBA,mBAApB;AACAF,eAAA,CAAOG,SAAP,GAAmBA,qBAAnB;eAEeH,e"}
|
package/lib/VtxMap/mapPlayer.js
CHANGED
|
@@ -4,21 +4,31 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports["default"] = void 0;
|
|
7
|
-
|
|
7
|
+
|
|
8
8
|
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
|
|
9
|
+
|
|
9
10
|
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
11
|
+
|
|
10
12
|
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); }
|
|
13
|
+
|
|
11
14
|
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
15
|
+
|
|
12
16
|
function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }
|
|
13
|
-
|
|
14
|
-
function
|
|
15
|
-
|
|
16
|
-
function
|
|
17
|
+
|
|
18
|
+
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; }
|
|
19
|
+
|
|
20
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
21
|
+
|
|
22
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
23
|
+
|
|
24
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
25
|
+
|
|
17
26
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
18
|
-
|
|
27
|
+
|
|
28
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
29
|
+
|
|
19
30
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
20
|
-
|
|
21
|
-
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
31
|
+
|
|
22
32
|
/*
|
|
23
33
|
地图实例:@map
|
|
24
34
|
需要播放的点位数组:@path --- [{longitude,latitude,name,id}]
|
|
@@ -36,26 +46,36 @@ pause
|
|
|
36
46
|
stop
|
|
37
47
|
destroy
|
|
38
48
|
*/
|
|
39
|
-
var MapPlayer =
|
|
49
|
+
var MapPlayer = /*#__PURE__*/function () {
|
|
40
50
|
function MapPlayer(_ref) {
|
|
41
51
|
var _this = this;
|
|
52
|
+
|
|
42
53
|
var map = _ref.map,
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
path = _ref.path,
|
|
55
|
+
speed = _ref.speed,
|
|
56
|
+
playRate = _ref.playRate,
|
|
57
|
+
pointSetting = _ref.pointSetting,
|
|
58
|
+
lineSetting = _ref.lineSetting,
|
|
59
|
+
enableRotation = _ref.enableRotation,
|
|
60
|
+
mapMove = _ref.mapMove,
|
|
61
|
+
onChange = _ref.onChange;
|
|
62
|
+
|
|
51
63
|
_classCallCheck(this, MapPlayer);
|
|
64
|
+
|
|
52
65
|
this.map = map; //地图实例
|
|
66
|
+
|
|
53
67
|
this.path = path || []; //点位数组
|
|
68
|
+
|
|
54
69
|
this.speed = speed || 12; //点位移动速度,m/s
|
|
70
|
+
|
|
55
71
|
this.playFrame = 24; //播放帧率
|
|
72
|
+
|
|
56
73
|
this.playRate = playRate || 1; //播放速率
|
|
74
|
+
|
|
57
75
|
this.enableRotation = enableRotation || false; //是否开启图标自动旋转
|
|
76
|
+
|
|
58
77
|
this.mapMove = mapMove || false; //地图是否跟随播放点位移动
|
|
78
|
+
|
|
59
79
|
this.pointSetting = pointSetting || {
|
|
60
80
|
config: {
|
|
61
81
|
width: 30,
|
|
@@ -68,19 +88,25 @@ var MapPlayer = exports["default"] = /*#__PURE__*/function () {
|
|
|
68
88
|
lineWidth: 3,
|
|
69
89
|
color: 'blue'
|
|
70
90
|
}; //线的样式配置
|
|
91
|
+
|
|
71
92
|
this.onChange = onChange;
|
|
72
93
|
var uniqueID = "".concat(new Date().valueOf(), "_").concat(parseInt(Math.random() * 100000000));
|
|
73
94
|
this._pointId = "point_".concat(uniqueID);
|
|
74
95
|
this._lineId = "line_".concat(uniqueID);
|
|
75
96
|
this._currentIndex = 0; //当前播放的点位序号
|
|
97
|
+
|
|
76
98
|
this._supplementPoints = []; //补点列表
|
|
99
|
+
|
|
77
100
|
this._currentSupplementIndex = 0; //当前补点序号
|
|
101
|
+
|
|
78
102
|
this._timer = null; //播放定时器
|
|
103
|
+
|
|
79
104
|
this.map.loadMapComplete.then(function () {
|
|
80
105
|
_this._redraw();
|
|
81
106
|
});
|
|
82
|
-
}
|
|
83
|
-
|
|
107
|
+
} // 根据当前数据重新渲染点和线的图形
|
|
108
|
+
|
|
109
|
+
|
|
84
110
|
_createClass(MapPlayer, [{
|
|
85
111
|
key: "_redraw",
|
|
86
112
|
value: function _redraw() {
|
|
@@ -89,14 +115,17 @@ var MapPlayer = exports["default"] = /*#__PURE__*/function () {
|
|
|
89
115
|
this.map.GM.isRepetition(this._lineId) && this.map.removeGraphic(this._lineId);
|
|
90
116
|
return;
|
|
91
117
|
}
|
|
118
|
+
|
|
92
119
|
if (this._currentIndex < this.path.length) {
|
|
93
120
|
// 画点
|
|
94
121
|
var currentPoint;
|
|
122
|
+
|
|
95
123
|
if (this._currentIndex == this.path.length - 1 || this._supplementPoints.length == 0) {
|
|
96
124
|
currentPoint = this.path[this._currentIndex];
|
|
97
125
|
} else {
|
|
98
126
|
currentPoint = this._supplementPoints[this._currentSupplementIndex];
|
|
99
127
|
}
|
|
128
|
+
|
|
100
129
|
var pointObj = _objectSpread(_objectSpread(_objectSpread({}, currentPoint), {}, {
|
|
101
130
|
id: this._pointId,
|
|
102
131
|
latitude: currentPoint.latitude,
|
|
@@ -106,6 +135,7 @@ var MapPlayer = exports["default"] = /*#__PURE__*/function () {
|
|
|
106
135
|
labelContent: currentPoint.name || ''
|
|
107
136
|
})
|
|
108
137
|
});
|
|
138
|
+
|
|
109
139
|
if (this.enableRotation) {
|
|
110
140
|
var deg = this._currentIndex + 1 < this.path.length ? this._getIconAngle({
|
|
111
141
|
x: this.path[this._currentIndex].longitude,
|
|
@@ -116,28 +146,34 @@ var MapPlayer = exports["default"] = /*#__PURE__*/function () {
|
|
|
116
146
|
}) : 0;
|
|
117
147
|
pointObj.config.deg = deg;
|
|
118
148
|
}
|
|
149
|
+
|
|
119
150
|
if (this.map.GM.isRepetition(this._pointId)) {
|
|
120
151
|
this.map.updatePoint([pointObj]);
|
|
121
152
|
this.mapMove && this.map.setCenter([pointObj.longitude, pointObj.latitude]);
|
|
122
153
|
} else {
|
|
123
154
|
this.map.addPoint([pointObj], 'defined');
|
|
124
|
-
}
|
|
125
|
-
|
|
155
|
+
} // 画线
|
|
156
|
+
|
|
157
|
+
|
|
126
158
|
var paths = [];
|
|
159
|
+
|
|
127
160
|
for (var i = 0; i <= this._currentIndex; i++) {
|
|
128
161
|
paths.push([this.path[i].longitude, this.path[i].latitude]);
|
|
129
162
|
}
|
|
163
|
+
|
|
130
164
|
if (this._supplementPoints.length > 0) {
|
|
131
165
|
for (var _i = 0; _i <= this._currentSupplementIndex; _i++) {
|
|
132
166
|
paths.push([this._supplementPoints[_i].longitude, this._supplementPoints[_i].latitude]);
|
|
133
167
|
}
|
|
134
168
|
}
|
|
169
|
+
|
|
135
170
|
if (paths.length > 1) {
|
|
136
171
|
var lineObj = {
|
|
137
172
|
id: this._lineId,
|
|
138
173
|
paths: paths,
|
|
139
174
|
config: this.lineSetting
|
|
140
175
|
};
|
|
176
|
+
|
|
141
177
|
if (this.map.GM.isRepetition(this._lineId)) {
|
|
142
178
|
this.map.updateLine([lineObj]);
|
|
143
179
|
} else {
|
|
@@ -157,16 +193,16 @@ var MapPlayer = exports["default"] = /*#__PURE__*/function () {
|
|
|
157
193
|
clearTimeout(this._timer);
|
|
158
194
|
this._timer = null;
|
|
159
195
|
}
|
|
160
|
-
}
|
|
161
|
-
|
|
196
|
+
} // 计算图标转动角度(仅适用于当前车辆图标,仅适用于中国区域)
|
|
197
|
+
|
|
162
198
|
}, {
|
|
163
199
|
key: "_getIconAngle",
|
|
164
200
|
value: function _getIconAngle(start, end) {
|
|
165
201
|
var diff_x = end.x - start.x,
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
var ag = 360 * Math.atan(diff_y / diff_x) / (2 * Math.PI);
|
|
169
|
-
|
|
202
|
+
diff_y = end.y - start.y; // 1,4象限夹脚计算
|
|
203
|
+
|
|
204
|
+
var ag = 360 * Math.atan(diff_y / diff_x) / (2 * Math.PI); // 地图夹角偏转计算
|
|
205
|
+
|
|
170
206
|
if (diff_x == 0) {
|
|
171
207
|
if (diff_y > 0) {
|
|
172
208
|
return -90;
|
|
@@ -175,55 +211,57 @@ var MapPlayer = exports["default"] = /*#__PURE__*/function () {
|
|
|
175
211
|
} else {
|
|
176
212
|
return 0;
|
|
177
213
|
}
|
|
178
|
-
}
|
|
179
|
-
// 坐标系1,4象限
|
|
214
|
+
} // 坐标系1,4象限
|
|
180
215
|
else if (diff_x > 0) {
|
|
181
216
|
return -ag;
|
|
182
|
-
}
|
|
183
|
-
// 坐标系2,3象限
|
|
217
|
+
} // 坐标系2,3象限
|
|
184
218
|
else {
|
|
185
219
|
return 180 - ag;
|
|
186
220
|
}
|
|
187
|
-
}
|
|
188
|
-
|
|
221
|
+
} // 根据两点生成补点列表
|
|
222
|
+
|
|
189
223
|
}, {
|
|
190
224
|
key: "_generateSupplyPoints",
|
|
191
225
|
value: function _generateSupplyPoints(p1, p2) {
|
|
192
226
|
var currentLng = p1.longitude,
|
|
193
|
-
|
|
227
|
+
currentLat = p1.latitude;
|
|
194
228
|
var nextLng = p2.longitude,
|
|
195
|
-
|
|
196
|
-
var runTime = this.map.calculateDistance([[currentLng, currentLat], [nextLng, nextLat]]) / (this.speed * this.playRate);
|
|
197
|
-
|
|
229
|
+
nextLat = p2.latitude;
|
|
230
|
+
var runTime = this.map.calculateDistance([[currentLng, currentLat], [nextLng, nextLat]]) / (this.speed * this.playRate); //不需要补点
|
|
231
|
+
|
|
198
232
|
if (runTime <= 1 / this.playFrame) {
|
|
199
233
|
return [];
|
|
200
|
-
}
|
|
201
|
-
// 需要补点
|
|
234
|
+
} // 需要补点
|
|
202
235
|
else {
|
|
203
236
|
var supplementNum = Math.ceil(runTime / (1 / this.playFrame)) - 1;
|
|
204
237
|
var lng_spacing = (nextLng - currentLng) / (supplementNum + 1);
|
|
205
238
|
var lat_spacing = (nextLat - currentLat) / (supplementNum + 1);
|
|
206
239
|
var supplementPoints = [];
|
|
240
|
+
|
|
207
241
|
for (var i = 1; i <= supplementNum; i++) {
|
|
208
242
|
supplementPoints.push(_objectSpread(_objectSpread({}, this.path[this._currentIndex]), {}, {
|
|
209
243
|
longitude: currentLng + lng_spacing * i,
|
|
210
244
|
latitude: currentLat + lat_spacing * i
|
|
211
245
|
}));
|
|
212
246
|
}
|
|
247
|
+
|
|
213
248
|
return supplementPoints;
|
|
214
249
|
}
|
|
215
|
-
}
|
|
216
|
-
|
|
250
|
+
} // 开始播放
|
|
251
|
+
|
|
217
252
|
}, {
|
|
218
253
|
key: "play",
|
|
219
254
|
value: function play() {
|
|
220
255
|
var _this2 = this;
|
|
256
|
+
|
|
221
257
|
this._clearTimer();
|
|
258
|
+
|
|
222
259
|
if (this.path.length == 0 || this._currentIndex == this.path.length - 1) {
|
|
223
260
|
return;
|
|
224
261
|
}
|
|
225
|
-
|
|
226
|
-
// 当前处于补点播放
|
|
262
|
+
|
|
263
|
+
; // 当前处于补点播放
|
|
264
|
+
|
|
227
265
|
if (this._supplementPoints.length > 0) {
|
|
228
266
|
this._timer = setTimeout(function () {
|
|
229
267
|
if (_this2._currentSupplementIndex < _this2._supplementPoints.length - 1) {
|
|
@@ -234,89 +272,101 @@ var MapPlayer = exports["default"] = /*#__PURE__*/function () {
|
|
|
234
272
|
_this2._currentIndex = _this2._currentIndex + 1;
|
|
235
273
|
typeof _this2.onChange == 'function' && _this2.onChange(_this2.path[_this2._currentIndex], _this2._currentIndex);
|
|
236
274
|
}
|
|
275
|
+
|
|
237
276
|
_this2._redraw();
|
|
277
|
+
|
|
238
278
|
_this2.play();
|
|
239
279
|
}, 1000 / this.playFrame);
|
|
240
|
-
}
|
|
241
|
-
// 当前处于非补点播放
|
|
280
|
+
} // 当前处于非补点播放
|
|
242
281
|
else {
|
|
243
|
-
var spPoints = this._generateSupplyPoints(this.path[this._currentIndex], this.path[this._currentIndex + 1]);
|
|
244
|
-
|
|
282
|
+
var spPoints = this._generateSupplyPoints(this.path[this._currentIndex], this.path[this._currentIndex + 1]); //不需要补点
|
|
283
|
+
|
|
284
|
+
|
|
245
285
|
if (spPoints.length == 0) {
|
|
246
286
|
this._timer = setTimeout(function () {
|
|
247
287
|
_this2._currentIndex = _this2._currentIndex + 1;
|
|
248
288
|
typeof _this2.onChange == 'function' && _this2.onChange(_this2.path[_this2._currentIndex], _this2._currentIndex);
|
|
289
|
+
|
|
249
290
|
_this2._redraw();
|
|
291
|
+
|
|
250
292
|
_this2.play();
|
|
251
293
|
}, 1000 / this.playFrame);
|
|
252
|
-
}
|
|
253
|
-
// 需要补点
|
|
294
|
+
} // 需要补点
|
|
254
295
|
else {
|
|
255
296
|
this._timer = setTimeout(function () {
|
|
256
297
|
_this2._currentSupplementIndex = 0;
|
|
257
298
|
_this2._supplementPoints = spPoints;
|
|
299
|
+
|
|
258
300
|
_this2._redraw();
|
|
301
|
+
|
|
259
302
|
_this2.play();
|
|
260
303
|
}, 1000 / this.playFrame);
|
|
261
304
|
}
|
|
262
305
|
}
|
|
263
|
-
}
|
|
264
|
-
|
|
306
|
+
} // 暂停播放
|
|
307
|
+
|
|
265
308
|
}, {
|
|
266
309
|
key: "pause",
|
|
267
310
|
value: function pause(onPlayPause) {
|
|
268
311
|
this._clearTimer();
|
|
312
|
+
|
|
269
313
|
typeof onPlayPause == "function" && onPlayPause(this.path[this._currentIndex], this._currentIndex);
|
|
270
|
-
}
|
|
271
|
-
|
|
314
|
+
} // 停止播放(回到初始点位)
|
|
315
|
+
|
|
272
316
|
}, {
|
|
273
317
|
key: "stop",
|
|
274
318
|
value: function stop() {
|
|
275
319
|
this._clearTimer();
|
|
320
|
+
|
|
276
321
|
this._currentIndex = 0;
|
|
277
322
|
this._supplementPoints = [];
|
|
278
323
|
this._currentSupplementIndex = 0;
|
|
279
|
-
|
|
280
|
-
// typeof this.onChange == "function" && this.onChange(this.path[0],0);
|
|
281
|
-
|
|
282
|
-
// 销毁(删除所有添加的图层)
|
|
324
|
+
|
|
325
|
+
this._redraw(); // typeof this.onChange == "function" && this.onChange(this.path[0],0);
|
|
326
|
+
|
|
327
|
+
} // 销毁(删除所有添加的图层)
|
|
328
|
+
|
|
283
329
|
}, {
|
|
284
330
|
key: "destroy",
|
|
285
331
|
value: function destroy() {
|
|
286
332
|
this._clearTimer();
|
|
333
|
+
|
|
287
334
|
this.map.removeGraphic(this._pointId);
|
|
288
335
|
this.map.removeGraphic(this._lineId);
|
|
289
336
|
this._currentIndex = 0;
|
|
290
337
|
this._supplementPoints = [];
|
|
291
338
|
this._currentSupplementIndex = 0;
|
|
292
|
-
}
|
|
293
|
-
|
|
339
|
+
} // 设置速度
|
|
340
|
+
|
|
294
341
|
}, {
|
|
295
342
|
key: "setPlayRate",
|
|
296
343
|
value: function setPlayRate(newPlayRate) {
|
|
297
|
-
this.playRate = newPlayRate;
|
|
298
|
-
|
|
344
|
+
this.playRate = newPlayRate; //如果当前处于补点状态,重新生成新的补点
|
|
345
|
+
|
|
299
346
|
if (this._supplementPoints.length > 0) {
|
|
300
347
|
var newSpPoints = this._generateSupplyPoints(this._supplementPoints[this._currentSupplementIndex], this.path[this._currentIndex + 1]);
|
|
348
|
+
|
|
301
349
|
this._supplementPoints = [].concat(_toConsumableArray(this._supplementPoints.slice(0, this._currentSupplementIndex + 1)), _toConsumableArray(newSpPoints));
|
|
302
350
|
}
|
|
303
|
-
}
|
|
304
|
-
|
|
351
|
+
} // 设置当前播放点位的位置
|
|
352
|
+
|
|
305
353
|
}, {
|
|
306
354
|
key: "setCurrentIndex",
|
|
307
355
|
value: function setCurrentIndex(pIndex) {
|
|
308
356
|
if (pIndex >= this.path.length) return;
|
|
309
357
|
this._currentIndex = pIndex;
|
|
310
358
|
this._supplementPoints = [];
|
|
311
|
-
this._currentSupplementIndex = 0;
|
|
312
|
-
|
|
359
|
+
this._currentSupplementIndex = 0; // typeof this.onChange == "function" && this.onChange(this.path[pIndex],pIndex);
|
|
360
|
+
|
|
313
361
|
this._redraw();
|
|
362
|
+
|
|
314
363
|
if (this._timer) {
|
|
315
364
|
this._clearTimer();
|
|
365
|
+
|
|
316
366
|
this.play();
|
|
317
367
|
}
|
|
318
|
-
}
|
|
319
|
-
|
|
368
|
+
} // 重新设置播放路线
|
|
369
|
+
|
|
320
370
|
}, {
|
|
321
371
|
key: "setPath",
|
|
322
372
|
value: function setPath(newPath) {
|
|
@@ -324,14 +374,20 @@ var MapPlayer = exports["default"] = /*#__PURE__*/function () {
|
|
|
324
374
|
this._currentIndex = 0;
|
|
325
375
|
this._supplementPoints = [];
|
|
326
376
|
this._currentSupplementIndex = 0;
|
|
377
|
+
|
|
327
378
|
this._redraw();
|
|
379
|
+
|
|
328
380
|
if (this._timer) {
|
|
329
381
|
this._clearTimer();
|
|
382
|
+
|
|
330
383
|
this.play();
|
|
331
384
|
}
|
|
332
385
|
}
|
|
333
386
|
}]);
|
|
387
|
+
|
|
334
388
|
return MapPlayer;
|
|
335
389
|
}();
|
|
390
|
+
|
|
391
|
+
exports["default"] = MapPlayer;
|
|
336
392
|
module.exports = exports["default"];
|
|
337
393
|
//# sourceMappingURL=mapPlayer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapPlayer.js","names":["MapPlayer","exports","_ref","_this","map","path","speed","playRate","pointSetting","lineSetting","enableRotation","mapMove","onChange","_classCallCheck","playFrame","config","width","height","markerContentX","markerContentY","lineWidth","color","uniqueID","concat","Date","valueOf","parseInt","Math","random","_pointId","_lineId","_currentIndex","_supplementPoints","_currentSupplementIndex","_timer","loadMapComplete","then","_redraw","_createClass","key","value","length","GM","isRepetition","removeGraphic","currentPoint","pointObj","_objectSpread","id","latitude","longitude","labelContent","name","deg","_getIconAngle","x","y","updatePoint","setCenter","addPoint","paths","i","push","lineObj","updateLine","addLine","_clearTimer","clearTimeout","start","end","diff_x","diff_y","ag","atan","PI","_generateSupplyPoints","p1","p2","currentLng","currentLat","nextLng","nextLat","runTime","calculateDistance","supplementNum","ceil","lng_spacing","lat_spacing","supplementPoints","play","_this2","setTimeout","spPoints","pause","onPlayPause","stop","destroy","setPlayRate","newPlayRate","newSpPoints","_toConsumableArray","slice","setCurrentIndex","pIndex","setPath","newPath","module"],"sources":["VtxMap/mapPlayer.js"],"sourcesContent":["/* \r\n地图实例:@map\r\n需要播放的点位数组:@path --- [{longitude,latitude,name,id}]\r\n\r\n播放速度:@speed --- Number\r\n播放倍率:@playRate,\r\n点位设置:@pointSetting,\r\n线设置:@lineSetting,\r\n是否开启图标自动旋转:@enableRotation,\r\n点位变化事件:@onChange\r\nsetSpeed\r\nsetCurrentIndex\r\nplay\r\npause\r\nstop\r\ndestroy\r\n*/\r\nexport default class MapPlayer{\r\n constructor({map,path,speed,playRate,pointSetting,lineSetting,enableRotation,mapMove,onChange}){\r\n this.map = map; //地图实例\r\n this.path = path||[]; //点位数组\r\n this.speed = speed||12;//点位移动速度,m/s\r\n this.playFrame = 24; //播放帧率\r\n this.playRate = playRate||1; //播放速率\r\n this.enableRotation = enableRotation||false; //是否开启图标自动旋转\r\n this.mapMove = mapMove||false; //地图是否跟随播放点位移动\r\n this.pointSetting = pointSetting||{\r\n config:{\r\n width:30,\r\n height:30, \r\n markerContentX:-15,\r\n markerContentY:-15, \r\n }\r\n }\r\n this.lineSetting = lineSetting||{lineWidth:3,color:'blue'}; //线的样式配置\r\n this.onChange = onChange;\r\n \r\n const uniqueID = `${new Date().valueOf()}_${parseInt(Math.random()*100000000)}`;\r\n this._pointId = `point_${uniqueID}`;\r\n this._lineId = `line_${uniqueID}`;\r\n this._currentIndex = 0; //当前播放的点位序号\r\n this._supplementPoints = [];//补点列表\r\n this._currentSupplementIndex = 0;//当前补点序号\r\n this._timer = null; //播放定时器\r\n this.map.loadMapComplete.then(()=>{\r\n this._redraw();\r\n })\r\n \r\n }\r\n // 根据当前数据重新渲染点和线的图形\r\n _redraw(){\r\n if(this.path.length==0 ){\r\n this.map.GM.isRepetition(this._pointId) && this.map.removeGraphic(this._pointId);\r\n this.map.GM.isRepetition(this._lineId) && this.map.removeGraphic(this._lineId);\r\n return;\r\n }\r\n if(this._currentIndex < this.path.length){\r\n // 画点\r\n let currentPoint;\r\n if(this._currentIndex==this.path.length-1 || this._supplementPoints.length==0){\r\n currentPoint = this.path[this._currentIndex];\r\n }\r\n else{\r\n currentPoint = this._supplementPoints[this._currentSupplementIndex];\r\n }\r\n let pointObj = {\r\n ...currentPoint,\r\n id: this._pointId,\r\n latitude:currentPoint.latitude,\r\n longitude:currentPoint.longitude,\r\n ...this.pointSetting,\r\n config:{\r\n ...(this.pointSetting.config||{}),\r\n labelContent:currentPoint.name||'',\r\n }\r\n }\r\n if(this.enableRotation){\r\n const deg = this._currentIndex+1<this.path.length?this._getIconAngle({\r\n x:this.path[this._currentIndex].longitude,\r\n y:this.path[this._currentIndex].latitude,\r\n },{\r\n x:this.path[this._currentIndex+1].longitude,\r\n y:this.path[this._currentIndex+1].latitude\r\n }):0;\r\n pointObj.config.deg = deg;\r\n }\r\n \r\n if(this.map.GM.isRepetition(this._pointId)){\r\n this.map.updatePoint([pointObj]);\r\n this.mapMove && this.map.setCenter([pointObj.longitude,pointObj.latitude]);\r\n }\r\n else{\r\n this.map.addPoint([pointObj],'defined');\r\n }\r\n // 画线\r\n let paths = [];\r\n for(let i=0; i<=this._currentIndex; i++){\r\n paths.push([this.path[i].longitude,this.path[i].latitude]);\r\n }\r\n \r\n if(this._supplementPoints.length>0){\r\n for(let i=0;i<=this._currentSupplementIndex;i++){\r\n paths.push([this._supplementPoints[i].longitude,this._supplementPoints[i].latitude])\r\n }\r\n }\r\n if(paths.length>1){\r\n const lineObj = {\r\n id:this._lineId,\r\n paths,\r\n config:this.lineSetting\r\n }\r\n if(this.map.GM.isRepetition(this._lineId)){\r\n this.map.updateLine([lineObj]);\r\n }\r\n else{\r\n this.map.addLine([lineObj],'defined');\r\n }\r\n }\r\n else{\r\n if(this.map.GM.isRepetition(this._lineId)){\r\n this.map.removeGraphic(this._lineId);\r\n } \r\n } \r\n }\r\n }\r\n _clearTimer(){\r\n if(this._timer){\r\n clearTimeout(this._timer);\r\n this._timer = null;\r\n }\r\n }\r\n // 计算图标转动角度(仅适用于当前车辆图标,仅适用于中国区域)\r\n _getIconAngle(start,end){\r\n const diff_x = end.x - start.x,\r\n diff_y = end.y - start.y;\r\n // 1,4象限夹脚计算\r\n const ag = 360*Math.atan(diff_y/diff_x)/(2*Math.PI);\r\n // 地图夹角偏转计算\r\n if(diff_x==0){\r\n if(diff_y>0){\r\n return -90;\r\n }\r\n else if(diff_y<0){\r\n return 90;\r\n }\r\n else{\r\n return 0;\r\n }\r\n }\r\n // 坐标系1,4象限\r\n else if(diff_x>0){\r\n return -ag;\r\n }\r\n // 坐标系2,3象限\r\n else{\r\n return 180 - ag;\r\n }\r\n }\r\n // 根据两点生成补点列表\r\n _generateSupplyPoints(p1,p2){\r\n const {longitude:currentLng, latitude:currentLat} = p1;\r\n const {longitude:nextLng, latitude:nextLat} = p2;\r\n const runTime = this.map.calculateDistance([\r\n [currentLng,currentLat],\r\n [nextLng,nextLat]\r\n ])/(this.speed*this.playRate);\r\n //不需要补点 \r\n if(runTime<=1/this.playFrame){\r\n return [];\r\n }\r\n // 需要补点\r\n else{\r\n const supplementNum = Math.ceil(runTime/(1/this.playFrame))-1;\r\n const lng_spacing = (nextLng - currentLng)/(supplementNum+1);\r\n const lat_spacing = (nextLat - currentLat)/(supplementNum+1);\r\n let supplementPoints = [];\r\n for(let i=1;i<=supplementNum;i++){\r\n supplementPoints.push({\r\n ...this.path[this._currentIndex],\r\n longitude:currentLng+lng_spacing*i,\r\n latitude:currentLat+lat_spacing*i,\r\n });\r\n }\r\n return supplementPoints;\r\n }\r\n }\r\n // 开始播放\r\n play(){\r\n this._clearTimer();\r\n if(this.path.length==0 || this._currentIndex==this.path.length-1){\r\n return;\r\n };\r\n // 当前处于补点播放\r\n if(this._supplementPoints.length>0){\r\n this._timer = setTimeout(()=>{\r\n if(this._currentSupplementIndex<this._supplementPoints.length-1){\r\n this._currentSupplementIndex = this._currentSupplementIndex+1;\r\n }\r\n else{\r\n this._currentSupplementIndex = 0;\r\n this._supplementPoints = [];\r\n this._currentIndex = this._currentIndex+1;\r\n typeof this.onChange=='function' && this.onChange(this.path[this._currentIndex],this._currentIndex);\r\n }\r\n this._redraw();\r\n this.play();\r\n },1000/this.playFrame);\r\n }\r\n // 当前处于非补点播放\r\n else{\r\n const spPoints = this._generateSupplyPoints(this.path[this._currentIndex],this.path[this._currentIndex+1]);\r\n //不需要补点 \r\n if(spPoints.length==0){\r\n this._timer = setTimeout(()=>{\r\n this._currentIndex = this._currentIndex+1;\r\n typeof this.onChange=='function' && this.onChange(this.path[this._currentIndex],this._currentIndex);\r\n this._redraw();\r\n this.play();\r\n },1000/this.playFrame);\r\n }\r\n // 需要补点\r\n else{\r\n this._timer = setTimeout(()=>{\r\n this._currentSupplementIndex = 0;\r\n this._supplementPoints = spPoints;\r\n this._redraw();\r\n this.play();\r\n },1000/this.playFrame);\r\n }\r\n } \r\n }\r\n // 暂停播放\r\n pause(onPlayPause){\r\n this._clearTimer();\r\n typeof onPlayPause == \"function\" && onPlayPause(this.path[this._currentIndex],this._currentIndex);\r\n }\r\n // 停止播放(回到初始点位)\r\n stop(){\r\n this._clearTimer();\r\n this._currentIndex = 0;\r\n this._supplementPoints = [];\r\n this._currentSupplementIndex = 0;\r\n this._redraw();\r\n // typeof this.onChange == \"function\" && this.onChange(this.path[0],0);\r\n }\r\n // 销毁(删除所有添加的图层)\r\n destroy(){\r\n this._clearTimer();\r\n this.map.removeGraphic(this._pointId);\r\n this.map.removeGraphic(this._lineId);\r\n this._currentIndex = 0;\r\n this._supplementPoints = [];\r\n this._currentSupplementIndex = 0;\r\n }\r\n // 设置速度\r\n setPlayRate(newPlayRate){\r\n this.playRate = newPlayRate;\r\n //如果当前处于补点状态,重新生成新的补点\r\n if(this._supplementPoints.length>0){\r\n const newSpPoints = this._generateSupplyPoints(this._supplementPoints[this._currentSupplementIndex],this.path[this._currentIndex+1]);\r\n this._supplementPoints = [...this._supplementPoints.slice(0,this._currentSupplementIndex+1),...newSpPoints];\r\n }\r\n }\r\n // 设置当前播放点位的位置\r\n setCurrentIndex(pIndex){\r\n if(pIndex >= this.path.length)return;\r\n \r\n this._currentIndex = pIndex;\r\n this._supplementPoints = [];\r\n this._currentSupplementIndex = 0;\r\n // typeof this.onChange == \"function\" && this.onChange(this.path[pIndex],pIndex);\r\n this._redraw();\r\n if(this._timer){\r\n this._clearTimer();\r\n this.play();\r\n }\r\n }\r\n // 重新设置播放路线\r\n setPath(newPath){\r\n this.path = newPath;\r\n this._currentIndex = 0;\r\n this._supplementPoints = [];\r\n this._currentSupplementIndex = 0;\r\n this._redraw();\r\n if(this._timer){\r\n this._clearTimer();\r\n this.play();\r\n }\r\n }\r\n}"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mapPlayer.js","names":["MapPlayer","map","path","speed","playRate","pointSetting","lineSetting","enableRotation","mapMove","onChange","playFrame","config","width","height","markerContentX","markerContentY","lineWidth","color","uniqueID","Date","valueOf","parseInt","Math","random","_pointId","_lineId","_currentIndex","_supplementPoints","_currentSupplementIndex","_timer","loadMapComplete","then","_redraw","length","GM","isRepetition","removeGraphic","currentPoint","pointObj","id","latitude","longitude","labelContent","name","deg","_getIconAngle","x","y","updatePoint","setCenter","addPoint","paths","i","push","lineObj","updateLine","addLine","clearTimeout","start","end","diff_x","diff_y","ag","atan","PI","p1","p2","currentLng","currentLat","nextLng","nextLat","runTime","calculateDistance","supplementNum","ceil","lng_spacing","lat_spacing","supplementPoints","_clearTimer","setTimeout","play","spPoints","_generateSupplyPoints","onPlayPause","newPlayRate","newSpPoints","slice","pIndex","newPath"],"sources":["VtxMap/mapPlayer.js"],"sourcesContent":["/* \r\n地图实例:@map\r\n需要播放的点位数组:@path --- [{longitude,latitude,name,id}]\r\n\r\n播放速度:@speed --- Number\r\n播放倍率:@playRate,\r\n点位设置:@pointSetting,\r\n线设置:@lineSetting,\r\n是否开启图标自动旋转:@enableRotation,\r\n点位变化事件:@onChange\r\nsetSpeed\r\nsetCurrentIndex\r\nplay\r\npause\r\nstop\r\ndestroy\r\n*/\r\nexport default class MapPlayer{\r\n constructor({map,path,speed,playRate,pointSetting,lineSetting,enableRotation,mapMove,onChange}){\r\n this.map = map; //地图实例\r\n this.path = path||[]; //点位数组\r\n this.speed = speed||12;//点位移动速度,m/s\r\n this.playFrame = 24; //播放帧率\r\n this.playRate = playRate||1; //播放速率\r\n this.enableRotation = enableRotation||false; //是否开启图标自动旋转\r\n this.mapMove = mapMove||false; //地图是否跟随播放点位移动\r\n this.pointSetting = pointSetting||{\r\n config:{\r\n width:30,\r\n height:30, \r\n markerContentX:-15,\r\n markerContentY:-15, \r\n }\r\n }\r\n this.lineSetting = lineSetting||{lineWidth:3,color:'blue'}; //线的样式配置\r\n this.onChange = onChange;\r\n \r\n const uniqueID = `${new Date().valueOf()}_${parseInt(Math.random()*100000000)}`;\r\n this._pointId = `point_${uniqueID}`;\r\n this._lineId = `line_${uniqueID}`;\r\n this._currentIndex = 0; //当前播放的点位序号\r\n this._supplementPoints = [];//补点列表\r\n this._currentSupplementIndex = 0;//当前补点序号\r\n this._timer = null; //播放定时器\r\n this.map.loadMapComplete.then(()=>{\r\n this._redraw();\r\n })\r\n \r\n }\r\n // 根据当前数据重新渲染点和线的图形\r\n _redraw(){\r\n if(this.path.length==0 ){\r\n this.map.GM.isRepetition(this._pointId) && this.map.removeGraphic(this._pointId);\r\n this.map.GM.isRepetition(this._lineId) && this.map.removeGraphic(this._lineId);\r\n return;\r\n }\r\n if(this._currentIndex < this.path.length){\r\n // 画点\r\n let currentPoint;\r\n if(this._currentIndex==this.path.length-1 || this._supplementPoints.length==0){\r\n currentPoint = this.path[this._currentIndex];\r\n }\r\n else{\r\n currentPoint = this._supplementPoints[this._currentSupplementIndex];\r\n }\r\n let pointObj = {\r\n ...currentPoint,\r\n id: this._pointId,\r\n latitude:currentPoint.latitude,\r\n longitude:currentPoint.longitude,\r\n ...this.pointSetting,\r\n config:{\r\n ...(this.pointSetting.config||{}),\r\n labelContent:currentPoint.name||'',\r\n }\r\n }\r\n if(this.enableRotation){\r\n const deg = this._currentIndex+1<this.path.length?this._getIconAngle({\r\n x:this.path[this._currentIndex].longitude,\r\n y:this.path[this._currentIndex].latitude,\r\n },{\r\n x:this.path[this._currentIndex+1].longitude,\r\n y:this.path[this._currentIndex+1].latitude\r\n }):0;\r\n pointObj.config.deg = deg;\r\n }\r\n \r\n if(this.map.GM.isRepetition(this._pointId)){\r\n this.map.updatePoint([pointObj]);\r\n this.mapMove && this.map.setCenter([pointObj.longitude,pointObj.latitude]);\r\n }\r\n else{\r\n this.map.addPoint([pointObj],'defined');\r\n }\r\n // 画线\r\n let paths = [];\r\n for(let i=0; i<=this._currentIndex; i++){\r\n paths.push([this.path[i].longitude,this.path[i].latitude]);\r\n }\r\n \r\n if(this._supplementPoints.length>0){\r\n for(let i=0;i<=this._currentSupplementIndex;i++){\r\n paths.push([this._supplementPoints[i].longitude,this._supplementPoints[i].latitude])\r\n }\r\n }\r\n if(paths.length>1){\r\n const lineObj = {\r\n id:this._lineId,\r\n paths,\r\n config:this.lineSetting\r\n }\r\n if(this.map.GM.isRepetition(this._lineId)){\r\n this.map.updateLine([lineObj]);\r\n }\r\n else{\r\n this.map.addLine([lineObj],'defined');\r\n }\r\n }\r\n else{\r\n if(this.map.GM.isRepetition(this._lineId)){\r\n this.map.removeGraphic(this._lineId);\r\n } \r\n } \r\n }\r\n }\r\n _clearTimer(){\r\n if(this._timer){\r\n clearTimeout(this._timer);\r\n this._timer = null;\r\n }\r\n }\r\n // 计算图标转动角度(仅适用于当前车辆图标,仅适用于中国区域)\r\n _getIconAngle(start,end){\r\n const diff_x = end.x - start.x,\r\n diff_y = end.y - start.y;\r\n // 1,4象限夹脚计算\r\n const ag = 360*Math.atan(diff_y/diff_x)/(2*Math.PI);\r\n // 地图夹角偏转计算\r\n if(diff_x==0){\r\n if(diff_y>0){\r\n return -90;\r\n }\r\n else if(diff_y<0){\r\n return 90;\r\n }\r\n else{\r\n return 0;\r\n }\r\n }\r\n // 坐标系1,4象限\r\n else if(diff_x>0){\r\n return -ag;\r\n }\r\n // 坐标系2,3象限\r\n else{\r\n return 180 - ag;\r\n }\r\n }\r\n // 根据两点生成补点列表\r\n _generateSupplyPoints(p1,p2){\r\n const {longitude:currentLng, latitude:currentLat} = p1;\r\n const {longitude:nextLng, latitude:nextLat} = p2;\r\n const runTime = this.map.calculateDistance([\r\n [currentLng,currentLat],\r\n [nextLng,nextLat]\r\n ])/(this.speed*this.playRate);\r\n //不需要补点 \r\n if(runTime<=1/this.playFrame){\r\n return [];\r\n }\r\n // 需要补点\r\n else{\r\n const supplementNum = Math.ceil(runTime/(1/this.playFrame))-1;\r\n const lng_spacing = (nextLng - currentLng)/(supplementNum+1);\r\n const lat_spacing = (nextLat - currentLat)/(supplementNum+1);\r\n let supplementPoints = [];\r\n for(let i=1;i<=supplementNum;i++){\r\n supplementPoints.push({\r\n ...this.path[this._currentIndex],\r\n longitude:currentLng+lng_spacing*i,\r\n latitude:currentLat+lat_spacing*i,\r\n });\r\n }\r\n return supplementPoints;\r\n }\r\n }\r\n // 开始播放\r\n play(){\r\n this._clearTimer();\r\n if(this.path.length==0 || this._currentIndex==this.path.length-1){\r\n return;\r\n };\r\n // 当前处于补点播放\r\n if(this._supplementPoints.length>0){\r\n this._timer = setTimeout(()=>{\r\n if(this._currentSupplementIndex<this._supplementPoints.length-1){\r\n this._currentSupplementIndex = this._currentSupplementIndex+1;\r\n }\r\n else{\r\n this._currentSupplementIndex = 0;\r\n this._supplementPoints = [];\r\n this._currentIndex = this._currentIndex+1;\r\n typeof this.onChange=='function' && this.onChange(this.path[this._currentIndex],this._currentIndex);\r\n }\r\n this._redraw();\r\n this.play();\r\n },1000/this.playFrame);\r\n }\r\n // 当前处于非补点播放\r\n else{\r\n const spPoints = this._generateSupplyPoints(this.path[this._currentIndex],this.path[this._currentIndex+1]);\r\n //不需要补点 \r\n if(spPoints.length==0){\r\n this._timer = setTimeout(()=>{\r\n this._currentIndex = this._currentIndex+1;\r\n typeof this.onChange=='function' && this.onChange(this.path[this._currentIndex],this._currentIndex);\r\n this._redraw();\r\n this.play();\r\n },1000/this.playFrame);\r\n }\r\n // 需要补点\r\n else{\r\n this._timer = setTimeout(()=>{\r\n this._currentSupplementIndex = 0;\r\n this._supplementPoints = spPoints;\r\n this._redraw();\r\n this.play();\r\n },1000/this.playFrame);\r\n }\r\n } \r\n }\r\n // 暂停播放\r\n pause(onPlayPause){\r\n this._clearTimer();\r\n typeof onPlayPause == \"function\" && onPlayPause(this.path[this._currentIndex],this._currentIndex);\r\n }\r\n // 停止播放(回到初始点位)\r\n stop(){\r\n this._clearTimer();\r\n this._currentIndex = 0;\r\n this._supplementPoints = [];\r\n this._currentSupplementIndex = 0;\r\n this._redraw();\r\n // typeof this.onChange == \"function\" && this.onChange(this.path[0],0);\r\n }\r\n // 销毁(删除所有添加的图层)\r\n destroy(){\r\n this._clearTimer();\r\n this.map.removeGraphic(this._pointId);\r\n this.map.removeGraphic(this._lineId);\r\n this._currentIndex = 0;\r\n this._supplementPoints = [];\r\n this._currentSupplementIndex = 0;\r\n }\r\n // 设置速度\r\n setPlayRate(newPlayRate){\r\n this.playRate = newPlayRate;\r\n //如果当前处于补点状态,重新生成新的补点\r\n if(this._supplementPoints.length>0){\r\n const newSpPoints = this._generateSupplyPoints(this._supplementPoints[this._currentSupplementIndex],this.path[this._currentIndex+1]);\r\n this._supplementPoints = [...this._supplementPoints.slice(0,this._currentSupplementIndex+1),...newSpPoints];\r\n }\r\n }\r\n // 设置当前播放点位的位置\r\n setCurrentIndex(pIndex){\r\n if(pIndex >= this.path.length)return;\r\n \r\n this._currentIndex = pIndex;\r\n this._supplementPoints = [];\r\n this._currentSupplementIndex = 0;\r\n // typeof this.onChange == \"function\" && this.onChange(this.path[pIndex],pIndex);\r\n this._redraw();\r\n if(this._timer){\r\n this._clearTimer();\r\n this.play();\r\n }\r\n }\r\n // 重新设置播放路线\r\n setPath(newPath){\r\n this.path = newPath;\r\n this._currentIndex = 0;\r\n this._supplementPoints = [];\r\n this._currentSupplementIndex = 0;\r\n this._redraw();\r\n if(this._timer){\r\n this._clearTimer();\r\n this.play();\r\n }\r\n }\r\n}"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACqBA,S;EACjB,yBAA+F;IAAA;;IAAA,IAAlFC,GAAkF,QAAlFA,GAAkF;IAAA,IAA9EC,IAA8E,QAA9EA,IAA8E;IAAA,IAAzEC,KAAyE,QAAzEA,KAAyE;IAAA,IAAnEC,QAAmE,QAAnEA,QAAmE;IAAA,IAA1DC,YAA0D,QAA1DA,YAA0D;IAAA,IAA7CC,WAA6C,QAA7CA,WAA6C;IAAA,IAAjCC,cAAiC,QAAjCA,cAAiC;IAAA,IAAlBC,OAAkB,QAAlBA,OAAkB;IAAA,IAAVC,QAAU,QAAVA,QAAU;;IAAA;;IAC3F,KAAKR,GAAL,GAAWA,GAAX,CAD2F,CAC3E;;IAChB,KAAKC,IAAL,GAAYA,IAAI,IAAE,EAAlB,CAF2F,CAErE;;IACtB,KAAKC,KAAL,GAAaA,KAAK,IAAE,EAApB,CAH2F,CAGpE;;IACvB,KAAKO,SAAL,GAAiB,EAAjB,CAJ2F,CAItE;;IACrB,KAAKN,QAAL,GAAgBA,QAAQ,IAAE,CAA1B,CAL2F,CAK9D;;IAC7B,KAAKG,cAAL,GAAsBA,cAAc,IAAE,KAAtC,CAN2F,CAM9C;;IAC7C,KAAKC,OAAL,GAAeA,OAAO,IAAE,KAAxB,CAP2F,CAO5D;;IAC/B,KAAKH,YAAL,GAAoBA,YAAY,IAAE;MAC9BM,MAAM,EAAC;QACHC,KAAK,EAAC,EADH;QAEHC,MAAM,EAAC,EAFJ;QAGHC,cAAc,EAAC,CAAC,EAHb;QAIHC,cAAc,EAAC,CAAC;MAJb;IADuB,CAAlC;IAQA,KAAKT,WAAL,GAAmBA,WAAW,IAAE;MAACU,SAAS,EAAC,CAAX;MAAaC,KAAK,EAAC;IAAnB,CAAhC,CAhB2F,CAgB/B;;IAC5D,KAAKR,QAAL,GAAgBA,QAAhB;IAEA,IAAMS,QAAQ,aAAM,IAAIC,IAAJ,GAAWC,OAAX,EAAN,cAA8BC,QAAQ,CAACC,IAAI,CAACC,MAAL,KAAc,SAAf,CAAtC,CAAd;IACA,KAAKC,QAAL,mBAAyBN,QAAzB;IACA,KAAKO,OAAL,kBAAuBP,QAAvB;IACA,KAAKQ,aAAL,GAAqB,CAArB,CAtB2F,CAsBnE;;IACxB,KAAKC,iBAAL,GAAyB,EAAzB,CAvB2F,CAuB/D;;IAC5B,KAAKC,uBAAL,GAA+B,CAA/B,CAxB2F,CAwB1D;;IACjC,KAAKC,MAAL,GAAc,IAAd,CAzB2F,CAyBvE;;IACpB,KAAK5B,GAAL,CAAS6B,eAAT,CAAyBC,IAAzB,CAA8B,YAAI;MAC9B,KAAI,CAACC,OAAL;IACH,CAFD;EAIH,C,CACD;;;;;WACA,mBAAS;MACL,IAAG,KAAK9B,IAAL,CAAU+B,MAAV,IAAkB,CAArB,EAAwB;QACpB,KAAKhC,GAAL,CAASiC,EAAT,CAAYC,YAAZ,CAAyB,KAAKX,QAA9B,KAA2C,KAAKvB,GAAL,CAASmC,aAAT,CAAuB,KAAKZ,QAA5B,CAA3C;QACA,KAAKvB,GAAL,CAASiC,EAAT,CAAYC,YAAZ,CAAyB,KAAKV,OAA9B,KAA0C,KAAKxB,GAAL,CAASmC,aAAT,CAAuB,KAAKX,OAA5B,CAA1C;QACA;MACH;;MACD,IAAG,KAAKC,aAAL,GAAqB,KAAKxB,IAAL,CAAU+B,MAAlC,EAAyC;QACrC;QACA,IAAII,YAAJ;;QACA,IAAG,KAAKX,aAAL,IAAoB,KAAKxB,IAAL,CAAU+B,MAAV,GAAiB,CAArC,IAA0C,KAAKN,iBAAL,CAAuBM,MAAvB,IAA+B,CAA5E,EAA8E;UAC1EI,YAAY,GAAG,KAAKnC,IAAL,CAAU,KAAKwB,aAAf,CAAf;QACH,CAFD,MAGI;UACAW,YAAY,GAAG,KAAKV,iBAAL,CAAuB,KAAKC,uBAA5B,CAAf;QACH;;QACD,IAAIU,QAAQ,iDACLD,YADK;UAERE,EAAE,EAAE,KAAKf,QAFD;UAGRgB,QAAQ,EAACH,YAAY,CAACG,QAHd;UAIRC,SAAS,EAACJ,YAAY,CAACI;QAJf,GAKL,KAAKpC,YALA;UAMRM,MAAM,kCACE,KAAKN,YAAL,CAAkBM,MAAlB,IAA0B,EAD5B;YAEF+B,YAAY,EAACL,YAAY,CAACM,IAAb,IAAmB;UAF9B;QANE,EAAZ;;QAWA,IAAG,KAAKpC,cAAR,EAAuB;UACnB,IAAMqC,GAAG,GAAG,KAAKlB,aAAL,GAAmB,CAAnB,GAAqB,KAAKxB,IAAL,CAAU+B,MAA/B,GAAsC,KAAKY,aAAL,CAAmB;YACjEC,CAAC,EAAC,KAAK5C,IAAL,CAAU,KAAKwB,aAAf,EAA8Be,SADiC;YAEjEM,CAAC,EAAC,KAAK7C,IAAL,CAAU,KAAKwB,aAAf,EAA8Bc;UAFiC,CAAnB,EAGhD;YACEM,CAAC,EAAC,KAAK5C,IAAL,CAAU,KAAKwB,aAAL,GAAmB,CAA7B,EAAgCe,SADpC;YAEEM,CAAC,EAAC,KAAK7C,IAAL,CAAU,KAAKwB,aAAL,GAAmB,CAA7B,EAAgCc;UAFpC,CAHgD,CAAtC,GAMT,CANH;UAOAF,QAAQ,CAAC3B,MAAT,CAAgBiC,GAAhB,GAAsBA,GAAtB;QACH;;QAED,IAAG,KAAK3C,GAAL,CAASiC,EAAT,CAAYC,YAAZ,CAAyB,KAAKX,QAA9B,CAAH,EAA2C;UACvC,KAAKvB,GAAL,CAAS+C,WAAT,CAAqB,CAACV,QAAD,CAArB;UACA,KAAK9B,OAAL,IAAgB,KAAKP,GAAL,CAASgD,SAAT,CAAmB,CAACX,QAAQ,CAACG,SAAV,EAAoBH,QAAQ,CAACE,QAA7B,CAAnB,CAAhB;QACH,CAHD,MAII;UACA,KAAKvC,GAAL,CAASiD,QAAT,CAAkB,CAACZ,QAAD,CAAlB,EAA6B,SAA7B;QACH,CArCoC,CAsCrC;;;QACA,IAAIa,KAAK,GAAG,EAAZ;;QACA,KAAI,IAAIC,CAAC,GAAC,CAAV,EAAaA,CAAC,IAAE,KAAK1B,aAArB,EAAoC0B,CAAC,EAArC,EAAwC;UACpCD,KAAK,CAACE,IAAN,CAAW,CAAC,KAAKnD,IAAL,CAAUkD,CAAV,EAAaX,SAAd,EAAwB,KAAKvC,IAAL,CAAUkD,CAAV,EAAaZ,QAArC,CAAX;QACH;;QAED,IAAG,KAAKb,iBAAL,CAAuBM,MAAvB,GAA8B,CAAjC,EAAmC;UAC/B,KAAI,IAAImB,EAAC,GAAC,CAAV,EAAYA,EAAC,IAAE,KAAKxB,uBAApB,EAA4CwB,EAAC,EAA7C,EAAgD;YAC5CD,KAAK,CAACE,IAAN,CAAW,CAAC,KAAK1B,iBAAL,CAAuByB,EAAvB,EAA0BX,SAA3B,EAAqC,KAAKd,iBAAL,CAAuByB,EAAvB,EAA0BZ,QAA/D,CAAX;UACH;QACJ;;QACD,IAAGW,KAAK,CAAClB,MAAN,GAAa,CAAhB,EAAkB;UACd,IAAMqB,OAAO,GAAG;YACZf,EAAE,EAAC,KAAKd,OADI;YAEZ0B,KAAK,EAALA,KAFY;YAGZxC,MAAM,EAAC,KAAKL;UAHA,CAAhB;;UAKA,IAAG,KAAKL,GAAL,CAASiC,EAAT,CAAYC,YAAZ,CAAyB,KAAKV,OAA9B,CAAH,EAA0C;YACtC,KAAKxB,GAAL,CAASsD,UAAT,CAAoB,CAACD,OAAD,CAApB;UACH,CAFD,MAGI;YACA,KAAKrD,GAAL,CAASuD,OAAT,CAAiB,CAACF,OAAD,CAAjB,EAA2B,SAA3B;UACH;QACJ,CAZD,MAaI;UACA,IAAG,KAAKrD,GAAL,CAASiC,EAAT,CAAYC,YAAZ,CAAyB,KAAKV,OAA9B,CAAH,EAA0C;YACtC,KAAKxB,GAAL,CAASmC,aAAT,CAAuB,KAAKX,OAA5B;UACH;QACJ;MACJ;IACJ;;;WACD,uBAAa;MACT,IAAG,KAAKI,MAAR,EAAe;QACX4B,YAAY,CAAC,KAAK5B,MAAN,CAAZ;QACA,KAAKA,MAAL,GAAc,IAAd;MACH;IACJ,C,CACD;;;;WACA,uBAAc6B,KAAd,EAAoBC,GAApB,EAAwB;MACpB,IAAMC,MAAM,GAAGD,GAAG,CAACb,CAAJ,GAAQY,KAAK,CAACZ,CAA7B;MAAA,IACIe,MAAM,GAAGF,GAAG,CAACZ,CAAJ,GAAQW,KAAK,CAACX,CAD3B,CADoB,CAGpB;;MACA,IAAMe,EAAE,GAAG,MAAIxC,IAAI,CAACyC,IAAL,CAAUF,MAAM,GAACD,MAAjB,CAAJ,IAA8B,IAAEtC,IAAI,CAAC0C,EAArC,CAAX,CAJoB,CAKpB;;MACA,IAAGJ,MAAM,IAAE,CAAX,EAAa;QACT,IAAGC,MAAM,GAAC,CAAV,EAAY;UACR,OAAO,CAAC,EAAR;QACH,CAFD,MAGK,IAAGA,MAAM,GAAC,CAAV,EAAY;UACb,OAAO,EAAP;QACH,CAFI,MAGD;UACA,OAAO,CAAP;QACH;MACJ,CAVD,CAWA;MAXA,KAYK,IAAGD,MAAM,GAAC,CAAV,EAAY;QACb,OAAO,CAACE,EAAR;MACH,CAFI,CAGL;MAHK,KAID;QACA,OAAO,MAAMA,EAAb;MACH;IACJ,C,CACD;;;;WACA,+BAAsBG,EAAtB,EAAyBC,EAAzB,EAA4B;MACxB,IAAiBC,UAAjB,GAAoDF,EAApD,CAAOxB,SAAP;MAAA,IAAsC2B,UAAtC,GAAoDH,EAApD,CAA6BzB,QAA7B;MACA,IAAiB6B,OAAjB,GAA8CH,EAA9C,CAAOzB,SAAP;MAAA,IAAmC6B,OAAnC,GAA8CJ,EAA9C,CAA0B1B,QAA1B;MACA,IAAM+B,OAAO,GAAG,KAAKtE,GAAL,CAASuE,iBAAT,CAA2B,CACvC,CAACL,UAAD,EAAYC,UAAZ,CADuC,EAEvC,CAACC,OAAD,EAASC,OAAT,CAFuC,CAA3B,KAGZ,KAAKnE,KAAL,GAAW,KAAKC,QAHJ,CAAhB,CAHwB,CAOxB;;MACA,IAAGmE,OAAO,IAAE,IAAE,KAAK7D,SAAnB,EAA6B;QACzB,OAAO,EAAP;MACH,CAFD,CAGA;MAHA,KAII;QACA,IAAM+D,aAAa,GAAGnD,IAAI,CAACoD,IAAL,CAAUH,OAAO,IAAE,IAAE,KAAK7D,SAAT,CAAjB,IAAsC,CAA5D;QACA,IAAMiE,WAAW,GAAG,CAACN,OAAO,GAAGF,UAAX,KAAwBM,aAAa,GAAC,CAAtC,CAApB;QACA,IAAMG,WAAW,GAAG,CAACN,OAAO,GAAGF,UAAX,KAAwBK,aAAa,GAAC,CAAtC,CAApB;QACA,IAAII,gBAAgB,GAAG,EAAvB;;QACA,KAAI,IAAIzB,CAAC,GAAC,CAAV,EAAYA,CAAC,IAAEqB,aAAf,EAA6BrB,CAAC,EAA9B,EAAiC;UAC7ByB,gBAAgB,CAACxB,IAAjB,iCACO,KAAKnD,IAAL,CAAU,KAAKwB,aAAf,CADP;YAEIe,SAAS,EAAC0B,UAAU,GAACQ,WAAW,GAACvB,CAFrC;YAGIZ,QAAQ,EAAC4B,UAAU,GAACQ,WAAW,GAACxB;UAHpC;QAKH;;QACD,OAAOyB,gBAAP;MACH;IACJ,C,CACD;;;;WACA,gBAAM;MAAA;;MACF,KAAKC,WAAL;;MACA,IAAG,KAAK5E,IAAL,CAAU+B,MAAV,IAAkB,CAAlB,IAAuB,KAAKP,aAAL,IAAoB,KAAKxB,IAAL,CAAU+B,MAAV,GAAiB,CAA/D,EAAiE;QAC7D;MACH;;MAAA,CAJC,CAKF;;MACA,IAAG,KAAKN,iBAAL,CAAuBM,MAAvB,GAA8B,CAAjC,EAAmC;QAC/B,KAAKJ,MAAL,GAAckD,UAAU,CAAC,YAAI;UACzB,IAAG,MAAI,CAACnD,uBAAL,GAA6B,MAAI,CAACD,iBAAL,CAAuBM,MAAvB,GAA8B,CAA9D,EAAgE;YAC5D,MAAI,CAACL,uBAAL,GAA+B,MAAI,CAACA,uBAAL,GAA6B,CAA5D;UACH,CAFD,MAGI;YACA,MAAI,CAACA,uBAAL,GAA+B,CAA/B;YACA,MAAI,CAACD,iBAAL,GAAyB,EAAzB;YACA,MAAI,CAACD,aAAL,GAAqB,MAAI,CAACA,aAAL,GAAmB,CAAxC;YACA,OAAO,MAAI,CAACjB,QAAZ,IAAsB,UAAtB,IAAoC,MAAI,CAACA,QAAL,CAAc,MAAI,CAACP,IAAL,CAAU,MAAI,CAACwB,aAAf,CAAd,EAA4C,MAAI,CAACA,aAAjD,CAApC;UACH;;UACD,MAAI,CAACM,OAAL;;UACA,MAAI,CAACgD,IAAL;QACH,CAZuB,EAYtB,OAAK,KAAKtE,SAZY,CAAxB;MAaH,CAdD,CAeA;MAfA,KAgBI;QACA,IAAMuE,QAAQ,GAAG,KAAKC,qBAAL,CAA2B,KAAKhF,IAAL,CAAU,KAAKwB,aAAf,CAA3B,EAAyD,KAAKxB,IAAL,CAAU,KAAKwB,aAAL,GAAmB,CAA7B,CAAzD,CAAjB,CADA,CAEA;;;QACA,IAAGuD,QAAQ,CAAChD,MAAT,IAAiB,CAApB,EAAsB;UAClB,KAAKJ,MAAL,GAAckD,UAAU,CAAC,YAAI;YACzB,MAAI,CAACrD,aAAL,GAAqB,MAAI,CAACA,aAAL,GAAmB,CAAxC;YACA,OAAO,MAAI,CAACjB,QAAZ,IAAsB,UAAtB,IAAoC,MAAI,CAACA,QAAL,CAAc,MAAI,CAACP,IAAL,CAAU,MAAI,CAACwB,aAAf,CAAd,EAA4C,MAAI,CAACA,aAAjD,CAApC;;YACA,MAAI,CAACM,OAAL;;YACA,MAAI,CAACgD,IAAL;UACH,CALuB,EAKtB,OAAK,KAAKtE,SALY,CAAxB;QAMH,CAPD,CAQA;QARA,KASI;UACA,KAAKmB,MAAL,GAAckD,UAAU,CAAC,YAAI;YACzB,MAAI,CAACnD,uBAAL,GAA+B,CAA/B;YACA,MAAI,CAACD,iBAAL,GAAyBsD,QAAzB;;YACA,MAAI,CAACjD,OAAL;;YACA,MAAI,CAACgD,IAAL;UACH,CALuB,EAKtB,OAAK,KAAKtE,SALY,CAAxB;QAMH;MACJ;IACJ,C,CACD;;;;WACA,eAAMyE,WAAN,EAAkB;MACd,KAAKL,WAAL;;MACA,OAAOK,WAAP,IAAsB,UAAtB,IAAoCA,WAAW,CAAC,KAAKjF,IAAL,CAAU,KAAKwB,aAAf,CAAD,EAA+B,KAAKA,aAApC,CAA/C;IACH,C,CACD;;;;WACA,gBAAM;MACF,KAAKoD,WAAL;;MACA,KAAKpD,aAAL,GAAqB,CAArB;MACA,KAAKC,iBAAL,GAAyB,EAAzB;MACA,KAAKC,uBAAL,GAA+B,CAA/B;;MACA,KAAKI,OAAL,GALE,CAMF;;IACH,C,CACD;;;;WACA,mBAAS;MACL,KAAK8C,WAAL;;MACA,KAAK7E,GAAL,CAASmC,aAAT,CAAuB,KAAKZ,QAA5B;MACA,KAAKvB,GAAL,CAASmC,aAAT,CAAuB,KAAKX,OAA5B;MACA,KAAKC,aAAL,GAAqB,CAArB;MACA,KAAKC,iBAAL,GAAyB,EAAzB;MACA,KAAKC,uBAAL,GAA+B,CAA/B;IACH,C,CACD;;;;WACA,qBAAYwD,WAAZ,EAAwB;MACpB,KAAKhF,QAAL,GAAgBgF,WAAhB,CADoB,CAEpB;;MACA,IAAG,KAAKzD,iBAAL,CAAuBM,MAAvB,GAA8B,CAAjC,EAAmC;QAC/B,IAAMoD,WAAW,GAAG,KAAKH,qBAAL,CAA2B,KAAKvD,iBAAL,CAAuB,KAAKC,uBAA5B,CAA3B,EAAgF,KAAK1B,IAAL,CAAU,KAAKwB,aAAL,GAAmB,CAA7B,CAAhF,CAApB;;QACA,KAAKC,iBAAL,gCAA6B,KAAKA,iBAAL,CAAuB2D,KAAvB,CAA6B,CAA7B,EAA+B,KAAK1D,uBAAL,GAA6B,CAA5D,CAA7B,sBAA+FyD,WAA/F;MACH;IACJ,C,CACD;;;;WACA,yBAAgBE,MAAhB,EAAuB;MACnB,IAAGA,MAAM,IAAI,KAAKrF,IAAL,CAAU+B,MAAvB,EAA8B;MAE9B,KAAKP,aAAL,GAAqB6D,MAArB;MACA,KAAK5D,iBAAL,GAAyB,EAAzB;MACA,KAAKC,uBAAL,GAA+B,CAA/B,CALmB,CAMnB;;MACA,KAAKI,OAAL;;MACA,IAAG,KAAKH,MAAR,EAAe;QACX,KAAKiD,WAAL;;QACA,KAAKE,IAAL;MACH;IACJ,C,CACD;;;;WACA,iBAAQQ,OAAR,EAAgB;MACZ,KAAKtF,IAAL,GAAYsF,OAAZ;MACA,KAAK9D,aAAL,GAAqB,CAArB;MACA,KAAKC,iBAAL,GAAyB,EAAzB;MACA,KAAKC,uBAAL,GAA+B,CAA/B;;MACA,KAAKI,OAAL;;MACA,IAAG,KAAKH,MAAR,EAAe;QACX,KAAKiD,WAAL;;QACA,KAAKE,IAAL;MACH;IACJ"}
|