| | |
| | | maxZoom: 56,//最大变倍 |
| | | baseBoxSize: 576,//默认box宽度 |
| | | i:0,//动作监听i |
| | | autoFlightSpeed:10 |
| | | } |
| | | }, |
| | | watch:{ |
| | |
| | | //加点逻辑 比如向第2-n-1中插入元素 经纬度为当前的 heading pitch roll 下一个的 |
| | | const dealArr = []; |
| | | console.log(">> this.waypoints:", this.waypoints); |
| | | for (let i = 0; i < this.waypoints.length - 1; i++) { |
| | | // for (let i = 0; i < this.waypoints.length - 1; i++) { |
| | | for (let i = 0; i < this.waypoints.length ; i++) { |
| | | dealArr.push(this.waypoints[i]); // Push the current element |
| | | const current = this.waypoints[i]; |
| | | const next = this.waypoints[i + 1]; |
| | |
| | | // // 'nowAction':ele.value |
| | | // }); |
| | | //动作 |
| | | |
| | | if(current.nowAction){ |
| | | dealArr.push({ |
| | | 'name':'动作的延续', |
| | |
| | | "pitch": current.pitch, |
| | | "roll": current.roll, |
| | | "zoom":current.zoom || 1, |
| | | 'speed':current.speed, |
| | | |
| | | }); |
| | | } |
| | | //最后一个如果带动作处理 |
| | | if(next){ |
| | | if(current.lng !=next.lng || current.lat !=next.lat|| current.alt !=next.alt) { |
| | | // 假设你有两个点的经纬度 |
| | | var point1 = Cesium.Cartesian3.fromDegrees(current.lng , current.lat , current.alt); |
| | | var point2 = Cesium.Cartesian3.fromDegrees(next.lng, next.lat, next.alt); |
| | | // 计算两点之间的地表距离 |
| | | var distance = Cesium.Cartesian3.distance(point1, point2);; |
| | | } |
| | | dealArr.push({ |
| | | 'name':'push的数据', |
| | | "lng": next.lng, |
| | | "lat": next.lat, |
| | | "alt": next.alt, |
| | | 'flyHeading':current.flyHeading, |
| | | "heading": current.heading, |
| | | "pitch": current.pitch, |
| | | "roll": current.roll, |
| | | "zoom":current.zoom || 1, |
| | | 'speed':current.speed, |
| | | 'wait':Math.floor(distance/this.autoFlightSpeed) |
| | | }); |
| | | }else { |
| | | dealArr.push({ |
| | | 'name':'push的数据', |
| | | "lng": current.lng, |
| | | "lat": current.lat, |
| | | "alt": current.alt, |
| | | 'flyHeading':current.flyHeading, |
| | | "heading": current.heading, |
| | | "pitch": current.pitch, |
| | | "roll": current.roll, |
| | | "zoom":current.zoom || 1, |
| | | 'speed':current.speed, |
| | | }); |
| | | } |
| | | //到达点后朝向问题 |
| | | dealArr.push({ |
| | | 'name':'push的数据', |
| | | "lng": next.lng, |
| | | "lat": next.lat, |
| | | "alt": next.alt, |
| | | 'flyHeading':next.flyHeading, |
| | | "heading": current.heading, |
| | | "pitch": current.pitch, |
| | | "roll": current.roll, |
| | | "zoom":current.zoom || 1, |
| | | }); |
| | | |
| | | } |
| | | dealArr.push(this.waypoints[this.waypoints.length - 1]); |
| | | // dealArr.push(this.waypoints[this.waypoints.length - 1]); |
| | | this.waypoints = dealArr |
| | | console.log(dealArr) |
| | | this.fileInfo = ` |
| | |
| | | |
| | | const placemarks = |
| | | result.kml.Document[0].Folder[0].Placemark || []; |
| | | const flySpeed = |
| | | result.kml.Document[0].Folder[0]['wpml:autoFlightSpeed'][0] || 10 |
| | | this.autoFlightSpeed = Number(flySpeed) |
| | | const points = []; |
| | | const dealPoints = []; |
| | | let lastHeading = 0 |
| | |
| | | while(i>=0){ |
| | | trajectory = this.trajectoryData[i]; |
| | | if(new Date(currentTimeISO).getTime() < Math.abs(new Date(trajectory.time).getTime())){ |
| | | console.log(i) |
| | | i--; |
| | | }else{ |
| | | break; |