Merge remote-tracking branch 'origin/liujun-2024-04-12-一公司人员定位' into liujun-2024-04-12-一公司人员定位

pet_li_6.6
liujun 2024-04-16 17:23:06 +08:00
commit 6b631223eb
1 changed files with 72 additions and 53 deletions

View File

@ -1116,8 +1116,8 @@ export default {
}, },
subscription: { subscription: {
// '+' // '+'
// topic: '+/+/+/alarm',
topic: '+/UwbBQ/+/prop', topic: '+/UwbBQ/+/prop',
topic1: '+/+/+/alarm',
qos: 0 qos: 0
}, },
@ -1468,6 +1468,11 @@ export default {
} }
// var cartesian = this.getCatesian3FromPX(movement.position) // var cartesian = this.getCatesian3FromPX(movement.position)
}, Cesium.ScreenSpaceEventType.LEFT_CLICK) }, Cesium.ScreenSpaceEventType.LEFT_CLICK)
viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.RIGHT_DOUBLE_CLICK)
viewer.cesiumWidget.screenSpaceEventHandler.removeInputAction(Cesium.ScreenSpaceEventType.RIGHT_CLICK)
document.addEventListener('contextmenu', function(event) {
event.preventDefault()
})
this.handler.setInputAction(movement => { this.handler.setInputAction(movement => {
const pick = viewer.scene.pick(movement.position) const pick = viewer.scene.pick(movement.position)
if (Cesium.defined(pick) && (pick.id.id)) { if (Cesium.defined(pick) && (pick.id.id)) {
@ -1479,6 +1484,7 @@ export default {
const point_id = pick.id._monitoItems.data.id const point_id = pick.id._monitoItems.data.id
const corpInfoId = pick.id._monitoItems.data.corpInfoId const corpInfoId = pick.id._monitoItems.data.corpInfoId
if (point_type === '标记点peoplePositionOne') { if (point_type === '标记点peoplePositionOne') {
this.removeTrajectory()
this.addTrajectory(point_id, corpInfoId) this.addTrajectory(point_id, corpInfoId)
} }
} else { } else {
@ -1494,22 +1500,24 @@ export default {
corpId: corpInfoId corpId: corpInfoId
} }
).then((data) => { ).then((data) => {
console.log(data.list) if (data.list) {
const positions = [] const positions = []
for (let i = 0; i < data.list.length; i++) { for (let i = 0; i < data.list.length; i++) {
positions.push(Cesium.Cartesian3.fromDegrees(data.list[i].XAxis, data.list[i].YAxis)) positions.push(Cesium.Cartesian3.fromDegrees(data.list[i].XAxis, data.list[i].YAxis))
}
const entity = new Cesium.Entity({
id: 'trajectory',
polyline: { positions, width: 5.0, material: Cesium.Color.RED }
})
const collection = new Cesium.CustomDataSource('trajectoryEntityCollection')
collection.entities.add(entity)
viewer.dataSources.add(collection)
this.trajectoryEntityCollection = collection
} }
const entity = new Cesium.Entity({
id: 'trajectory',
polyline: { positions, width: 5.0, material: Cesium.Color.RED }
})
const collection = new Cesium.CustomDataSource('trajectoryEntityCollection')
collection.entities.add(entity)
viewer.dataSources.add(collection)
this.trajectoryEntityCollection = collection
}) })
}, },
removeTrajectory() { removeTrajectory() {
if (Object.keys(this.trajectoryEntityCollection).length === 0) return
viewer.dataSources.remove(this.trajectoryEntityCollection) viewer.dataSources.remove(this.trajectoryEntityCollection)
this.trajectoryEntityCollection = {} this.trajectoryEntityCollection = {}
}, },
@ -2060,6 +2068,7 @@ export default {
if (this.gangkouActive === '00003' && this.CORP_INFO_ID === '035958e685cf4850bc40151c5e0617a6' && urlType === 'peoplePosition') { if (this.gangkouActive === '00003' && this.CORP_INFO_ID === '035958e685cf4850bc40151c5e0617a6' && urlType === 'peoplePosition') {
this.doUnSubscribe() this.doUnSubscribe()
this.clearMqttPoint('+/UwbBQ/') this.clearMqttPoint('+/UwbBQ/')
this.removeTrajectory()
} }
this.bottomOptionsList[pindex].list[index].check = false this.bottomOptionsList[pindex].list[index].check = false
if (this.gangkouActive === '00004') { if (this.gangkouActive === '00004') {
@ -2578,45 +2587,55 @@ export default {
}, },
mqttMessage(CORP_INFO_ID) { mqttMessage(CORP_INFO_ID) {
this.client.on('message', (topic, message) => { this.client.on('message', (topic, message) => {
// created by liu jun mqtt if (topic.indexOf('UwbBQ') !== -1 && topic.indexOf('prop') !== -1) {
let peopleList = JSON.parse(message) // created by liu jun mqtt
if (!Array.isArray(peopleList)) { let peopleList = JSON.parse(message)
peopleList = [peopleList] if (!Array.isArray(peopleList)) {
} peopleList = [peopleList]
for (let i = 0; i < peopleList.length; i++) {
const item = peopleList[i]
//
// UwbBQidUwbJiZhanid
if (item.productKey !== 'UwbBQ') {
continue
} }
// for (let i = 0; i < peopleList.length; i++) {
const index = this.onePerLocArr.findIndex(item1 => { const item = peopleList[i]
return item1.id.toString() === item.deviceCode.toString() //
}) // UwbBQidUwbJiZhanid
const x = item.properties[2].value if (item.productKey !== 'UwbBQ') {
const y = item.properties[3].value continue
const pointColor = this.isPointxyWithinTheArea(this.pointBox, x, y) }
if (index !== -1) { //
this.onePerLocArr[index].x = x const index = this.onePerLocArr.findIndex(item1 => {
this.onePerLocArr[index].y = y return item1.id.toString() === item.deviceCode.toString()
this.onePerLocArr[index].icon_type = 'img4_0' + pointColor })
ry_drag.getPosition(this.onePerLocArr[index]) const x = item.properties[2].value
} else { const y = item.properties[3].value
const perLoc = { const pointColor = this.isPointxyWithinTheArea(this.pointBox, x, y)
id: item.deviceCode, if (index !== -1) {
x: x, this.onePerLocArr[index].x = x
y: y, this.onePerLocArr[index].y = y
icon_type: 'img4_0' + pointColor, this.onePerLocArr[index].icon_type = 'img4_0' + pointColor
data_id: item.deviceCode, ry_drag.getPosition(this.onePerLocArr[index])
point_type: '标记点peoplePositionOne', } else {
label: '人员定位', const perLoc = {
corpInfoId: CORP_INFO_ID id: item.deviceCode,
x: x,
y: y,
icon_type: 'img4_0' + pointColor,
data_id: item.deviceCode,
point_type: '标记点peoplePositionOne',
label: '人员定位',
corpInfoId: CORP_INFO_ID
}
this.onePerLocArr.push(perLoc)
ry_drag.addEntity(perLoc)
this.mqttPoint[this.subscription.topic.substring(0, this.subscription.topic.lastIndexOf('+')) + item.deviceCode] = item.deviceCode
} }
this.onePerLocArr.push(perLoc)
ry_drag.addEntity(perLoc)
this.mqttPoint[this.subscription.topic.substring(0, this.subscription.topic.lastIndexOf('+')) + item.deviceCode] = item.deviceCode
} }
} else if (topic.indexOf('alarm') !== -1) {
const formatMessage = JSON.parse(message)
this.$notify({
title: '报警信息',
dangerouslyUseHTMLString: true,
message: `部门:${formatMessage.deptName}<br/>类型:${formatMessage.identifierName}`,
type: 'error'
})
} }
}) })
}, },
@ -2638,8 +2657,8 @@ export default {
}, },
// //
doSubscribe() { doSubscribe() {
const { topic, qos } = this.subscription const { topic, topic1, qos } = this.subscription
this.client.subscribe(topic, { qos }, (error, res) => { this.client.subscribe([topic, topic1], { qos }, (error, res) => {
if (error) { if (error) {
console.log('Subscribe to topics error', error) console.log('Subscribe to topics error', error)
return return
@ -2650,8 +2669,8 @@ export default {
}, },
// //
doUnSubscribe() { doUnSubscribe() {
const { topic } = this.subscription const { topic, topic1 } = this.subscription
this.client.unsubscribe(topic, error => { this.client.unsubscribe([topic, topic1], error => {
if (error) { if (error) {
console.log('Subscribe to topics error', error) console.log('Subscribe to topics error', error)
} }