Compare commits

..

3 Commits

Author SHA1 Message Date
吴延福 f0de2e4001 feat:新增火灾窗口 2023-05-18 14:31:35 +08:00
吴延福 adb9380b5f Merge commit '43cf540d8f1fc5390d86159da463c4d80094e03c' 2023-05-18 14:06:40 +08:00
吴延福 3edba6f3a9 feat:新增火焰交互 2023-05-18 14:06:30 +08:00
5 changed files with 88 additions and 750 deletions

View File

@ -359,7 +359,7 @@ export default [
}, },
{ {
id: '2', id: '2',
name: "path1", name: "path2",
from: '南大门东区', from: '南大门东区',
to: '北大门西区', to: '北大门西区',
keyFrames: [ keyFrames: [
@ -1022,731 +1022,6 @@ export default [
-85.222366, -85.222366,
0 0
] ]
}, {
index: 49,
time: 85,
location: [
11660734.78875,
3692518.581445,
4.583296,
],
rotation: [
-19.064287,
-94.857338,
-0.000002
]
}, {
index: 50,
time: 87,
location: [
11660731.608125,
3692521.408389,
4.19794,
],
rotation: [
-11.430368,
0.032557,
0
]
}, {
index: 51,
time: 89,
location: [
11660796.207813,
3692521.746172,
4.355956,
],
rotation: [
-12.481678,
1.647933,
0
]
}, {
index: 52,
time: 91,
location: [
11660798.153438,
3692518.907139,
4.375615,
],
rotation: [
-12.866511,
-70.376015,
-0.000001
]
}, {
index: 53,
time: 93,
location: [
11660818.690781,
3692555.287178,
4.438305,
],
rotation: [
-14.097762,
-53.407917,
-0.000001
]
}, {
index: 54,
time: 95,
location: [
11660817.543281,
3692557.167861,
4.405179,
],
rotation: [
-13.446374,
-8.980751,
0
]
}, {
index: 55,
time: 97,
location: [
11660846.340156,
3692560.796963,
4.405179,
],
rotation: [
-13.446374,
-6.356042,
0
]
}, {
index: 56,
time: 99,
location: [
11660865.155625,
3692562.920693,
4.396265,
],
rotation: [
-13.271392,
-5.209634,
0
]
}, {
index: 57,
time: 101,
location: [
11660883.141094,
3692564.998096,
4.275323,
],
rotation: [
-10.90902,
-5.979043,
0
]
}, {
index: 58,
time: 103,
location: [
11660904.009531,
3692567.505508,
4.329296,
],
rotation: [
-11.960692,
-8.054959,
0
]
}, {
index: 59,
time: 105,
location: [
11660924.337969,
3692570.467119,
4.284409,
],
rotation: [
-11.085779,
-7.529962,
0
]
}, {
index: 60,
time: 107,
location: [
11660951.573125,
3692575.00292,
4.489614,
],
rotation: [
-15.110427,
-11.820071,
0
]
}, {
index: 61,
time: 109,
location: [
11660954.49875,
3692572.695898,
4.469205,
],
rotation: [
-14.707063,
-91.793129,
0.000001
]
}, {
index: 62,
time: 111,
location: [
11660954.701406,
3692594.211387,
4.601409,
],
rotation: [
-17.334221,
-88.889374,
0
]
}, {
index: 63,
time: 113,
location: [
11660951.841094,
3692596.662344,
4.28027,
],
rotation: [
-11.005238,
-8.047399,
0
]
}, {
index: 64,
time: 115,
location: [
11660972.906406,
3692600.023467,
4.28027,
],
rotation: [
-11.005238,
-9.447259,
0
]
}, {
index: 65,
time: 117,
location: [
11660999.163125,
3692604.355869,
4.271273,
],
rotation: [
-10.830241,
-8.572308,
0
]
}, {
index: 66,
time: 119,
location: [
11661023.754844,
3692608.011836,
4.325169,
],
rotation: [
-11.880157,
-8.359697,
0
]
}, {
index: 67,
time: 121,
location: [
11661053.624375,
3692610.316602,
4.360987,
],
rotation: [
-12.580115,
-1.729896,
0
]
}, {
index: 68,
time: 123,
location: [
11661054.776875,
3692612.768164,
4.224973,
],
rotation: [
-9.931258,
53.101627,
0
]
}, {
index: 69,
time: 125,
location: [
11661063.460938,
3692598.714424,
4.17374,
],
rotation: [
-8.939344,
58.513809,
0
]
}, {
index: 70,
time: 127,
location: [
11661064.179531,
3692599.031699,
3.237215,
],
rotation: [
9.020405,
73.748268,
0
]
}, {
index: 71,
time: 129,
location: [
11661062.0225,
3692596.353135,
3.941322,
],
rotation: [
-4.468801,
3.180504,
0
]
}, {
index: 72,
time: 131,
location: [
11661091.407813,
3692593.350918,
4.217006,
],
rotation: [
-9.776814,
6.136602,
0
]
}, {
index: 73,
time: 133,
location: [
11661095.174219,
3692595.860937,
4.28173,
],
rotation: [
-11.033651,
106.309143,
0
]
}, {
index: 74,
time: 135,
location: [
11661089.629844,
3692558.067207,
4.254727,
],
rotation: [
-10.508682,
97.482788,
0
]
}, {
index: 75,
time: 137,
location: [
11661086.035938,
3692535.89249,
4.326624,
],
rotation: [
-11.908544,
99.932549,
0
]
}, {
index: 76,
time: 139,
location: [
11661081.094375,
3692510.536172,
4.426351,
],
rotation: [
-13.862496,
101.562889,
0
]
}, {
index: 77,
time: 141,
location: [
11661076.256094,
3692486.443496,
4.487267,
],
rotation: [
-15.064009,
104.566498,
-0.000001
]
}, {
index: 78,
time: 143,
location: [
11661078.364844,
3692484.411118,
4.303236,
],
rotation: [
-11.452423,
164.789841,
0
]
}, {
index: 79,
time: 145,
location: [
11661059.790313,
3692477.794575,
3.60697,
],
rotation: [
1.921749,
158.873383,
0
]
}, {
index: 80,
time: 147,
location: [
11661037.417813,
3692469.224226,
3.061021,
],
rotation: [
12.445895,
159.398361,
0
]
}, {
index: 81,
time: 149,
location: [
11661017.823125,
3692463.168918,
3.878404,
],
rotation: [
-3.264393,
164.023346,
0
]
}, {
index: 82,
time: 151,
location: [
11660999.890156,
3692457.942217,
3.924119,
],
rotation: [
-4.139313,
171.76767,
0
]
}, {
index: 83,
time: 153,
location: [
11660982.155313,
3692456.284872,
3.969783,
],
rotation: [
-5.014233,
174.125351,
0
]
}, {
index: 84,
time: 155,
location: [
11660960.698438,
3692454.590192,
4.069996,
],
rotation: [
-6.938707,
172.951157,
0
]
}, {
index: 85,
time: 157,
location: [
11660899.888125,
3692446.258265,
4.151759,
],
rotation: [
-8.514623,
172.06044,
0
]
}, {
index: 86,
time: 159,
location: [
11660879.607188,
3692444.268636,
3.230258,
],
rotation: [
9.15496,
175.737946,
0
]
}, {
index: 87,
time: 161,
location: [
11660846.482656,
3692442.68963,
4.113892,
],
rotation: [
-7.784039,
178.896408,
0
]
}, {
index: 88,
time: 163,
location: [
11660834.478906,
3692443.871767,
4.047582,
],
rotation: [
-6.507667,
-151.509293,
0
]
}, {
index: 89,
time: 165,
location: [
11660816.059219,
3692456.055197,
4.095405,
],
rotation: [
-7.427824,
-157.498718,
0
]
}, {
index: 90,
time: 167,
location: [
11660815.717187,
3692458.37094,
2.426258,
],
rotation: [
25.562426,
153.929871,
0
]
}, {
index: 91,
time: 169,
location: [
11660816.025313,
3692455.919043,
3.793701,
],
rotation: [
-1.645147,
-154.846039,
0
]
}, {
index: 92,
time: 171,
location: [
11660777.832656,
3692477.53009,
4.131556,
],
rotation: [
-8.124674,
-148.904724,
0
]
}, {
index: 93,
time: 173,
location: [
11660775.090312,
3692476.081689,
3.96561,
],
rotation: [
-4.934237,
-86.178841,
0
]
}, {
index: 94,
time: 175,
location: [
11660774.857344,
3692517.629702,
4.228715,
],
rotation: [
-10.003822,
-92.133919,
0
]
}, {
index: 95,
time: 177,
location: [
11660773.769844,
3692537.814248,
4.243625,
],
rotation: [
-10.293095,
-93.866158,
0
]
}, {
index: 96,
time: 179,
location: [
11660776.549531,
3692540.83748,
4.055328,
],
rotation: [
-6.656593,
178.495483,
0
]
}, {
index: 97,
time: 181,
location: [
11660740.068125,
3692543.436348,
3.886352,
],
rotation: [
-5.411852,
-176.884277,
0
]
}, {
index: 98,
time: 183,
location: [
11660737.730469,
3692540.67501,
3.795086,
],
rotation: [
-3.663242,
-102.431671,
0
]
}, {
index: 99,
time: 185,
location: [
11660729.943594,
3692569.001553,
3.925764,
],
rotation: [
-6.168426,
-106.484154,
0
]
}, {
index: 100,
time: 187,
location: [
11660732.056406,
3692571.431123,
3.84643,
],
rotation: [
-4.646441,
-171.722687,
0
]
}, {
index: 101,
time: 189,
location: [
11660690.389375,
3692580.014434,
4.013302,
],
rotation: [
-7.852941,
-167.877472,
0
]
}, {
index: 102,
time: 191,
location: [
11660687.914531,
3692577.692637,
3.972266,
],
rotation: [
-7.062524,
-98.320679,
0
]
}, {
index: 103,
time: 193,
location: [
11660684.290625,
3692602.504551,
3.972266,
],
rotation: [
-7.062524,
-98.320663,
0
]
}] }]
} }
] ]

View File

@ -12,27 +12,30 @@ export const treeData = [
id: Mock.mock("@id"), id: Mock.mock("@id"),
rate: 1, rate: 1,
title: '顶层沸溢火', title: '顶层沸溢火',
point: '1', point: 1,
position: [ position: [
11660769.28, 11660769.28,
3692443.52, 3692443.52,
67.69076171875 67.69076171875
] ],
content: '模拟在密闭建筑物内发生火灾,消防员在高温、浓烟、高噪音的情况下进行火情侦察,寻找被困人员,救出被困人员,灭火抢险等战斗',
}, { }, {
id: Mock.mock("@id"), id: Mock.mock("@id"),
rate: 2, rate: 2,
title: '顶层沸溢火', title: '顶层沸溢火',
point: '1', point: 1,
position: [ position: [
11660674.56, 11660674.56,
3692452.8000000003, 3692452.8000000003,
21.751074218750002 21.751074218750002
] ],
content: '模拟在密闭建筑物内发生火灾,消防员在高温、浓烟、高噪音的情况下进行火情侦察,寻找被困人员,救出被困人员,灭火抢险等战斗',
mainPoint:"模拟在密闭建筑物内发生火灾,消防员在高温、浓烟、高噪音的情况下进行火情侦察,寻找被困人员,救出被困人员,灭火抢险等战斗"
}, { }, {
id: Mock.mock("@id"), id: Mock.mock("@id"),
rate: 4, rate: 4,
title: '顶层沸溢火', title: '顶层沸溢火',
point: '3', point:3,
position: [[ position: [[
11660930.56, 11660930.56,
3692587.52, 3692587.52,
@ -45,33 +48,34 @@ export const treeData = [
11660860.16, 11660860.16,
3692580.8000000003, 3692580.8000000003,
21.94720703125 21.94720703125
]] ]],
content: '模拟在密闭建筑物内发生火灾,消防员在高温、浓烟、高噪音的情况下进行火情侦察,寻找被困人员,救出被困人员,灭火抢险等战斗',
mainPoint:"模拟在密闭建筑物内发生火灾,消防员在高温、浓烟、高噪音的情况下进行火情侦察,寻找被困人员,救出被困人员,灭火抢险等战斗"
}, { }, {
id: Mock.mock("@id"), id: Mock.mock("@id"),
rate: 3, rate: 3,
title: '罐体火灾', title: '罐体火灾',
point: '5', point: 1,
position: [ position: [
11661059.84, 11661059.84,
3692514.24, 3692514.24,
13.2171923828125 13.2171923828125
] ],
content: '模拟在密闭建筑物内发生火灾,消防员在高温、浓烟、高噪音的情况下进行火情侦察,寻找被困人员,救出被困人员,灭火抢险等战斗',
mainPoint:"模拟在密闭建筑物内发生火灾,消防员在高温、浓烟、高噪音的情况下进行火情侦察,寻找被困人员,救出被困人员,灭火抢险等战斗"
}, { }, {
id: Mock.mock("@id"), id: Mock.mock("@id"),
rate: 4, rate: 4,
title: '油罐车爆炸', title: '油罐车爆炸',
point: '5', point: 1,
position: [ position: [
11661043.200000001, 11661045.76,
3692599.68, 3692601.6,
9.2683056640625 2.3062506103515625
] ],
}, { content: '模拟在密闭建筑物内发生火灾,消防员在高温、浓烟、高噪音的情况下进行火情侦察,寻找被困人员,救出被困人员,灭火抢险等战斗',
id: Mock.mock("@id"), mainPoint:"模拟在密闭建筑物内发生火灾,消防员在高温、浓烟、高噪音的情况下进行火情侦察,寻找被困人员,救出被困人员,灭火抢险等战斗"
rate: 2, }
title: '顶层沸溢火',
point: '5',
},
] ]
}, },

View File

@ -1,7 +1,7 @@
import MarkerOption from '@/models/marker.option.js' import MarkerOption from '@/models/marker.option.js'
import PolygonOption from '@/models/polygon.option.js'; import PolygonOption from '@/models/polygon.option.js';
import * as acapi from '../../public/ac.min.js' import * as acapi from '../assets/ac.min.js'
// import acapi from 'ac.min.js' // import acapi from 'ac.min.js'
export default class PlayerUtils{ export default class PlayerUtils{
public api:any; public api:any;

View File

@ -89,8 +89,13 @@ export default class BaseComponent extends Vue {
public async addMarker(layer,trackCustom?){ public async addMarker(layer,trackCustom?){
if(!layer.ids.length){ if(!layer.ids.length){
const options = layer.data.map((item,index)=>{ const options = layer.data.map((item,index)=>{
return { const option = {} as any
if(item.hasPop){
option.popupURL = "http://192.168.1.20:8080/#/popup?"+new URLSearchParams(layer.popData)
}
return Object.assign(option,{
id:item.id, id:item.id,
groupId:layer.value, groupId:layer.value,
coordinate:item.position, coordinate:item.position,
@ -98,12 +103,15 @@ export default class BaseComponent extends Vue {
displayMode:2, displayMode:2,
imagePath:layer.url || layer.urls[item.type], imagePath:layer.url || layer.urls[item.type],
imageSize:[48,48], imageSize:[48,48],
// popupURL:"http://192.168.1.20:8080/#/popup?"+new URLSearchParams(item), popupSize:[480,388],
popupOffset:[600,0],
autoHidePopupWindow:false,
// popupURL:,
lineSize:[2,40], lineSize:[2,40],
useTextAnimation: false, useTextAnimation: false,
lineOffset:[24,0], lineOffset:[24,0],
autoHeight:true, autoHeight:true,
} })
}) })
this.player.api.marker.add(options,(data)=>{ this.player.api.marker.add(options,(data)=>{
if(data.resultMessage==="OK"){ if(data.resultMessage==="OK"){
@ -119,12 +127,22 @@ export default class BaseComponent extends Vue {
}); });
} }
layer.ids = options.map(item=>item.id); layer.ids = options.map(item=>item.id);
if(layer.showPop){
this.player.api.marker.showAllPopupWindow()
}
} }
}) })
}else{ }else{
if(layer.selected){ if(layer.selected){
if(layer.showPop){
this.player.api.marker.showAllPopupWindow()
}
this.player.api.marker.show(layer.ids) this.player.api.marker.show(layer.ids)
}else{ }else{
if(layer.showPop){
this.player.api.marker.hideAllPopupWindow()
}
this.player.api.marker.hide(layer.ids) this.player.api.marker.hide(layer.ids)
} }
} }
@ -147,7 +165,6 @@ export default class BaseComponent extends Vue {
this.player.api.customObject.add(options,(data)=>{ this.player.api.customObject.add(options,(data)=>{
if(data.resultMessage==="OK"){ if(data.resultMessage==="OK"){
if(needMarker){ if(needMarker){
console.log(data)
this.addMarker(layer,needMarker) this.addMarker(layer,needMarker)
}else{ }else{
layer.ids = options.map(item=>item.id) layer.ids = options.map(item=>item.id)
@ -156,8 +173,14 @@ export default class BaseComponent extends Vue {
}) })
}else{ }else{
if(layer.selected){ if(layer.selected){
if(needMarker){
this.addMarker(layer,needMarker)
}
this.player.api.customObject.show(layer.ids) this.player.api.customObject.show(layer.ids)
}else{ }else{
if(needMarker){
this.addMarker(layer,needMarker)
}
this.player.api.customObject.hide(layer.ids) this.player.api.customObject.hide(layer.ids)
} }
} }

View File

@ -39,6 +39,8 @@ export default class OverViewComponent extends BaseComponent {
// 是否隐藏除地图外所有板块 // 是否隐藏除地图外所有板块
public hideAllPanel = false; public hideAllPanel = false;
public viewRightData = {}; public viewRightData = {};
public viewLayer = {} as any;
async created(){ async created(){
// this.currentLayers = this.getCurrentLayers(); // this.currentLayers = this.getCurrentLayers();
} }
@ -68,6 +70,8 @@ export default class OverViewComponent extends BaseComponent {
this.player.api.heatmap.clear(); this.player.api.heatmap.clear();
this.currentLayers = this.getCurrentLayers(); this.currentLayers = this.getCurrentLayers();
this.player.api.cameraTour.add(this.tourPathData) this.player.api.cameraTour.add(this.tourPathData)
// this.tourPathData.forEach((item)=>{
// })
} }
@ -176,6 +180,37 @@ export default class OverViewComponent extends BaseComponent {
} }
//右侧详情点击事件 //右侧详情点击事件
showDetail(item){ showDetail(item){
if(!this.viewLayer[item.id]){
const data = [] as any;
if(item.point>1){
for(let i = 0;i<item.point;i++){
data.push({
id:item.id+'_'+i,
position:item.position[i],
hasPop:i===1,
})
}
}else{
data.push({
id:item.id,
position:item.position,
hasPop:true
})
}
this.viewLayer[item.id] = {
type:"moveMarker",
assetPath:"/JC_CustomAssets/ParticleLibrary/Exhibition/火/火焰_10",
value:"fire",
popData:item,
showPop:true,
scale:[3,3,3],
urls:[],
ids:[],
data,
}
}
this.addCustom(this.viewLayer[item.id],true);
console.log('右侧详情点击事件',item) console.log('右侧详情点击事件',item)
} }
mounted() { mounted() {
@ -210,6 +245,7 @@ export default class OverViewComponent extends BaseComponent {
//进入路线导览 //进入路线导览
playView(item){ playView(item){
this.toggleAllPanel() this.toggleAllPanel()
console.log(item)
this.player.api.cameraTour.play(item.id) this.player.api.cameraTour.play(item.id)
} }