import { RoutePlayer } from "../../libs/maptalks-routeplayer/maptalks.routeplayer.es";
/**
*轨迹图层类
*/
class EasyRouteplayer {
/**
* Creates an instance of EasyRouteplayer.
* @param {*} routes 一个包含路径数据的对象数组
* @param {*} EasyMap 地图实例
* @param {*} mapPan 是否地图随动(只有一个轨迹时生效)
* @param {*} [options=null] 选项对象选项
* @param {Number} options.unitTime 播放倍速
* @param {boolean} options.showRoutes 是否在播放过程中显示路线
* @param {Number} options.totalTime 总时长(传递该值则该轨迹的运行时间按着该值处理,轨迹点匀速运动,传0则代表该值不生效,默认为0 单位是毫秒)
* @param {boolean} options.rotating 是否车头随转(只有一个轨迹时生效)
* @memberof EasyRouteplayer
*/
constructor(
routes,
EasyMap,
mapPan = false,
options = {
unitTime: 1,
totalTime: 0,
rotating:false
}
) {
if (options.totalTime && Number(options.totalTime) > 0) {
routes.map((val) => {
for (let i = 0; i < val.path.length; i++) {
val.path[i][2] = i * 1000;
}
});
if (options.unitTime) {
options.totalTime = options.totalTime / options.unitTime;
}
}
if(!options.unitTime){
options.unitTime=1
}
if(!options.rotating){
options.rotating=false
}
this.layer = new RoutePlayer(
routes,
EasyMap.map,
mapPan,
options
);
this.id = this.layer.id;
}
/**
*停止播放并从地图上删除。
*
* @memberof EasyRouteplayer
*/
remove() {
this.layer.remove();
}
/**
*开始播放
*
* @memberof EasyRouteplayer
*/
play() {
this.layer.play();
}
/**
*暂停播放
*
* @memberof EasyRouteplayer
*/
pause() {
this.layer.pause();
}
/**
*取消播放
*
* @memberof EasyRouteplayer
*/
cancel() {
this.layer.cancel();
}
/**
*完成播放
*
* @memberof EasyRouteplayer
*/
finish() {
this.layer.finish();
}
/**
*获取开始时间。开始时间是所有路线的开始时间中的最少时间
*
* @return {Number} 时间
* @memberof EasyRouteplayer
*/
getStartTime() {
return this.layer.getStartTime();
}
/**
*获取结束时间。结束时间是所有路线的结束时间中的最大值
*
* @return {Number} 时间
* @memberof EasyRouteplayer
*/
getEndTime() {
return this.layer.getEndTime();
}
/**
*获取播放器的当前播放时间
*
* @return {Number} 时间
* @memberof EasyRouteplayer
*/
getCurrentTime() {
return this.layer.getCurrentTime();
}
/**
*将时间设置为t并在那一刻重新绘制所有内容
*
* @param {Number} t 时间
* @memberof EasyRouteplayer
*/
setTime(t) {
this.layer.setTime(t);
}
/**
*获取单位时间
*
* @return {*}
* @memberof EasyRouteplayer
*/
getUnitTime() {
return this.layer.getUnitTime();
}
/**
*设置单位时间
*
* @param {number} t options.unitTime
* @memberof EasyRouteplayer
*/
setUnitTime(t) {
this.layer.setUnitTime(t);
}
/**
*获取路线的点符号
*
* @param {*} idx 轨迹id
* @return {object}
* @memberof EasyRouteplayer
*/
getMarkerSymbol(idx) {
return this.layer.getMarkerSymbol(idx);
}
/**
*设置路线的点符号
*
* @param {*} idx 轨迹id
* @param {object} symbol
* @memberof EasyRouteplayer
*/
setMarkerSymbol(idx, symbol) {
this.layer.setMarkerSymbol(idx, symbol);
}
/**
*获取路线的线符号
*
* @param {*} idx 轨迹id
* @return {*}
* @memberof EasyRouteplayer
*/
getLineSymbol(idx) {
return this.layer.getLineSymbol(idx);
}
/**
*设置路线的线符号
*
* @param {*} idx 轨迹id
* @param {*} symbol
* @memberof EasyRouteplayer
*/
setLineSymbol(idx, symbol) {
this.layer.setLineSymbol(idx, symbol);
}
}
export default EasyRouteplayer;