@vtx/map 1.1.43 → 1.1.45

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 (65) hide show
  1. package/lib/VtxMap/AMap/AMap.js +1012 -640
  2. package/lib/VtxMap/AMap/AMap.js.map +1 -1
  3. package/lib/VtxMap/BMap/Map.js +1197 -749
  4. package/lib/VtxMap/BMap/Map.js.map +1 -1
  5. package/lib/VtxMap/GMap/Map.js +1564 -1046
  6. package/lib/VtxMap/GMap/Map.js.map +1 -1
  7. package/lib/VtxMap/Map.js +42 -8
  8. package/lib/VtxMap/Map.js.map +1 -1
  9. package/lib/VtxMap/MapToolFunction.js +63 -26
  10. package/lib/VtxMap/MapToolFunction.js.map +1 -1
  11. package/lib/VtxMap/OMap/Map.js +1361 -867
  12. package/lib/VtxMap/OMap/Map.js.map +1 -1
  13. package/lib/VtxMap/OlMap/Map.js +1289 -699
  14. package/lib/VtxMap/OlMap/Map.js.map +1 -1
  15. package/lib/VtxMap/TMap/TMap.js +1058 -651
  16. package/lib/VtxMap/TMap/TMap.js.map +1 -1
  17. package/lib/VtxMap/index.js +8 -1
  18. package/lib/VtxMap/index.js.map +1 -1
  19. package/lib/VtxMap/mapPlayer.js +123 -67
  20. package/lib/VtxMap/mapPlayer.js.map +1 -1
  21. package/lib/VtxMap/optimizingPointMap.js +77 -21
  22. package/lib/VtxMap/optimizingPointMap.js.map +1 -1
  23. package/lib/VtxMap/style/css.js +6 -0
  24. package/lib/VtxMap/style/css.js.map +1 -1
  25. package/lib/VtxMap/style/index.js +6 -0
  26. package/lib/VtxMap/style/index.js.map +1 -1
  27. package/lib/VtxMap/zoomMap.js +41 -12
  28. package/lib/VtxMap/zoomMap.js.map +1 -1
  29. package/lib/VtxModal/VtxModal.js +63 -19
  30. package/lib/VtxModal/VtxModal.js.map +1 -1
  31. package/lib/VtxModal/draggableModal.js +48 -12
  32. package/lib/VtxModal/draggableModal.js.map +1 -1
  33. package/lib/VtxModal/index.js +6 -1
  34. package/lib/VtxModal/index.js.map +1 -1
  35. package/lib/VtxModal/style/css.js +6 -0
  36. package/lib/VtxModal/style/css.js.map +1 -1
  37. package/lib/VtxModal/style/index.js +6 -0
  38. package/lib/VtxModal/style/index.js.map +1 -1
  39. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js +238 -105
  40. package/lib/VtxSearchCheckMap/VtxSearchCheckMap.js.map +1 -1
  41. package/lib/VtxSearchCheckMap/index.js +2 -0
  42. package/lib/VtxSearchCheckMap/index.js.map +1 -1
  43. package/lib/VtxSearchCheckMap/mapping.js +2 -1
  44. package/lib/VtxSearchCheckMap/mapping.js.map +1 -1
  45. package/lib/VtxSearchCheckMap/style/css.js +19 -0
  46. package/lib/VtxSearchCheckMap/style/css.js.map +1 -1
  47. package/lib/VtxSearchCheckMap/style/index.js +19 -0
  48. package/lib/VtxSearchCheckMap/style/index.js.map +1 -1
  49. package/lib/VtxSearchMap/VtxSearchMap.js +289 -120
  50. package/lib/VtxSearchMap/VtxSearchMap.js.map +1 -1
  51. package/lib/VtxSearchMap/index.js +2 -0
  52. package/lib/VtxSearchMap/index.js.map +1 -1
  53. package/lib/VtxSearchMap/mapping.js +2 -1
  54. package/lib/VtxSearchMap/mapping.js.map +1 -1
  55. package/lib/VtxSearchMap/style/css.js +19 -0
  56. package/lib/VtxSearchMap/style/css.js.map +1 -1
  57. package/lib/VtxSearchMap/style/index.js +19 -0
  58. package/lib/VtxSearchMap/style/index.js.map +1 -1
  59. package/lib/default.js +13 -4
  60. package/lib/default.js.map +1 -1
  61. package/lib/index.js +3 -0
  62. package/lib/index.js.map +1 -1
  63. package/lib/utils/util.js +94 -0
  64. package/lib/utils/util.js.map +1 -0
  65. package/package.json +1 -1
@@ -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 = exports["default"] = _Map["default"];
45
+ var _default = _Map["default"];
46
+ exports["default"] = _default;
40
47
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_Map","_interopRequireDefault","require","_optimizingPointMap","_zoomMap","_mapPlayer","obj","__esModule","VtxMap","VtxOptMap","VtxZoomMap","MapPlayer","_default","exports"],"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,IAAAA,IAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,mBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,QAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,UAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAiD,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,gBAAAA,GAAA;AAEjDE,eAAM,CAACC,SAAS,GAAGA,8BAAS;AAC5BD,eAAM,CAACE,UAAU,GAAGA,mBAAU;AAC9BF,eAAM,CAACG,SAAS,GAAGA,qBAAS;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEdL,eAAM"}
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"}
@@ -4,21 +4,31 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports["default"] = void 0;
7
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
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
- 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; }
14
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
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
- 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, _toPropertyKey(descriptor.key), descriptor); } }
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
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
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 = exports["default"] = /*#__PURE__*/function () {
49
+ var MapPlayer = /*#__PURE__*/function () {
40
50
  function MapPlayer(_ref) {
41
51
  var _this = this;
52
+
42
53
  var map = _ref.map,
43
- path = _ref.path,
44
- speed = _ref.speed,
45
- playRate = _ref.playRate,
46
- pointSetting = _ref.pointSetting,
47
- lineSetting = _ref.lineSetting,
48
- enableRotation = _ref.enableRotation,
49
- mapMove = _ref.mapMove,
50
- onChange = _ref.onChange;
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
- diff_y = end.y - start.y;
167
- // 1,4象限夹脚计算
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
- currentLat = p1.latitude;
227
+ currentLat = p1.latitude;
194
228
  var nextLng = p2.longitude,
195
- nextLat = p2.latitude;
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
- this._redraw();
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
- // typeof this.onChange == "function" && this.onChange(this.path[pIndex],pIndex);
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":";;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAhBA,IAiBqBA,SAAS,GAAAC,OAAA;EAC1B,SAAAD,UAAAE,IAAA,EAA+F;IAAA,IAAAC,KAAA;IAAA,IAAlFC,GAAG,GAAAF,IAAA,CAAHE,GAAG;MAACC,IAAI,GAAAH,IAAA,CAAJG,IAAI;MAACC,KAAK,GAAAJ,IAAA,CAALI,KAAK;MAACC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;MAACC,YAAY,GAAAN,IAAA,CAAZM,YAAY;MAACC,WAAW,GAAAP,IAAA,CAAXO,WAAW;MAACC,cAAc,GAAAR,IAAA,CAAdQ,cAAc;MAACC,OAAO,GAAAT,IAAA,CAAPS,OAAO;MAACC,QAAQ,GAAAV,IAAA,CAARU,QAAQ;IAAAC,eAAA,OAAAb,SAAA;IACzF,IAAI,CAACI,GAAG,GAAGA,GAAG,CAAC,CAAC;IAChB,IAAI,CAACC,IAAI,GAAGA,IAAI,IAAE,EAAE,CAAC,CAAC;IACtB,IAAI,CAACC,KAAK,GAAGA,KAAK,IAAE,EAAE,CAAC;IACvB,IAAI,CAACQ,SAAS,GAAG,EAAE,CAAC,CAAC;IACrB,IAAI,CAACP,QAAQ,GAAGA,QAAQ,IAAE,CAAC,CAAC,CAAC;IAC7B,IAAI,CAACG,cAAc,GAAGA,cAAc,IAAE,KAAK,CAAC,CAAC;IAC7C,IAAI,CAACC,OAAO,GAAGA,OAAO,IAAE,KAAK,CAAC,CAAC;IAC/B,IAAI,CAACH,YAAY,GAAGA,YAAY,IAAE;MAC9BO,MAAM,EAAC;QACHC,KAAK,EAAC,EAAE;QACRC,MAAM,EAAC,EAAE;QACTC,cAAc,EAAC,CAAC,EAAE;QAClBC,cAAc,EAAC,CAAC;MACpB;IACJ,CAAC;IACD,IAAI,CAACV,WAAW,GAAGA,WAAW,IAAE;MAACW,SAAS,EAAC,CAAC;MAACC,KAAK,EAAC;IAAM,CAAC,CAAC,CAAC;IAC5D,IAAI,CAACT,QAAQ,GAAGA,QAAQ;IAExB,IAAMU,QAAQ,MAAAC,MAAA,CAAM,IAAIC,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,CAAC,OAAAF,MAAA,CAAIG,QAAQ,CAACC,IAAI,CAACC,MAAM,CAAC,CAAC,GAAC,SAAS,CAAC,CAAE;IAC/E,IAAI,CAACC,QAAQ,YAAAN,MAAA,CAAYD,QAAQ,CAAE;IACnC,IAAI,CAACQ,OAAO,WAAAP,MAAA,CAAWD,QAAQ,CAAE;IACjC,IAAI,CAACS,aAAa,GAAG,CAAC,CAAC,CAAC;IACxB,IAAI,CAACC,iBAAiB,GAAG,EAAE,CAAC;IAC5B,IAAI,CAACC,uBAAuB,GAAG,CAAC,CAAC;IACjC,IAAI,CAACC,MAAM,GAAG,IAAI,CAAC,CAAC;IACpB,IAAI,CAAC9B,GAAG,CAAC+B,eAAe,CAACC,IAAI,CAAC,YAAI;MAC9BjC,KAAI,CAACkC,OAAO,CAAC,CAAC;IAClB,CAAC,CAAC;EAEN;EACA;EAAAC,YAAA,CAAAtC,SAAA;IAAAuC,GAAA;IAAAC,KAAA,EACA,SAAAH,QAAA,EAAS;MACL,IAAG,IAAI,CAAChC,IAAI,CAACoC,MAAM,IAAE,CAAC,EAAE;QACpB,IAAI,CAACrC,GAAG,CAACsC,EAAE,CAACC,YAAY,CAAC,IAAI,CAACd,QAAQ,CAAC,IAAI,IAAI,CAACzB,GAAG,CAACwC,aAAa,CAAC,IAAI,CAACf,QAAQ,CAAC;QAChF,IAAI,CAACzB,GAAG,CAACsC,EAAE,CAACC,YAAY,CAAC,IAAI,CAACb,OAAO,CAAC,IAAI,IAAI,CAAC1B,GAAG,CAACwC,aAAa,CAAC,IAAI,CAACd,OAAO,CAAC;QAC9E;MACJ;MACA,IAAG,IAAI,CAACC,aAAa,GAAG,IAAI,CAAC1B,IAAI,CAACoC,MAAM,EAAC;QACrC;QACA,IAAII,YAAY;QAChB,IAAG,IAAI,CAACd,aAAa,IAAE,IAAI,CAAC1B,IAAI,CAACoC,MAAM,GAAC,CAAC,IAAI,IAAI,CAACT,iBAAiB,CAACS,MAAM,IAAE,CAAC,EAAC;UAC1EI,YAAY,GAAG,IAAI,CAACxC,IAAI,CAAC,IAAI,CAAC0B,aAAa,CAAC;QAChD,CAAC,MACG;UACAc,YAAY,GAAG,IAAI,CAACb,iBAAiB,CAAC,IAAI,CAACC,uBAAuB,CAAC;QACvE;QACA,IAAIa,QAAQ,GAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACLF,YAAY;UACfG,EAAE,EAAE,IAAI,CAACnB,QAAQ;UACjBoB,QAAQ,EAACJ,YAAY,CAACI,QAAQ;UAC9BC,SAAS,EAACL,YAAY,CAACK;QAAS,GAC7B,IAAI,CAAC1C,YAAY;UACpBO,MAAM,EAAAgC,aAAA,CAAAA,aAAA,KACE,IAAI,CAACvC,YAAY,CAACO,MAAM,IAAE,CAAC,CAAC;YAChCoC,YAAY,EAACN,YAAY,CAACO,IAAI,IAAE;UAAE;QACrC,EACJ;QACD,IAAG,IAAI,CAAC1C,cAAc,EAAC;UACnB,IAAM2C,GAAG,GAAG,IAAI,CAACtB,aAAa,GAAC,CAAC,GAAC,IAAI,CAAC1B,IAAI,CAACoC,MAAM,GAAC,IAAI,CAACa,aAAa,CAAC;YACjEC,CAAC,EAAC,IAAI,CAAClD,IAAI,CAAC,IAAI,CAAC0B,aAAa,CAAC,CAACmB,SAAS;YACzCM,CAAC,EAAC,IAAI,CAACnD,IAAI,CAAC,IAAI,CAAC0B,aAAa,CAAC,CAACkB;UACpC,CAAC,EAAC;YACEM,CAAC,EAAC,IAAI,CAAClD,IAAI,CAAC,IAAI,CAAC0B,aAAa,GAAC,CAAC,CAAC,CAACmB,SAAS;YAC3CM,CAAC,EAAC,IAAI,CAACnD,IAAI,CAAC,IAAI,CAAC0B,aAAa,GAAC,CAAC,CAAC,CAACkB;UACtC,CAAC,CAAC,GAAC,CAAC;UACJH,QAAQ,CAAC/B,MAAM,CAACsC,GAAG,GAAGA,GAAG;QAC7B;QAEA,IAAG,IAAI,CAACjD,GAAG,CAACsC,EAAE,CAACC,YAAY,CAAC,IAAI,CAACd,QAAQ,CAAC,EAAC;UACvC,IAAI,CAACzB,GAAG,CAACqD,WAAW,CAAC,CAACX,QAAQ,CAAC,CAAC;UAChC,IAAI,CAACnC,OAAO,IAAI,IAAI,CAACP,GAAG,CAACsD,SAAS,CAAC,CAACZ,QAAQ,CAACI,SAAS,EAACJ,QAAQ,CAACG,QAAQ,CAAC,CAAC;QAC9E,CAAC,MACG;UACA,IAAI,CAAC7C,GAAG,CAACuD,QAAQ,CAAC,CAACb,QAAQ,CAAC,EAAC,SAAS,CAAC;QAC3C;QACA;QACA,IAAIc,KAAK,GAAG,EAAE;QACd,KAAI,IAAIC,CAAC,GAAC,CAAC,EAAEA,CAAC,IAAE,IAAI,CAAC9B,aAAa,EAAE8B,CAAC,EAAE,EAAC;UACpCD,KAAK,CAACE,IAAI,CAAC,CAAC,IAAI,CAACzD,IAAI,CAACwD,CAAC,CAAC,CAACX,SAAS,EAAC,IAAI,CAAC7C,IAAI,CAACwD,CAAC,CAAC,CAACZ,QAAQ,CAAC,CAAC;QAC9D;QAEA,IAAG,IAAI,CAACjB,iBAAiB,CAACS,MAAM,GAAC,CAAC,EAAC;UAC/B,KAAI,IAAIoB,EAAC,GAAC,CAAC,EAACA,EAAC,IAAE,IAAI,CAAC5B,uBAAuB,EAAC4B,EAAC,EAAE,EAAC;YAC5CD,KAAK,CAACE,IAAI,CAAC,CAAC,IAAI,CAAC9B,iBAAiB,CAAC6B,EAAC,CAAC,CAACX,SAAS,EAAC,IAAI,CAAClB,iBAAiB,CAAC6B,EAAC,CAAC,CAACZ,QAAQ,CAAC,CAAC;UACxF;QACJ;QACA,IAAGW,KAAK,CAACnB,MAAM,GAAC,CAAC,EAAC;UACd,IAAMsB,OAAO,GAAG;YACZf,EAAE,EAAC,IAAI,CAAClB,OAAO;YACf8B,KAAK,EAALA,KAAK;YACL7C,MAAM,EAAC,IAAI,CAACN;UAChB,CAAC;UACD,IAAG,IAAI,CAACL,GAAG,CAACsC,EAAE,CAACC,YAAY,CAAC,IAAI,CAACb,OAAO,CAAC,EAAC;YACtC,IAAI,CAAC1B,GAAG,CAAC4D,UAAU,CAAC,CAACD,OAAO,CAAC,CAAC;UAClC,CAAC,MACG;YACA,IAAI,CAAC3D,GAAG,CAAC6D,OAAO,CAAC,CAACF,OAAO,CAAC,EAAC,SAAS,CAAC;UACzC;QACJ,CAAC,MACG;UACA,IAAG,IAAI,CAAC3D,GAAG,CAACsC,EAAE,CAACC,YAAY,CAAC,IAAI,CAACb,OAAO,CAAC,EAAC;YACtC,IAAI,CAAC1B,GAAG,CAACwC,aAAa,CAAC,IAAI,CAACd,OAAO,CAAC;UACxC;QACJ;MACJ;IACJ;EAAC;IAAAS,GAAA;IAAAC,KAAA,EACD,SAAA0B,YAAA,EAAa;MACT,IAAG,IAAI,CAAChC,MAAM,EAAC;QACXiC,YAAY,CAAC,IAAI,CAACjC,MAAM,CAAC;QACzB,IAAI,CAACA,MAAM,GAAG,IAAI;MACtB;IACJ;IACA;EAAA;IAAAK,GAAA;IAAAC,KAAA,EACA,SAAAc,cAAcc,KAAK,EAACC,GAAG,EAAC;MACpB,IAAMC,MAAM,GAAGD,GAAG,CAACd,CAAC,GAAGa,KAAK,CAACb,CAAC;QAC1BgB,MAAM,GAAGF,GAAG,CAACb,CAAC,GAAGY,KAAK,CAACZ,CAAC;MAC5B;MACA,IAAMgB,EAAE,GAAG,GAAG,GAAC7C,IAAI,CAAC8C,IAAI,CAACF,MAAM,GAACD,MAAM,CAAC,IAAE,CAAC,GAAC3C,IAAI,CAAC+C,EAAE,CAAC;MACnD;MACA,IAAGJ,MAAM,IAAE,CAAC,EAAC;QACT,IAAGC,MAAM,GAAC,CAAC,EAAC;UACR,OAAO,CAAC,EAAE;QACd,CAAC,MACI,IAAGA,MAAM,GAAC,CAAC,EAAC;UACb,OAAO,EAAE;QACb,CAAC,MACG;UACA,OAAO,CAAC;QACZ;MACJ;MACA;MAAA,KACK,IAAGD,MAAM,GAAC,CAAC,EAAC;QACb,OAAO,CAACE,EAAE;MACd;MACA;MAAA,KACI;QACA,OAAO,GAAG,GAAGA,EAAE;MACnB;IACJ;IACA;EAAA;IAAAjC,GAAA;IAAAC,KAAA,EACA,SAAAmC,sBAAsBC,EAAE,EAACC,EAAE,EAAC;MACxB,IAAiBC,UAAU,GAAyBF,EAAE,CAA/C1B,SAAS;QAAsB6B,UAAU,GAAIH,EAAE,CAAzB3B,QAAQ;MACrC,IAAiB+B,OAAO,GAAsBH,EAAE,CAAzC3B,SAAS;QAAmB+B,OAAO,GAAIJ,EAAE,CAAtB5B,QAAQ;MAClC,IAAMiC,OAAO,GAAG,IAAI,CAAC9E,GAAG,CAAC+E,iBAAiB,CAAC,CACvC,CAACL,UAAU,EAACC,UAAU,CAAC,EACvB,CAACC,OAAO,EAACC,OAAO,CAAC,CACpB,CAAC,IAAE,IAAI,CAAC3E,KAAK,GAAC,IAAI,CAACC,QAAQ,CAAC;MAC7B;MACA,IAAG2E,OAAO,IAAE,CAAC,GAAC,IAAI,CAACpE,SAAS,EAAC;QACzB,OAAO,EAAE;MACb;MACA;MAAA,KACI;QACA,IAAMsE,aAAa,GAAGzD,IAAI,CAAC0D,IAAI,CAACH,OAAO,IAAE,CAAC,GAAC,IAAI,CAACpE,SAAS,CAAC,CAAC,GAAC,CAAC;QAC7D,IAAMwE,WAAW,GAAG,CAACN,OAAO,GAAGF,UAAU,KAAGM,aAAa,GAAC,CAAC,CAAC;QAC5D,IAAMG,WAAW,GAAG,CAACN,OAAO,GAAGF,UAAU,KAAGK,aAAa,GAAC,CAAC,CAAC;QAC5D,IAAII,gBAAgB,GAAG,EAAE;QACzB,KAAI,IAAI3B,CAAC,GAAC,CAAC,EAACA,CAAC,IAAEuB,aAAa,EAACvB,CAAC,EAAE,EAAC;UAC7B2B,gBAAgB,CAAC1B,IAAI,CAAAf,aAAA,CAAAA,aAAA,KACd,IAAI,CAAC1C,IAAI,CAAC,IAAI,CAAC0B,aAAa,CAAC;YAChCmB,SAAS,EAAC4B,UAAU,GAACQ,WAAW,GAACzB,CAAC;YAClCZ,QAAQ,EAAC8B,UAAU,GAACQ,WAAW,GAAC1B;UAAC,EACpC,CAAC;QACN;QACA,OAAO2B,gBAAgB;MAC3B;IACJ;IACA;EAAA;IAAAjD,GAAA;IAAAC,KAAA,EACA,SAAAiD,KAAA,EAAM;MAAA,IAAAC,MAAA;MACF,IAAI,CAACxB,WAAW,CAAC,CAAC;MAClB,IAAG,IAAI,CAAC7D,IAAI,CAACoC,MAAM,IAAE,CAAC,IAAI,IAAI,CAACV,aAAa,IAAE,IAAI,CAAC1B,IAAI,CAACoC,MAAM,GAAC,CAAC,EAAC;QAC7D;MACJ;MAAC;MACD;MACA,IAAG,IAAI,CAACT,iBAAiB,CAACS,MAAM,GAAC,CAAC,EAAC;QAC/B,IAAI,CAACP,MAAM,GAAGyD,UAAU,CAAC,YAAI;UACzB,IAAGD,MAAI,CAACzD,uBAAuB,GAACyD,MAAI,CAAC1D,iBAAiB,CAACS,MAAM,GAAC,CAAC,EAAC;YAC5DiD,MAAI,CAACzD,uBAAuB,GAAGyD,MAAI,CAACzD,uBAAuB,GAAC,CAAC;UACjE,CAAC,MACG;YACAyD,MAAI,CAACzD,uBAAuB,GAAG,CAAC;YAChCyD,MAAI,CAAC1D,iBAAiB,GAAG,EAAE;YAC3B0D,MAAI,CAAC3D,aAAa,GAAG2D,MAAI,CAAC3D,aAAa,GAAC,CAAC;YACzC,OAAO2D,MAAI,CAAC9E,QAAQ,IAAE,UAAU,IAAI8E,MAAI,CAAC9E,QAAQ,CAAC8E,MAAI,CAACrF,IAAI,CAACqF,MAAI,CAAC3D,aAAa,CAAC,EAAC2D,MAAI,CAAC3D,aAAa,CAAC;UACvG;UACA2D,MAAI,CAACrD,OAAO,CAAC,CAAC;UACdqD,MAAI,CAACD,IAAI,CAAC,CAAC;QACf,CAAC,EAAC,IAAI,GAAC,IAAI,CAAC3E,SAAS,CAAC;MAC1B;MACA;MAAA,KACI;QACA,IAAM8E,QAAQ,GAAG,IAAI,CAACjB,qBAAqB,CAAC,IAAI,CAACtE,IAAI,CAAC,IAAI,CAAC0B,aAAa,CAAC,EAAC,IAAI,CAAC1B,IAAI,CAAC,IAAI,CAAC0B,aAAa,GAAC,CAAC,CAAC,CAAC;QAC1G;QACA,IAAG6D,QAAQ,CAACnD,MAAM,IAAE,CAAC,EAAC;UAClB,IAAI,CAACP,MAAM,GAAGyD,UAAU,CAAC,YAAI;YACzBD,MAAI,CAAC3D,aAAa,GAAG2D,MAAI,CAAC3D,aAAa,GAAC,CAAC;YACzC,OAAO2D,MAAI,CAAC9E,QAAQ,IAAE,UAAU,IAAI8E,MAAI,CAAC9E,QAAQ,CAAC8E,MAAI,CAACrF,IAAI,CAACqF,MAAI,CAAC3D,aAAa,CAAC,EAAC2D,MAAI,CAAC3D,aAAa,CAAC;YACnG2D,MAAI,CAACrD,OAAO,CAAC,CAAC;YACdqD,MAAI,CAACD,IAAI,CAAC,CAAC;UACf,CAAC,EAAC,IAAI,GAAC,IAAI,CAAC3E,SAAS,CAAC;QAC1B;QACA;QAAA,KACI;UACA,IAAI,CAACoB,MAAM,GAAGyD,UAAU,CAAC,YAAI;YACzBD,MAAI,CAACzD,uBAAuB,GAAG,CAAC;YAChCyD,MAAI,CAAC1D,iBAAiB,GAAG4D,QAAQ;YACjCF,MAAI,CAACrD,OAAO,CAAC,CAAC;YACdqD,MAAI,CAACD,IAAI,CAAC,CAAC;UACf,CAAC,EAAC,IAAI,GAAC,IAAI,CAAC3E,SAAS,CAAC;QAC1B;MACJ;IACJ;IACA;EAAA;IAAAyB,GAAA;IAAAC,KAAA,EACA,SAAAqD,MAAMC,WAAW,EAAC;MACd,IAAI,CAAC5B,WAAW,CAAC,CAAC;MAClB,OAAO4B,WAAW,IAAI,UAAU,IAAIA,WAAW,CAAC,IAAI,CAACzF,IAAI,CAAC,IAAI,CAAC0B,aAAa,CAAC,EAAC,IAAI,CAACA,aAAa,CAAC;IACrG;IACA;EAAA;IAAAQ,GAAA;IAAAC,KAAA,EACA,SAAAuD,KAAA,EAAM;MACF,IAAI,CAAC7B,WAAW,CAAC,CAAC;MAClB,IAAI,CAACnC,aAAa,GAAG,CAAC;MACtB,IAAI,CAACC,iBAAiB,GAAG,EAAE;MAC3B,IAAI,CAACC,uBAAuB,GAAG,CAAC;MAChC,IAAI,CAACI,OAAO,CAAC,CAAC;MACd;IACJ;IACA;EAAA;IAAAE,GAAA;IAAAC,KAAA,EACA,SAAAwD,QAAA,EAAS;MACL,IAAI,CAAC9B,WAAW,CAAC,CAAC;MAClB,IAAI,CAAC9D,GAAG,CAACwC,aAAa,CAAC,IAAI,CAACf,QAAQ,CAAC;MACrC,IAAI,CAACzB,GAAG,CAACwC,aAAa,CAAC,IAAI,CAACd,OAAO,CAAC;MACpC,IAAI,CAACC,aAAa,GAAG,CAAC;MACtB,IAAI,CAACC,iBAAiB,GAAG,EAAE;MAC3B,IAAI,CAACC,uBAAuB,GAAG,CAAC;IACpC;IACA;EAAA;IAAAM,GAAA;IAAAC,KAAA,EACA,SAAAyD,YAAYC,WAAW,EAAC;MACpB,IAAI,CAAC3F,QAAQ,GAAG2F,WAAW;MAC3B;MACA,IAAG,IAAI,CAAClE,iBAAiB,CAACS,MAAM,GAAC,CAAC,EAAC;QAC/B,IAAM0D,WAAW,GAAG,IAAI,CAACxB,qBAAqB,CAAC,IAAI,CAAC3C,iBAAiB,CAAC,IAAI,CAACC,uBAAuB,CAAC,EAAC,IAAI,CAAC5B,IAAI,CAAC,IAAI,CAAC0B,aAAa,GAAC,CAAC,CAAC,CAAC;QACpI,IAAI,CAACC,iBAAiB,MAAAT,MAAA,CAAA6E,kBAAA,CAAO,IAAI,CAACpE,iBAAiB,CAACqE,KAAK,CAAC,CAAC,EAAC,IAAI,CAACpE,uBAAuB,GAAC,CAAC,CAAC,GAAAmE,kBAAA,CAAID,WAAW,EAAC;MAC/G;IACJ;IACA;EAAA;IAAA5D,GAAA;IAAAC,KAAA,EACA,SAAA8D,gBAAgBC,MAAM,EAAC;MACnB,IAAGA,MAAM,IAAI,IAAI,CAAClG,IAAI,CAACoC,MAAM,EAAC;MAE9B,IAAI,CAACV,aAAa,GAAGwE,MAAM;MAC3B,IAAI,CAACvE,iBAAiB,GAAG,EAAE;MAC3B,IAAI,CAACC,uBAAuB,GAAG,CAAC;MAChC;MACA,IAAI,CAACI,OAAO,CAAC,CAAC;MACd,IAAG,IAAI,CAACH,MAAM,EAAC;QACX,IAAI,CAACgC,WAAW,CAAC,CAAC;QAClB,IAAI,CAACuB,IAAI,CAAC,CAAC;MACf;IACJ;IACA;EAAA;IAAAlD,GAAA;IAAAC,KAAA,EACA,SAAAgE,QAAQC,OAAO,EAAC;MACZ,IAAI,CAACpG,IAAI,GAAGoG,OAAO;MACnB,IAAI,CAAC1E,aAAa,GAAG,CAAC;MACtB,IAAI,CAACC,iBAAiB,GAAG,EAAE;MAC3B,IAAI,CAACC,uBAAuB,GAAG,CAAC;MAChC,IAAI,CAACI,OAAO,CAAC,CAAC;MACd,IAAG,IAAI,CAACH,MAAM,EAAC;QACX,IAAI,CAACgC,WAAW,CAAC,CAAC;QAClB,IAAI,CAACuB,IAAI,CAAC,CAAC;MACf;IACJ;EAAC;EAAA,OAAAzF,SAAA;AAAA;AAAA0G,MAAA,CAAAzG,OAAA,GAAAA,OAAA"}
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":"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"}