cmt地图更新
parent
3d3ffa9d5f
commit
fb7adadba6
|
@ -5,7 +5,7 @@
|
|||
"author": "",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 192.168.151.43",
|
||||
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js --host 192.168.0.247",
|
||||
"start": "npm run dev",
|
||||
"unit": "jest --config test/unit/jest.conf.js --coverage",
|
||||
"e2e": "node test/e2e/runner.js",
|
||||
|
@ -27,7 +27,7 @@
|
|||
"md5": "^2.3.0",
|
||||
"moment": "^2.29.3",
|
||||
"motion": "^10.16.4",
|
||||
"mqtt": "^4.2.1",
|
||||
"mqtt": "4.2.1",
|
||||
"nprogress": "^0.2.0",
|
||||
"relation-graph": "^1.1.0",
|
||||
"v-viewer": "^1.6.3",
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
<breakgroundCfdD v-if="type === 'BREAKGROUND' && corpInfoId === '635917e77af8461691d5da5507b56347'" :id="id" :type="type"/>
|
||||
<hoistingCfdD v-if="type === 'HOISTING' && corpInfoId === '635917e77af8461691d5da5507b56347'" :id="id" :type="type"/>
|
||||
<peoplePositionCfdD v-if="type === 'peoplePosition'" :id="id" :type="type" :infoname="infoname"/>
|
||||
<peoplePositionCmt v-if="type === 'peoplePosition00005'" :id="id" :type="type" :infoname="infoname"/>
|
||||
<peoplePositionCmt v-if="type === 'peoplePositionCmt'" :id="id" :type="type" :infoname="infoname"/>
|
||||
<carPositionCfdD v-if="type === 'carPosition'" :id="id" :type="type" :infoname="infoname"/>
|
||||
<!--曹妃甸东 八项作业 曹实业详细页面 end-->
|
||||
<peoplePositionNine v-if="type === 'peoplePositionNine'" :id="id" :type="type" :infoname="infoname"/>
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
<div class="level-title titles">
|
||||
<h1>八项作业</h1>
|
||||
</div>
|
||||
|
||||
<tr>
|
||||
<td colspan="4" style="padding: 0;">
|
||||
<table class="table-vi">
|
||||
|
|
|
@ -290,7 +290,9 @@ import axios from 'axios'
|
|||
import md5 from 'md5'
|
||||
|
||||
const imosPlayer = window.imosPlayer
|
||||
|
||||
var PI = 3.1415926535897932384626
|
||||
var a = 6378245.0 // 卫星椭球坐标投影到平面地图坐标系的投影因子。
|
||||
var ee = 0.00669342162296594323 // 椭球的偏心率。//判断是否在国内,在中国国内的经纬度才需要做偏移
|
||||
const iframeObj = null
|
||||
export default {
|
||||
components: {
|
||||
|
@ -1084,6 +1086,7 @@ export default {
|
|||
],
|
||||
pointBoxNine: [],
|
||||
ninePerLocArr: [],
|
||||
cmtPerArr: [],
|
||||
/* 曹妃甸使用参数结束*/
|
||||
|
||||
/* 一公司人员定位*/
|
||||
|
@ -1404,8 +1407,18 @@ export default {
|
|||
this.dialog.infoname = infoname
|
||||
return
|
||||
}
|
||||
if (this.gangkouActive === '00005' && point_id.substring(0, 1) !== '1') {
|
||||
// if (this.gangkouActive === '00004' && point_type.indexOf('标记点') !== -1 && point_id.substring(0, 1) === '0' || point_id.substring(0, 1) === '5') {
|
||||
if (this.gangkouActive === '00005' && point_type === 'peoplePositionCmt') {
|
||||
const { label, point_type, id, corpInfoId, name, infoname } = pick.id._monitoItems.data
|
||||
this.dialog.visible = true
|
||||
this.dialog.title = label
|
||||
this.dialog.type = point_type
|
||||
this.dialog.id = id
|
||||
this.dialog.name = name
|
||||
this.dialog.infoname = infoname
|
||||
this.dialog.corpInfoId = corpInfoId
|
||||
}else if (this.gangkouActive === '00005' && point_id.substring(0, 1) !== '1' && point_id !== '6aa255d41602497fa0f934a822820df4') {
|
||||
console.log(point_type)
|
||||
console.log(point_id)
|
||||
const { label, point_type, data_id, infoname, name, code } = pick.id._monitoItems.data
|
||||
this.dialog.visible = true
|
||||
this.dialog.title = label
|
||||
|
@ -1414,7 +1427,6 @@ export default {
|
|||
this.dialog.name = name
|
||||
this.dialog.id = point_type.substring(3) === 'CAMERA' ? code : point_type.substring(3) === 'platcamera' ? code : data_id
|
||||
this.dialog.infoname = infoname
|
||||
console.log(this.dialog)
|
||||
return
|
||||
}
|
||||
if (point_type.indexOf('标记点') !== -1) {
|
||||
|
@ -1937,6 +1949,21 @@ export default {
|
|||
this.clearMqttPoint('czksperson')
|
||||
}
|
||||
}
|
||||
if (this.gangkouActive === '00005' && urlType === 'peoplePosition') {
|
||||
if (this.timer) {
|
||||
clearInterval(this.timer)
|
||||
}
|
||||
this.bottomOptionsList[pindex].list[index].check = false
|
||||
this.clearCmtMqttPoint('person')
|
||||
if (this.fwebsocket && this.fwebsocket.url) {
|
||||
this.perLocArr = []
|
||||
this.cmtPerArr = []
|
||||
this.ninePerLocArr = []
|
||||
this.carLocArr = []
|
||||
this.fwebsocket.close()
|
||||
this.fwebsocket = {}
|
||||
}
|
||||
}
|
||||
// 人员定位关闭实时获取定位websocket 并关闭人员对比定时器(曹妃甸使用)
|
||||
if (this.gangkouActive === '00004' && urlType === 'peoplePosition') {
|
||||
// if (this.fwebsocket) {
|
||||
|
@ -1983,6 +2010,10 @@ export default {
|
|||
this.czksPeoplePosition()
|
||||
return
|
||||
}
|
||||
if (this.gangkouActive === '00005' && urlType === 'peoplePosition') {
|
||||
this.cmtPosition()
|
||||
return
|
||||
}
|
||||
if (this.gangkouActive === '00003' && this.CORP_INFO_ID === '035958e685cf4850bc40151c5e0617a6' && urlType === 'peoplePosition') {
|
||||
!this.connecting ? this.createConnection(this.CORP_INFO_ID) : this.doSubscribe()
|
||||
} else {
|
||||
|
@ -2088,6 +2119,7 @@ export default {
|
|||
ry_drag.getPosition(this.perLocArr[i])
|
||||
} else {
|
||||
ry_drag.addEntity(this.perLocArr[i])
|
||||
|
||||
this.mqttPoint['cfdrydw' + this.perLocArr[i].cardNo] = this.perLocArr[i].cardNo
|
||||
}
|
||||
}
|
||||
|
@ -2263,6 +2295,115 @@ export default {
|
|||
this.connecting = false
|
||||
this.subscribeSuccess = false
|
||||
},
|
||||
// 曹煤炭人员定位websocket
|
||||
cmtPosition() {
|
||||
const _this = this
|
||||
console.info(config.cmtPositionUrl)
|
||||
if (window.WebSocket) {
|
||||
this.fwebsocket = new WebSocket(encodeURI('ws://' + config.cmtPositionUrl)) // oladress在main.jsp页面定义
|
||||
this.fwebsocket.onopen = () => {
|
||||
console.info('人员定位监听成功')
|
||||
}
|
||||
this.fwebsocket.onerror = function() {
|
||||
console.info('连接失败')
|
||||
}
|
||||
this.fwebsocket.onclose = function() {
|
||||
console.info('onclose')
|
||||
}
|
||||
this.fwebsocket.onmessage = function(message) {
|
||||
const mockData = JSON.parse(message.data)
|
||||
console.log(mockData)
|
||||
|
||||
// 将地图上的点与最新的定位人员点进行对比 删除地图上多的点
|
||||
const cmtPer = _this.cmtPerArr
|
||||
.filter(item => {
|
||||
const index = mockData.findIndex(item1 => {
|
||||
return item.id.toString() === item1.cardno.toString()
|
||||
})
|
||||
return index !== -1
|
||||
})
|
||||
|
||||
// 将地图上剩余的点与最新的定位人员点进行对比 更新地图上已存在的点 新增地图上之前没有的点
|
||||
for (const item of mockData) {
|
||||
const wgs84 = _this.gcj02towgs84(parseFloat(item.longitude), parseFloat(item.latitude))
|
||||
item.longitude = wgs84[0]
|
||||
item.latitude = wgs84[1]
|
||||
const index = cmtPer.findIndex(item1 => {
|
||||
return item1.id.toString() === item.cardno.toString()
|
||||
})
|
||||
|
||||
const pointColor = _this.isPointxyWithinTheArea(_this.pointBox, item.longitude, item.latitude)
|
||||
if (index !== -1) {
|
||||
cmtPer[index].x = item.longitude
|
||||
cmtPer[index].y = item.latitude
|
||||
cmtPer[index].icon_type = 'img4_0' + pointColor
|
||||
ry_drag.getPosition(cmtPer[index])
|
||||
} else {
|
||||
const perLoc = {
|
||||
id: item.cardno,
|
||||
name: item.name,
|
||||
x: item.longitude,
|
||||
y: item.latitude,
|
||||
point_type: 'peoplePositionCmt',
|
||||
icon_type: 'img4_0' + pointColor
|
||||
}
|
||||
cmtPer.push(perLoc)
|
||||
ry_drag.delEntity(perLoc)
|
||||
ry_drag.addEntity(perLoc)
|
||||
var qianzhui = 'person'
|
||||
_this.allOrientationPoint[qianzhui + item.cardno] = item.cardno
|
||||
// qianzhui 前缀是点位的前缀,用于区分不同类型的点(如一公司人员、二公司人员),删除时,可根据点位前缀进行删除点
|
||||
}
|
||||
}
|
||||
// 最后更新ninePerLocArr
|
||||
_this.cmtPerArr = cmtPer
|
||||
}
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
if (this.timer) {
|
||||
clearInterval(this.timer)
|
||||
}
|
||||
if (this.fwebsocket && this.fwebsocket.url) {
|
||||
this.fwebsocket.close()
|
||||
}
|
||||
},
|
||||
out_of_china(lng, lat) {
|
||||
return (lng < 72.004 || lng > 137.8347 || (lat < 0.8293 || lat > 55.8271 || false))
|
||||
},
|
||||
// 转化经度
|
||||
transformlng(lng, lat) {
|
||||
var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng))
|
||||
ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0
|
||||
ret += ((20.0 * Math.sin(lng * PI) + 40.0 * Math.sin((lng / 3.0) * PI)) * 2.0) / 3.0
|
||||
ret += ((150.0 * Math.sin((lng / 12.0) * PI) + 300.0 * Math.sin((lng / 30.0) * PI)) * 2.0) / 3.0
|
||||
return ret
|
||||
},
|
||||
// 转化纬度
|
||||
transformlat(lng, lat) {
|
||||
var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng))
|
||||
ret += ((20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0) / 3.0
|
||||
ret += ((20.0 * Math.sin(lat * PI) + 40.0 * Math.sin((lat / 3.0) * PI)) * 2.0) / 3.0
|
||||
ret += ((160.0 * Math.sin((lat / 12.0) * PI) + 320 * Math.sin((lat * PI) / 30.0)) * 2.0) / 3.0
|
||||
return ret
|
||||
},
|
||||
gcj02towgs84(lng, lat) {
|
||||
if (this.out_of_china(lng, lat)) {
|
||||
return [lng, lat]
|
||||
} else {
|
||||
var dlat = this.transformlat(lng - 105.0, lat - 35.0)
|
||||
var dlng = this.transformlng(lng - 105.0, lat - 35.0)
|
||||
var radlat = lat / 180.0 * PI
|
||||
var magic = Math.sin(radlat)
|
||||
magic = 1 - ee * magic * magic
|
||||
var sqrtmagic = Math.sqrt(magic)
|
||||
dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI)
|
||||
dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI)
|
||||
const mglat = lat + dlat
|
||||
const mglng = lng + dlng
|
||||
return [lng * 2 - mglng, lat * 2 - mglat]
|
||||
}
|
||||
},
|
||||
// 沧州矿石人员定位
|
||||
czksPeoplePosition() {
|
||||
const _this = this
|
||||
|
@ -2416,6 +2557,14 @@ export default {
|
|||
delete this.mqttPoint[key]
|
||||
}
|
||||
},
|
||||
// 删除人员定位点
|
||||
clearCmtMqttPoint(prefix) {
|
||||
for (const mqttPointKey in this.allOrientationPoint) {
|
||||
const key = prefix ? prefix + this.allOrientationPoint[mqttPointKey] : mqttPointKey
|
||||
viewer.entities.removeById(this.allOrientationPoint[key])
|
||||
delete this.allOrientationPoint[key]
|
||||
}
|
||||
},
|
||||
// 订阅
|
||||
doSubscribe() {
|
||||
const { topic, qos } = this.subscription
|
||||
|
|
|
@ -291,5 +291,9 @@ export default class DragEntity {
|
|||
this.viewer.entities.add(target)
|
||||
}
|
||||
}
|
||||
|
||||
delEntity(point) {
|
||||
this.viewer.entities.remove(point)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ const config = {
|
|||
weburlNaiwang: 'http://192.168.192.201:8992/', // 附件服务器地址,
|
||||
httpurlNaiwang: 'http://192.168.192.201:8992//qa-prevention-gwj/', // 附件服务器地址,
|
||||
perRealTimeLocUrl: '192.168.210.32:8084/netty/test.io',
|
||||
cmtperRealTimeLocUrl: '192.168.0.247:8899',
|
||||
cmtPositionUrl: '172.16.11.146:8899',
|
||||
cfdfileUrl: 'http://60.2.209.238:8991/file',
|
||||
xfgUrl: 'https://skqhdg.porthebei.com:9006/static/qrcode/views/xgf_hgz/index.html',
|
||||
messageUrl: 'http://192.168.151.56:8082/static/qrcode/views/xgf_hgz/index.html'
|
||||
|
|
Loading…
Reference in New Issue