main
徐景良 1 month ago
parent 7c2e486942
commit b9af2ea8d7

@ -587,109 +587,109 @@ const handlerPointInfo = ()=>{
let placemarkArray = [];
props.airPoints?.forEach((item,index)=>{
let point = {
"Point": {
"coordinates": item.lng+","+item.lat //
},
"index": index, //
"executeHeight": item.alt, //
"waypointSpeed": 12.7125370218057, //
"waypointHeadingParam": { //
"waypointHeadingMode": "followWayline", // 线
"waypointHeadingAngle": -96.9990577342362,
"waypointPoiPoint": "0.000000,0.000000,0.000000",
"waypointHeadingAngleEnable": 1,
"waypointHeadingPathMode": "followBadArc",
"waypointHeadingPoiIndex": 0
},
"waypointTurnParam": {
"waypointTurnMode": "toPointAndStopWithDiscontinuityCurvature",
"waypointTurnDampingDist": 0
},
"useStraightLine": 1,
"actionGroup": [
{
"#text": "z",
"actionGroupId": 0,
"actionGroupStartIndex": 0,
"actionGroupEndIndex": 13,
"actionGroupMode": "sequence",
"actionTrigger": {
"actionTriggerType": "betweenAdjacentPoints"
},
"action": [
{
"actionId": 0,
"actionActuatorFunc": "gimbalAngleLock"
},
{
"actionId": 1,
"actionActuatorFunc": "gimbalRotate",
"actionActuatorFuncParam": {
"gimbalHeadingYawBase": "aircraft",
"gimbalRotateMode": "absoluteAngle",
"gimbalPitchRotateEnable": 1,
"gimbalPitchRotateAngle": -90,
"gimbalRollRotateEnable": 0,
"gimbalRollRotateAngle": 0,
"gimbalYawRotateEnable": 0,
"gimbalYawRotateAngle": 0,
"gimbalRotateTimeEnable": 0,
"gimbalRotateTime": 10,
"payloadPositionIndex": 0
}
},
{
"actionId": 2,
"actionActuatorFunc": "startTimeLapse",
"actionActuatorFuncParam": {
"payloadPositionIndex": 0,
"useGlobalPayloadLensIndex": 0,
"payloadLensIndex": "visable",
"minShootInterval": 1.52472746372223
}
}
]
},
{
"actionGroupId": 1,
"actionGroupStartIndex": 0,
"actionGroupEndIndex": 13,
"actionGroupMode": "sequence",
"actionTrigger": {
"actionTriggerType": "multipleTiming",
"actionTriggerParam": 2
},
"action": {
"actionId": 0,
"actionActuatorFunc": "gimbalRotate",
"actionActuatorFuncParam": {
"gimbalHeadingYawBase": "aircraft",
"gimbalRotateMode": "absoluteAngle",
"gimbalPitchRotateEnable": 1,
"gimbalPitchRotateAngle": -90,
"gimbalRollRotateEnable": 0,
"gimbalRollRotateAngle": 0,
"gimbalYawRotateEnable": 0,
"gimbalYawRotateAngle": 0,
"gimbalRotateTimeEnable": 0,
"gimbalRotateTime": 10,
"payloadPositionIndex": 0
}
}
}
],
"waypointGimbalHeadingParam": {
"waypointGimbalPitchAngle": 0,
"waypointGimbalYawAngle": 0
},
"isRisky": 0,
"waypointWorkType": 0
}
placemarkArray.push(point);
});
props.waylineWpmlConfig.Folder.Placemark = placemarkArray;
// props.airPoints?.forEach((item,index)=>{
// let point = {
// "Point": {
// "coordinates": item.lng+","+item.lat //
// },
// "index": index, //
// "executeHeight": item.alt, //
// "waypointSpeed": 12.7125370218057, //
// "waypointHeadingParam": { //
// "waypointHeadingMode": "followWayline", // 线
// "waypointHeadingAngle": -96.9990577342362,
// "waypointPoiPoint": "0.000000,0.000000,0.000000",
// "waypointHeadingAngleEnable": 1,
// "waypointHeadingPathMode": "followBadArc",
// "waypointHeadingPoiIndex": 0
// },
// "waypointTurnParam": {
// "waypointTurnMode": "toPointAndStopWithDiscontinuityCurvature",
// "waypointTurnDampingDist": 0
// },
// "useStraightLine": 1,
// "actionGroup": [
// {
// "#text": "z",
// "actionGroupId": 0,
// "actionGroupStartIndex": 0,
// "actionGroupEndIndex": 13,
// "actionGroupMode": "sequence",
// "actionTrigger": {
// "actionTriggerType": "betweenAdjacentPoints"
// },
// "action": [
// {
// "actionId": 0,
// "actionActuatorFunc": "gimbalAngleLock"
// },
// {
// "actionId": 1,
// "actionActuatorFunc": "gimbalRotate",
// "actionActuatorFuncParam": {
// "gimbalHeadingYawBase": "aircraft",
// "gimbalRotateMode": "absoluteAngle",
// "gimbalPitchRotateEnable": 1,
// "gimbalPitchRotateAngle": -90,
// "gimbalRollRotateEnable": 0,
// "gimbalRollRotateAngle": 0,
// "gimbalYawRotateEnable": 0,
// "gimbalYawRotateAngle": 0,
// "gimbalRotateTimeEnable": 0,
// "gimbalRotateTime": 10,
// "payloadPositionIndex": 0
// }
// },
// {
// "actionId": 2,
// "actionActuatorFunc": "startTimeLapse",
// "actionActuatorFuncParam": {
// "payloadPositionIndex": 0,
// "useGlobalPayloadLensIndex": 0,
// "payloadLensIndex": "visable",
// "minShootInterval": 1.52472746372223
// }
// }
// ]
// },
// {
// "actionGroupId": 1,
// "actionGroupStartIndex": 0,
// "actionGroupEndIndex": 13,
// "actionGroupMode": "sequence",
// "actionTrigger": {
// "actionTriggerType": "multipleTiming",
// "actionTriggerParam": 2
// },
// "action": {
// "actionId": 0,
// "actionActuatorFunc": "gimbalRotate",
// "actionActuatorFuncParam": {
// "gimbalHeadingYawBase": "aircraft",
// "gimbalRotateMode": "absoluteAngle",
// "gimbalPitchRotateEnable": 1,
// "gimbalPitchRotateAngle": -90,
// "gimbalRollRotateEnable": 0,
// "gimbalRollRotateAngle": 0,
// "gimbalYawRotateEnable": 0,
// "gimbalYawRotateAngle": 0,
// "gimbalRotateTimeEnable": 0,
// "gimbalRotateTime": 10,
// "payloadPositionIndex": 0
// }
// }
// }
// ],
// "waypointGimbalHeadingParam": {
// "waypointGimbalPitchAngle": 0,
// "waypointGimbalYawAngle": 0
// },
// "isRisky": 0,
// "waypointWorkType": 0
// }
// placemarkArray.push(point);
// });
// props.waylineWpmlConfig.Folder.Placemark = placemarkArray;
// folder.value.Placemark = placemarkArray;
return true;
@ -725,7 +725,11 @@ const saveAirLine = ()=>{
// template missionConfig wayline
props.waylineWpmlConfig.missionConfig = JSON.parse(JSON.stringify(props.templateKmlConfig.missionConfig))
const builder = new XMLBuilder();
const builder = new XMLBuilder({
format: true, //
indentBy: " ", // 2 \t
suppressEmptyNode: true, //
});
// wpml template json
let templateJson = {kml:{Document:props.templateKmlConfig}}
@ -759,9 +763,11 @@ const handlerPrefixWpml = (obj) => {
const newAttrs = {};
for (const attrName in obj[key]) {
for (const attrName in obj[key] ) {
//
if (/^[a-z]/.test(attrName)) {
if (/^[a-z]/.test(attrName) && attrName != 'outerBoundaryIs' && attrName != 'coordinates') {
console.log("attrName",attrName);
newAttrs[`wpml:${attrName}`] = obj[key][attrName];
} else {
newAttrs[attrName] = obj[key][attrName];
@ -835,15 +841,13 @@ const handlerCreateFile =async (templateXml,waylineXml)=>{
const convertXmlToKmz =async (templateXml,waylineXml)=>{
const zip = new JSZip();
// 1. "wmpz"
const wmpzFolder = zip.folder("wpmz");
// 2.
wmpzFolder.file("wayline.wpml", waylineXml);
wmpzFolder.file("waylines.wpml", waylineXml);
wmpzFolder.file("template.kml", templateXml);
// 3. KMZ (ZIP)
@ -1001,7 +1005,6 @@ const handlerWaylineWpml = () => {
//
props.waylineWpmlConfig.missionConfig = JSON.parse(JSON.stringify(props.templateKmlConfig.missionConfig));
//
handlerStatistics();
@ -1012,18 +1015,15 @@ const handlerWaylineWpml = () => {
// 线
const handlerStatistics = () => {
props.waylineWpmlConfig.Folder.distance = props.airInfo.length;
props.waylineWpmlConfig.Folder.duration = props.airInfo.time;
}
// 线
const handelrAirPoint = () => {
// alert(props.templateKmlConfig.Folder.autoFlightSpeed);
props.airPoints.forEach((item,index)=>{
let point = null;
//
@ -1032,7 +1032,14 @@ const handelrAirPoint = () => {
//
let spaceTime = (calculateInterval(calculatParam.value.gsd,calculatParam.value.overlapX/100,uavModel['m4td']) / props.templateKmlConfig.Folder.autoFlightSpeed)
//
let heightArr = props.waylineWpmlConfig.missionConfig.takeOffRefPoint.split(",");
height = heightArr[2]
console.log("起飞点高度",height);
// 1
if(index == 0){
point = {
@ -1040,7 +1047,7 @@ const handelrAirPoint = () => {
"coordinates":item.lng+","+item.lat
},
"index": item.id,
"executeHeight": item.alt,
"executeHeight": item.alt - height,
"waypointSpeed": props.templateKmlConfig.Folder.autoFlightSpeed,
"waypointHeadingParam": {
"waypointHeadingMode": "followWayline",
@ -1139,7 +1146,7 @@ const handelrAirPoint = () => {
"coordinates":item.lng+","+item.lat
},
"index": item.id,
"executeHeight": item.alt,
"executeHeight": item.alt - height,
"waypointSpeed": props.templateKmlConfig.Folder.autoFlightSpeed,
"waypointHeadingParam": {
"waypointHeadingMode": "followWayline",
@ -1190,7 +1197,7 @@ const handelrAirPoint = () => {
"coordinates":item.lng+","+item.lat
},
"index": item.id,
"executeHeight": item.alt,
"executeHeight": item.alt - height,
"waypointSpeed": props.templateKmlConfig.Folder.autoFlightSpeed,
"waypointHeadingParam": {
"waypointHeadingMode": "followWayline",
@ -1324,7 +1331,7 @@ const handelrAirPoint = () => {
"coordinates":item.lng+","+item.lat
},
"index": item.id,
"executeHeight": item.alt,
"executeHeight": item.alt - height,
"waypointSpeed": props.templateKmlConfig.Folder.autoFlightSpeed,
"waypointHeadingParam": {
"waypointHeadingMode": "followWayline",
@ -1351,7 +1358,6 @@ const handelrAirPoint = () => {
props.waylineWpmlConfig.Folder.Placemark.push(point);
})
console.log(" props.waylineWpmlConfig", props.waylineWpmlConfig);
}
</script>

@ -931,12 +931,16 @@ const handlerDrawPolygon = async () => {
},
});
console.log("graphic1233",graphic.toGeoJSON());
let coordinates = graphic.toJSON().positions;
coordinates.push(coordinates[0]);
polygonGeoJson.value = coordinates;
console.log("polygonGeoJson",polygonGeoJson.value);
let polygon = turf.polygon([coordinates]);
let polygonWkt = GeojsonToWkt(polygon['geometry']);

Loading…
Cancel
Save