Compare commits
No commits in common. "75aeed56bef2613ce41c4725f0c1f6a76ac8c72d" and "c1575d47ddb76d97e51199baabe650165ce5ffe8" have entirely different histories.
75aeed56be
...
c1575d47dd
@ -33,7 +33,7 @@ public class SEApplication {
|
||||
|
||||
System.setProperty("jna.library.path", combinedPath);
|
||||
// 如果 OpenCV 使用的是标准 JNI (System.loadLibrary),可能还需要设置 java.library.path
|
||||
System.setProperty("opencv.library.path", opencvPath);
|
||||
System.setProperty("java.library.path", opencvPath);
|
||||
SpringApplication.run(SEApplication.class, args);
|
||||
}
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@ import lombok.Getter;
|
||||
public enum JmJobModeEnum implements CodeEnum<Integer> {
|
||||
|
||||
QUICK(1, "快速模式"),
|
||||
CRUISE(2, "巡航模式"),
|
||||
|
||||
CREATE(3, "航线创建")
|
||||
;
|
||||
|
||||
|
||||
@ -17,7 +17,6 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.io.File;
|
||||
import java.net.ConnectException;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@ -119,22 +118,7 @@ public class JmImageController {
|
||||
}
|
||||
|
||||
static {
|
||||
//System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
|
||||
//加载 OpenCV (强制使用绝对路径加载,解决 UnsatisfiedLinkError)
|
||||
String openCvDll = System.getProperty("opencv.library.path") + File.separator + Core.NATIVE_LIBRARY_NAME + ".dll";
|
||||
try {
|
||||
File dllFile = new File(openCvDll);
|
||||
if (dllFile.exists()) {
|
||||
// 注意:必须使用 System.load() 加载绝对路径
|
||||
System.load(dllFile.getAbsolutePath());
|
||||
System.out.println("SUCCESS: OpenCV loaded from -> " + dllFile.getAbsolutePath());
|
||||
} else {
|
||||
System.err.println("ERROR: OpenCV DLL not found at -> " + openCvDll);
|
||||
}
|
||||
} catch (Throwable e) {
|
||||
System.err.println("CRITICAL: Failed to load OpenCV: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
}
|
||||
System.loadLibrary(Core.NATIVE_LIBRARY_NAME);
|
||||
}
|
||||
|
||||
/*@IgnoreAuth
|
||||
|
||||
@ -60,7 +60,7 @@ public class JmUavStatusDTO {
|
||||
private String sarIp;
|
||||
|
||||
/** sar 图片亮度 */
|
||||
private volatile Integer sarImageLight;
|
||||
private Integer sarImageLight;
|
||||
|
||||
/**
|
||||
* 获取sar当前状态
|
||||
|
||||
@ -19,8 +19,6 @@ import org.springframework.stereotype.Service;
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.Optional;
|
||||
|
||||
import static com.zhangy.skyeye.jm.consts.JmJobModeEnum.CRUISE;
|
||||
|
||||
/**
|
||||
* 控制指令
|
||||
*/
|
||||
@ -56,11 +54,7 @@ public class SarControlServiceImpl implements ISarControlService {
|
||||
param.setMoto(sar.getMoto());
|
||||
param.setImageBit(sar.getImageBit());
|
||||
param.setResolution(sar.getResolution());
|
||||
if (job.getMode().equals(CRUISE.getCode())) {
|
||||
param.setControlType(SarControlTypeEnum.TURNON);
|
||||
} else {
|
||||
param.setControlType(SarControlTypeEnum.AUTO);
|
||||
}
|
||||
double startAltitude = uav.getStartAltitude();
|
||||
// 高度加上起始高度
|
||||
Optional.ofNullable(param.getAirlineList())
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
const prodPlugins = []
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
// prodPlugins.push('transform-remove-console')
|
||||
prodPlugins.push('transform-remove-console')
|
||||
}
|
||||
module.exports = {
|
||||
presets: [[
|
||||
"@babel/preset-env",
|
||||
{ targets: "> 1% in AU and not dead", shippedProposals: true },
|
||||
], '@vue/cli-plugin-babel/preset'],
|
||||
plugins: [...prodPlugins]
|
||||
],'@vue/cli-plugin-babel/preset'],
|
||||
plugins:[...prodPlugins]
|
||||
}
|
||||
|
||||
@ -19,7 +19,6 @@
|
||||
"dependencies": {
|
||||
"@turf/turf": "^7.1.0",
|
||||
"axios": "^0.21.1",
|
||||
"babel-plugin-transform-remove-console": "^6.9.4",
|
||||
"core-js": "^3.6.4",
|
||||
"element-ui": "^2.15.6",
|
||||
"js-cookie": "^2.2.1",
|
||||
|
||||
@ -1,10 +0,0 @@
|
||||
<meta charset="utf-8">
|
||||
<title>dt-chart demo</title>
|
||||
<script src="./dt-chart.umd.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="./dt-chart.css">
|
||||
|
||||
|
||||
<script>
|
||||
console.log(dt-chart)
|
||||
</script>
|
||||
210558
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.common.js
vendored
210558
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.common.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
210568
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.umd.js
vendored
210568
frontend/Skyeye-sys-ui/resource/dt-chart/dist/dt-chart.umd.js
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
{"version":3,"file":"dt-chart.umd.min.js","sources":["webpack://dt-chart/dt-chart.umd.min.js"],"mappings":"AAAA;AA+HA;AAAA;AAqEA;AAAA;AA+HA;AAAA;AA0FA;AAAA;AAsNA;AAAA;AAuEA;AAAA;AAiLA;AAAA;AA0HA;AAAA;AAkGA;AAAA;AA4NA;AAAA;AAyFA;AAAA;AAqFA;AAAA;AAyHA;AAAA;AAqEA;AAAA;AAyEA;AAAA;AAiGA;AAAA;AAqQA;AAAA;AAoMA;AAAA;AA8IA;AAAA;AA8HA;AAAA;AAkYA;AAAA;AA2JA;AAAA;AAqMA;AAAA;AA6LA;AAAA;AA8JA;AAAA;AAuMA;AAAA;AA4IA;AAAA;AA8FA;AAAA;AAmKA;AAAA;AAmHA;AAAA;AAwHA;AAAA;AAgFA;AAAA;AAqFA;AAAA;AAyNA;AAAA;AA0IA;AAAA;AAkHA;AAAA;AA4JA;AAAA;AAiRA;AAAA;AAiJA;AAAA;AAsmBA;AAAA;AAiFA;AAAA;AAyiBA;AAAA;AA4IA;AAAA;AAkHA;AAAA;AAiZA;AAAA;AA0HA;AAAA;AA4HA;AAAA;AAiGA;AAAA;AA6OA;AAAA;AA8JA;AAAA;AA8JA;AAAA;AAuIA;AAAA;AA4GA;AAAA;AAuIA;AAAA;AAqJA;AAAA;AA8HA;AAAA;AAkJA;AAAA;AAmPA;AAAA;AAgIA;AAAA;AA+FA;AAAA;AAiGA;AAAA;AAqLA;AAAA;AA4HA;AAAA;AAiLA;AAAA;AA2EA;AAAA;AAkGA;AAAA;AAiqBA;AAAA;AA6KA;AAAA;AAgFA;AAAA;AAoFA;AAAA;AA4MA;AAAA;AA2GA;AAAA;AA4SA;AAAA;AAsbA;AAAA;AAmFA;AAAA;AAmNA;AAAA;AAyIA;AAAA;AAsKA;AAAA;AAqHA;AAAA;AAyGA;AAAA;AAmMA;AAAA;AA0IA;AAAA;AAwHA;AAAA;AA2JA;AAAA;AAgIA;AAAA;AA2MA;AAAA;AAoJA;AAAA;;AAyHA;AA8PA;AAAA;AA4NA;AAAA;AAmHA;AAAA;AAoGA;AAAA;AAkJA;AAAA;AA0FA;AAAA;AA2QA;AAAA;AA+LA;AAAA;AAylBA;AAAA;AA8JA;AAAA;AA4MA;AAAA;AA6UA;AAAA;AAoFA;AAAA;AA8FA;AAAA;AA4FA;AAAA;AAsEA;AAAA;AA2FA;AAAA;;;;;;;AAqJA;AA++DA;AAAA;AAqFA;AAAA;AA4EA;AAAA;AA4GA;AAAA;AA0HA;AAAA;;;;;AAgEA;;AA++KA;AAwJA;AAAA;AAyIA;AAAA;AAoMA;AAAA;AAwIA;AAAA;AAsGA;AAAA;AA0MA;AAAA;AAuLA;AAAA;AAoOA;AAAA;AAyEA;AAAA;AA4GA;AAAA;AAmPA;AAAA;AA4GA;AAAA;AAmKA;AAAA;AA4SA;AAAA;AAmLA;AAAA;AA8LA;AAAA;AA2KA;AAAA;AA4FA;AAAA;AA6FA;AAAA;AAqFA;AAAA;AAmFA;AAAA;AA8EA;AAAA;AA2KA;AAAA;AA+HA;AAAA;;;;;;;;;;;;;;AAkYA;;;;;;;;;AA6vLA;AAq80KA;AAAA;AA8IA;AAAA","sourceRoot":""}
|
||||
@ -1,10 +0,0 @@
|
||||
<meta charset="utf-8">
|
||||
<title>dt-chart demo</title>
|
||||
<script src="./dt-chart.umd.js"></script>
|
||||
|
||||
<link rel="stylesheet" href="./dt-chart.css">
|
||||
|
||||
|
||||
<script>
|
||||
console.log(dt-chart)
|
||||
</script>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1 +0,0 @@
|
||||
{"version":3,"file":"dt-chart.umd.min.js","sources":["webpack://dt-chart/dt-chart.umd.min.js"],"mappings":"AAAA;AA+HA;AAAA;AAqEA;AAAA;AA+HA;AAAA;AA0FA;AAAA;AAsNA;AAAA;AAuEA;AAAA;AAiLA;AAAA;AA0HA;AAAA;AAkGA;AAAA;AA4NA;AAAA;AAyFA;AAAA;AAqFA;AAAA;AAyHA;AAAA;AAqEA;AAAA;AAyEA;AAAA;AAiGA;AAAA;AAqQA;AAAA;AAoMA;AAAA;AA8IA;AAAA;AA8HA;AAAA;AAkYA;AAAA;AA2JA;AAAA;AAqMA;AAAA;AA6LA;AAAA;AA8JA;AAAA;AAuMA;AAAA;AA4IA;AAAA;AA8FA;AAAA;AAmKA;AAAA;AAmHA;AAAA;AAwHA;AAAA;AAgFA;AAAA;AAqFA;AAAA;AAyNA;AAAA;AA0IA;AAAA;AAkHA;AAAA;AA4JA;AAAA;AAiRA;AAAA;AAiJA;AAAA;AAsmBA;AAAA;AAiFA;AAAA;AAyiBA;AAAA;AA4IA;AAAA;AAkHA;AAAA;AAiZA;AAAA;AA0HA;AAAA;AA4HA;AAAA;AAiGA;AAAA;AA6OA;AAAA;AA8JA;AAAA;AA8JA;AAAA;AAuIA;AAAA;AA4GA;AAAA;AAuIA;AAAA;AAqJA;AAAA;AA8HA;AAAA;AAkJA;AAAA;AAmPA;AAAA;AAgIA;AAAA;AA+FA;AAAA;AAiGA;AAAA;AAqLA;AAAA;AA4HA;AAAA;AAiLA;AAAA;AA2EA;AAAA;AAkGA;AAAA;AAiqBA;AAAA;AA6KA;AAAA;AAgFA;AAAA;AAoFA;AAAA;AA4MA;AAAA;AA2GA;AAAA;AA4SA;AAAA;AAsbA;AAAA;AAmFA;AAAA;AAmNA;AAAA;AAyIA;AAAA;AAsKA;AAAA;AAqHA;AAAA;AAyGA;AAAA;AAmMA;AAAA;AA0IA;AAAA;AAwHA;AAAA;AA2JA;AAAA;AAgIA;AAAA;AA2MA;AAAA;AAoJA;AAAA;;AAyHA;AA8PA;AAAA;AA4NA;AAAA;AAmHA;AAAA;AAoGA;AAAA;AAkJA;AAAA;AA0FA;AAAA;AA2QA;AAAA;AA+LA;AAAA;AAylBA;AAAA;AA8JA;AAAA;AA4MA;AAAA;AA6UA;AAAA;AAoFA;AAAA;AA8FA;AAAA;AA4FA;AAAA;AAsEA;AAAA;AA2FA;AAAA;;;;;;;AAqJA;AA++DA;AAAA;AAqFA;AAAA;AA4EA;AAAA;AA4GA;AAAA;AA0HA;AAAA;;;;;AAgEA;;AA++KA;AAwJA;AAAA;AAyIA;AAAA;AAoMA;AAAA;AAwIA;AAAA;AAsGA;AAAA;AA0MA;AAAA;AAuLA;AAAA;AAoOA;AAAA;AAyEA;AAAA;AA4GA;AAAA;AAmPA;AAAA;AA4GA;AAAA;AAmKA;AAAA;AA4SA;AAAA;AAmLA;AAAA;AA8LA;AAAA;AA2KA;AAAA;AA4FA;AAAA;AA6FA;AAAA;AAqFA;AAAA;AAmFA;AAAA;AA8EA;AAAA;AA2KA;AAAA;AA+HA;AAAA;;;;;;;;;;;;;;AAkYA;;;;;;;;;AA6vLA;AAq80KA;AAAA;AA8IA;AAAA","sourceRoot":""}
|
||||
@ -1,48 +0,0 @@
|
||||
{
|
||||
"name": "dt-chart",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"main": "dist/dt-chart.umd.min.js",
|
||||
"module": "./packages/index.js",
|
||||
"exports": {
|
||||
"./package.json": "./package.json",
|
||||
".": {
|
||||
"require": "dist/dt-chart.umd.min.js",
|
||||
"import": "./packages/index.js"
|
||||
}
|
||||
},
|
||||
"author": {
|
||||
"name": "Farley"
|
||||
},
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
"docs": "vuepress dev docs",
|
||||
"docs:build": "vuepress build docs",
|
||||
"build": "vue-cli-service build --target lib packages/index.js & vuepress build docs"
|
||||
},
|
||||
"dependencies": {
|
||||
"core-js": "^3.6.5",
|
||||
"echarts": "^5.1.2",
|
||||
"echarts-gl": "^2.0.8",
|
||||
"echarts-liquidfill": "^3.1.0",
|
||||
"install": "^0.13.0",
|
||||
"moment": "^2.29.1",
|
||||
"nanoid": "^3.1.23",
|
||||
"npm": "^7.20.6",
|
||||
"vue": "^2.6.11",
|
||||
"vue-router": "^3.2.0",
|
||||
"vuepress": "^1.8.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "^4.5.0",
|
||||
"@vue/cli-service": "^4.5.0",
|
||||
"sass": "^1.29.0",
|
||||
"sass-loader": "^8.0.2",
|
||||
"vue-template-compiler": "^2.6.11"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%",
|
||||
"last 2 versions",
|
||||
"not dead"
|
||||
]
|
||||
}
|
||||
@ -1,48 +0,0 @@
|
||||
{
|
||||
"name": "dt-chart",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"main": "dist/dt-chart.umd.min.js",
|
||||
"module": "./packages/index.js",
|
||||
"exports": {
|
||||
"./package.json": "./package.json",
|
||||
".": {
|
||||
"require": "dist/dt-chart.umd.min.js",
|
||||
"import": "./packages/index.js"
|
||||
}
|
||||
},
|
||||
"author": {
|
||||
"name": "Farley"
|
||||
},
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
"docs": "vuepress dev docs",
|
||||
"docs:build": "vuepress build docs",
|
||||
"build": "vue-cli-service build --target lib packages/index.js & vuepress build docs"
|
||||
},
|
||||
"dependencies": {
|
||||
"core-js": "^3.6.5",
|
||||
"echarts": "^5.1.2",
|
||||
"echarts-gl": "^2.0.8",
|
||||
"echarts-liquidfill": "^3.1.0",
|
||||
"install": "^0.13.0",
|
||||
"moment": "^2.29.1",
|
||||
"nanoid": "^3.1.23",
|
||||
"npm": "^7.20.6",
|
||||
"vue": "^2.6.11",
|
||||
"vue-router": "^3.2.0",
|
||||
"vuepress": "^1.8.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@vue/cli-plugin-babel": "^4.5.0",
|
||||
"@vue/cli-service": "^4.5.0",
|
||||
"sass": "^1.29.0",
|
||||
"sass-loader": "^8.0.2",
|
||||
"vue-template-compiler": "^2.6.11"
|
||||
},
|
||||
"browserslist": [
|
||||
"> 1%",
|
||||
"last 2 versions",
|
||||
"not dead"
|
||||
]
|
||||
}
|
||||
@ -83,7 +83,3 @@ export const pictureAiCheck = params =>
|
||||
// 开机
|
||||
export const changePayloadRadarOpenState = params =>
|
||||
req('post', '/sar/control/send', params)
|
||||
|
||||
|
||||
export const changeJobStatus = params =>
|
||||
req('post', '/sar/job/status/', params)
|
||||
|
||||
@ -83,7 +83,7 @@
|
||||
:data="colorStick.colors"
|
||||
></color-stick>
|
||||
<!-- 开关 -->
|
||||
<!-- <dt-loading :visible.sync="loading"></dt-loading> -->
|
||||
<dt-loading :visible.sync="loading"></dt-loading>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@ -134,7 +134,7 @@
|
||||
@modify="handleCommand('logout')"
|
||||
></change-password>
|
||||
|
||||
<!-- <dt-loading :visible.sync="loading"></dt-loading> -->
|
||||
<dt-loading :visible.sync="loading"></dt-loading>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
||||
@ -35,10 +35,9 @@
|
||||
box-sizing: border-box;
|
||||
border-radius: 6px;
|
||||
background-color: $--color-black-3-alpha;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(23, 69, 46, .4);
|
||||
background-color: $--color-black-3;
|
||||
}
|
||||
|
||||
>p {
|
||||
|
||||
@ -29,12 +29,11 @@
|
||||
v-for="(item, index) in taskList.data"
|
||||
:key="item.id"
|
||||
class="task-item"
|
||||
@click="openTaskLineDetail(item)"
|
||||
>
|
||||
<div class="top-part">
|
||||
<!-- <div class="task-progress-bar" :style="'width: ' + item.uavCompletion +'%;'"></div>-->
|
||||
<div class="top-part__left">
|
||||
<div class="execute-info">
|
||||
<div class="execute-info" @click="openTaskLineDetail(item)">
|
||||
<span
|
||||
class="execute-type-icon"
|
||||
:class="'execute-state-' + item.status"
|
||||
|
||||
@ -1128,15 +1128,8 @@ export default {
|
||||
// 测试
|
||||
// this.addUavToScene(item)
|
||||
})
|
||||
if (data.length) {
|
||||
this.detailUav.chart.data[0].data = []
|
||||
this.detailUav.chart.data[1].data = []
|
||||
this.detailUav.chart.data[2].data = []
|
||||
this.detailUav.chart.data[3].data = []
|
||||
this.detailUav.id = data.length ? data[0].id : 1
|
||||
this.detailUav.visible = data.length ? true : false
|
||||
}
|
||||
|
||||
taskListResource = data
|
||||
this.taskList.data = list
|
||||
if (this.taskList.data.length) {
|
||||
@ -1329,59 +1322,51 @@ export default {
|
||||
}
|
||||
},
|
||||
addJobLine(info, isFinish) {
|
||||
// 参数和数据校验
|
||||
console.log(info, info.uavList, 777777777777);
|
||||
|
||||
if (!info || !Array.isArray(info.uavList) || info.uavList.length === 0) return;
|
||||
const uav = info.uavList[0];
|
||||
if (!Array.isArray(uav.airlineList) || uav.airlineList.length === 0) return;
|
||||
const key = `${info.id}-${uav.uavId}`;
|
||||
let load = renderTaskInfo[key];
|
||||
console.log(load, key, 3333333);
|
||||
|
||||
console.log('任务信息', info)
|
||||
let load = renderTaskInfo[`${info.id}-${info.uavList[0].uavId}`]
|
||||
if (load) {
|
||||
return;
|
||||
return
|
||||
}
|
||||
let routes = [];
|
||||
let startHeight = 0;
|
||||
let endHeight = 0;
|
||||
uav.airlineList.forEach((item, index) => {
|
||||
let routes = []
|
||||
let startHeight = 0
|
||||
let endHeight = 0
|
||||
info.uavList[0].airlineList.forEach((item, index) => {
|
||||
if (index === 0) {
|
||||
startHeight = item.startHeight;
|
||||
startHeight = item.flightStartHeight
|
||||
}
|
||||
if (index === uav.airlineList.length - 1) {
|
||||
endHeight = item.endHeight;
|
||||
if (index === info.uavList[0].airlineList.length - 1) {
|
||||
endHeight = item.flightEndHeight
|
||||
}
|
||||
routes.push([item.startLon, item.startLat, item.startHeight]);
|
||||
routes.push([item.endLon, item.endLat, item.endHeight]);
|
||||
});
|
||||
routes.unshift([uav.startLon, uav.startLat, startHeight]);
|
||||
routes.push([uav.endLon, uav.endLat, endHeight]);
|
||||
let positions = [];
|
||||
let minLon, maxLon, minLat, maxLat;
|
||||
routes.push([item.flightStartLon, item.flightStartLat, item.flightStartHeight])
|
||||
routes.push([item.flightEndLon, item.flightEndLat, item.flightEndHeight])
|
||||
})
|
||||
routes.unshift([info.uavList[0].startLon, info.uavList[0].startLat, startHeight])
|
||||
routes.push([info.uavList[0].endLon, info.uavList[0].endLat, endHeight])
|
||||
let positions = []
|
||||
let minLon, maxLon, minLat, maxLat
|
||||
routes.forEach((item, index) => {
|
||||
if (index === 0) {
|
||||
minLon = item[0];
|
||||
maxLon = item[0];
|
||||
minLat = item[1];
|
||||
maxLat = item[1];
|
||||
minLon = item[0]
|
||||
maxLon = item[0]
|
||||
minLat = item[1]
|
||||
maxLat = item[1]
|
||||
} else {
|
||||
minLon = Math.min(minLon, item[0]);
|
||||
maxLon = Math.max(maxLon, item[0]);
|
||||
minLat = Math.min(minLat, item[1]);
|
||||
maxLat = Math.max(maxLat, item[1]);
|
||||
minLon = Math.min(minLon, item[0])
|
||||
maxLon = Math.max(maxLon, item[0])
|
||||
minLat = Math.min(minLat, item[1])
|
||||
maxLat = Math.max(maxLat, item[1])
|
||||
}
|
||||
positions.push(DT.Cesium.Cartesian3.fromDegrees(item[0], item[1], item[2]));
|
||||
});
|
||||
if (positions.length === 0) return;
|
||||
let currentIndex = 0;
|
||||
let currentPosition = positions[0].clone();
|
||||
positions.push(DT.Cesium.Cartesian3.fromDegrees(item[0], item[1], item[2]))
|
||||
})
|
||||
let currentIndex = 0
|
||||
let currentPosition = positions[0].clone()
|
||||
if (isFinish) {
|
||||
currentIndex = positions.length - 1;
|
||||
currentPosition = positions[currentIndex].clone();
|
||||
currentIndex = positions.length - 1
|
||||
currentPosition = positions[currentIndex].clone()
|
||||
}
|
||||
|
||||
let pathEntity = new DT.DirectionPath({
|
||||
id: `${key}~baseline`,
|
||||
id: `${info.id}-${info.uavList[0].uavId}~baseline`,
|
||||
positions: positions,
|
||||
dataFit: false,
|
||||
currentPosition: currentPosition,
|
||||
@ -1409,18 +1394,19 @@ export default {
|
||||
scale: 0.5,
|
||||
show: true,
|
||||
style: DT.Cesium.LabelStyle.FILL_AND_OUTLINE,
|
||||
text: uav.uavName,
|
||||
text: info.uavList[0].uavName,
|
||||
verticalOrigin: DT.Cesium.VerticalOrigin.CENTER,
|
||||
disableDepthTestDistance: 10000
|
||||
},
|
||||
billboardConfig: {
|
||||
image: process.env.BASE_URL + 'static/img/icon_wrj.png',
|
||||
disableDepthTestDistance: 10000
|
||||
// enableRotation: true
|
||||
},
|
||||
enableRepeatAdjust: false,
|
||||
});
|
||||
})
|
||||
let pathEntity2 = new DT.DirectionPath({
|
||||
id: `${key}~baseline-radar`,
|
||||
id: `${info.id}-${info.uavList[0].uavId}~baseline`,
|
||||
positions: positions,
|
||||
dataFit: false,
|
||||
currentPosition: currentPosition,
|
||||
@ -1448,48 +1434,53 @@ export default {
|
||||
scale: 0.5,
|
||||
show: true,
|
||||
style: DT.Cesium.LabelStyle.FILL_AND_OUTLINE,
|
||||
text: uav.uavName,
|
||||
text: info.uavList[0].uavName,
|
||||
verticalOrigin: DT.Cesium.VerticalOrigin.CENTER,
|
||||
disableDepthTestDistance: 10000
|
||||
},
|
||||
billboardConfig: {
|
||||
image: process.env.BASE_URL + 'static/img/icon_wrj.png',
|
||||
disableDepthTestDistance: 10000
|
||||
// enableRotation: true
|
||||
},
|
||||
enableRepeatAdjust: false,
|
||||
});
|
||||
lodLayer.add(pathEntity);
|
||||
radarLayer.add(pathEntity2);
|
||||
renderTaskInfo[key] = {
|
||||
})
|
||||
console.log('调用添加方法了吗')
|
||||
lodLayer.add(pathEntity)
|
||||
radarLayer.add(pathEntity2)
|
||||
|
||||
// 添加图片
|
||||
|
||||
|
||||
renderTaskInfo[`${info.id}-${info.uavList[0].uavId}`] = {
|
||||
entity: pathEntity,
|
||||
entity2: pathEntity2,
|
||||
picture: {}
|
||||
};
|
||||
info.uavList.forEach(uavItem => {
|
||||
if (uavItem.payloadList && Array.isArray(uavItem.payloadList)) {
|
||||
uavItem.payloadList.forEach(payload => {
|
||||
if (payload.imageList && Array.isArray(payload.imageList)) {
|
||||
}
|
||||
|
||||
info.uavList.forEach(uav => {
|
||||
uav.payloadList.forEach(payload => {
|
||||
payload.imageList.forEach(image => {
|
||||
this.addMarkPicture2(image);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
this.addMarkPicture2(image)
|
||||
})
|
||||
})
|
||||
})
|
||||
// 适当扩大视角范围
|
||||
let lonDiff = (maxLon - minLon) / 2;
|
||||
let latDiff = (maxLat - minLat) / 2;
|
||||
minLon -= lonDiff;
|
||||
maxLon += lonDiff;
|
||||
minLat -= latDiff;
|
||||
maxLat += latDiff;
|
||||
let lonDiff = (maxLon - minLon) / 2
|
||||
let latDiff = (maxLat - minLat) / 2
|
||||
minLon -= lonDiff
|
||||
maxLon += lonDiff
|
||||
minLat -= latDiff
|
||||
maxLat += latDiff
|
||||
|
||||
let boundingPosition = [
|
||||
DT.Cesium.Cartesian3.fromDegrees(minLon, minLat),
|
||||
DT.Cesium.Cartesian3.fromDegrees(maxLon, minLat),
|
||||
DT.Cesium.Cartesian3.fromDegrees(minLon, maxLat),
|
||||
DT.Cesium.Cartesian3.fromDegrees(maxLon, minLat),
|
||||
DT.Cesium.Cartesian3.fromDegrees(maxLon, maxLat),
|
||||
];
|
||||
viewer.cesiumViewer.camera.flyToBoundingSphere(DT.Cesium.BoundingSphere.fromPoints(boundingPosition), { duration: 0.1 });
|
||||
]
|
||||
// console.log('最小最大', minLon, maxLon, minLat, maxLat)
|
||||
viewer.cesiumViewer.camera.flyToBoundingSphere(DT.Cesium.BoundingSphere.fromPoints(boundingPosition), { duration: 0.1 })
|
||||
},
|
||||
removeJobLine(jobId, uavId) {
|
||||
let load = renderTaskInfo[`${jobId}-${uavId}`]
|
||||
@ -2642,7 +2633,7 @@ export default {
|
||||
stompClientInstance = stompClient
|
||||
},
|
||||
handleWebsocketGmti(info) {
|
||||
console.log('Gmti信息', JSON.parse(info.body))
|
||||
console.log('Gmti信息', info.body)
|
||||
},
|
||||
handleWebsocketStatus(info) {
|
||||
console.log('SAR状态信息', info.body)
|
||||
@ -2855,11 +2846,9 @@ export default {
|
||||
// }));
|
||||
// if (this.tempAdd) return
|
||||
// this.tempAdd = true
|
||||
console.log(data, renderTaskInfo, 'tupiantupian');
|
||||
|
||||
let id = `${data.jobId}-${data.uavId}`
|
||||
// let target = renderTaskInfo[id]
|
||||
// if (target) {
|
||||
let target = renderTaskInfo[id]
|
||||
if (target) {
|
||||
let cby_bg_data = [
|
||||
data.left1Lon, data.left1Lat,
|
||||
data.left2Lon, data.left2Lat,
|
||||
@ -2870,11 +2859,14 @@ export default {
|
||||
id: `${data.jobId}-${data.uavId}~${data.fileId}-picture`,
|
||||
name: '背景',
|
||||
polygon: {
|
||||
// hierarchy: DT.Cesium.Cartesian3.fromDegreesArrayHeights(cby_bg_data),
|
||||
hierarchy: DT.Cesium.Cartesian3.fromDegreesArray(cby_bg_data),
|
||||
perPositionHeight: true,
|
||||
material: new DT.Cesium.ImageMaterialProperty({
|
||||
image: window.config.imagePath + data.relativePath,
|
||||
}),
|
||||
// image: process.env.BASE_URL + 'static/img/ttt.tif',
|
||||
// image: process.env.BASE_URL + 'static/img/pic.png',
|
||||
}),//new Cesium.Color(0.29, 0.85, 0.89, 0.5), //Cesium.Color.PALETURQUOISE.withAlpha(0.5),
|
||||
outline: true,
|
||||
outlineColor: DT.Cesium.Color.WHITE,
|
||||
outlineWidth: 2, //很多电脑当宽度>1时,没用
|
||||
@ -2919,11 +2911,11 @@ export default {
|
||||
markLineArr.push(markLine)
|
||||
})
|
||||
}
|
||||
// target.picture[`${data.fileId}-picture`] = {
|
||||
// pictureEntity: entity,
|
||||
// markArr: markLineArr
|
||||
// }
|
||||
// }
|
||||
target.picture[`${data.fileId}-picture`] = {
|
||||
pictureEntity: entity,
|
||||
markArr: markLineArr
|
||||
}
|
||||
}
|
||||
},
|
||||
addPictureHandle() {
|
||||
console.log('双击事件执行了吗', new Date().getTime())
|
||||
@ -3082,10 +3074,6 @@ export default {
|
||||
//#endregion
|
||||
// 打开状态和波形信息展示
|
||||
openSarStatusDetail(data) {
|
||||
this.detailUav.chart.data[0].data = []
|
||||
this.detailUav.chart.data[1].data = []
|
||||
this.detailUav.chart.data[2].data = []
|
||||
this.detailUav.chart.data[3].data = []
|
||||
this.detailUav.id = data.id
|
||||
this.detailUav.visible = true
|
||||
},
|
||||
|
||||
@ -57,10 +57,9 @@
|
||||
box-sizing: border-box;
|
||||
border-radius: 6px;
|
||||
background-color: $--color-black-3-alpha;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
background-color: rgba(23, 69, 46, .4);
|
||||
background-color: $--color-black-3;
|
||||
}
|
||||
|
||||
>p {
|
||||
@ -99,14 +98,6 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.is-active {
|
||||
width: calc(100% - 10px);
|
||||
margin-left: 5px;
|
||||
padding: 8px 15px 8px 10px;
|
||||
background-color: rgba(23, 69, 46, .7) !important;
|
||||
box-shadow: 0 0 15px 3px rgba(23, 69, 46, 0.5)
|
||||
}
|
||||
}
|
||||
|
||||
.task-list__large {
|
||||
|
||||
@ -72,10 +72,7 @@
|
||||
<div
|
||||
v-for="(item, index) in taskList.data"
|
||||
:key="item.id"
|
||||
:class="{
|
||||
'task-item': true,
|
||||
'is-active': detailUav.id === item.id,
|
||||
}"
|
||||
class="task-item"
|
||||
@click="openSarStatusDetail(item)"
|
||||
>
|
||||
<div class="top-part">
|
||||
@ -117,12 +114,12 @@
|
||||
<p>无人机名称: {{ item.uav }}</p>
|
||||
<p>雷达名称: {{ item.sar }}</p>
|
||||
<p>开始时间:{{ item.beginTime }}</p>
|
||||
<!-- <div
|
||||
<div
|
||||
class="task-info"
|
||||
:style="{ color: dealStatusColor(item.statusName) }"
|
||||
>
|
||||
{{ item.statusName }}
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<div v-else class="task-empty">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user