Browse Source

feat: 扶梯直梯导航模式与移动端统一

ShangHai_LongXiang
jiannibang 1 year ago
parent
commit
6cd35ee320
  1. 75
      public/static/qm/MainMap_QM_go.js

75
public/static/qm/MainMap_QM_go.js

@ -204,7 +204,6 @@ var QMUtil = function () {
elevator: null, elevator: null,
straight: null, straight: null,
elevatorDown: null, elevatorDown: null,
seldtFacNo: { type: "", no: "" },
}; };
this.timeObj = { collTime: -1, pathTime: -1 }; this.timeObj = { collTime: -1, pathTime: -1 };
this.sceneGap = { cameraX: 0, cameraY: 220, cameraZ: 220, x: 0, y: 0, z: 0, scale: 0.08 }; //改变地图位置,大小 this.sceneGap = { cameraX: 0, cameraY: 220, cameraZ: 220, x: 0, y: 0, z: 0, scale: 0.08 }; //改变地图位置,大小
@ -1312,7 +1311,7 @@ var MainMap_QM = function (callBack, options) {
this.labelRenderer.domElement.style.top = 0; this.labelRenderer.domElement.style.top = 0;
this.ele.appendChild(this.labelRenderer.domElement); this.ele.appendChild(this.labelRenderer.domElement);
let light = new THREE.AmbientLight(0xffffff, 0.65);
let light = new THREE.AmbientLight(0xffffff, 0.6);
light.name = "light"; light.name = "light";
this.scene.add(light); this.scene.add(light);
@ -1859,11 +1858,7 @@ MainMap_QM.prototype = {
let nP =this.util.pathStateObj.facAllArr[j][h].buildOrder +"_" +this.util.pathStateObj.facAllArr[j][h].floorOrder +"_" + this.util.pathStateObj.facAllArr[j][h].navCode; let nP =this.util.pathStateObj.facAllArr[j][h].buildOrder +"_" +this.util.pathStateObj.facAllArr[j][h].floorOrder +"_" + this.util.pathStateObj.facAllArr[j][h].navCode;
if (this.util.pathStateObj.facAllArr[j][h].facCode == "dt") { if (this.util.pathStateObj.facAllArr[j][h].facCode == "dt") {
ftPathObj[facP][nP] =200000 +2000 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder)-parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); ftPathObj[facP][nP] =200000 +2000 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder)-parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder));
if (this.util.pathStateObj.seldtFacNo.type == "dt" &&this.util.pathStateObj.facAllArr[j][k].no == this.util.pathStateObj.seldtFacNo.no) {
graphPathObj[facP][nP] =2000 +300 *Math.abs(parseInt( this.util.pathStateObj.facAllArr[j][h].floorOrder) - parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder));
} else {
graphPathObj[facP][nP] =5000 +600 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder));
}
graphPathObj[facP][nP] =6000 +1000 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder));
dtPathObj[facP][nP] = 5000 +800 *Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder)-parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); dtPathObj[facP][nP] = 5000 +800 *Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder)-parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder));
basePathObj[facP][nP] = 600 +200 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) - parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder )); basePathObj[facP][nP] = 600 +200 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) - parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder ));
} else if (this.util.pathStateObj.facAllArr[j][h].facCode == "td") { } else if (this.util.pathStateObj.facAllArr[j][h].facCode == "td") {
@ -1873,11 +1868,7 @@ MainMap_QM.prototype = {
basePathObj[facP][nP] = 800 *Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt( this.util.pathStateObj.facAllArr[j][k].floorOrder )); basePathObj[facP][nP] = 800 *Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt( this.util.pathStateObj.facAllArr[j][k].floorOrder ));
} else { } else {
dtPathObj[facP][nP] =200000 +2000 * Math.abs(parseInt( this.util.pathStateObj.facAllArr[j][h].floorOrder) - parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder) ); dtPathObj[facP][nP] =200000 +2000 * Math.abs(parseInt( this.util.pathStateObj.facAllArr[j][h].floorOrder) - parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder) );
if (this.util.pathStateObj.seldtFacNo.type == "ft" &&this.util.pathStateObj.seldtFacNo.no.search(this.util.pathStateObj.facAllArr[j][k].no + ",") != -1) {
graphPathObj[facP][nP] = 2000 + 300 *Math.abs( parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder));
} else {
graphPathObj[facP][nP] = 5000 +600 * Math.abs( parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder) );
}
graphPathObj[facP][nP] = 7000 * Math.abs( parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder) );
ftPathObj[facP][nP] = 5000 + 800 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); ftPathObj[facP][nP] = 5000 + 800 * Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder) -parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder));
basePathObj[facP][nP] = 100 + 400 *Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder)-parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder)); basePathObj[facP][nP] = 100 + 400 *Math.abs(parseInt(this.util.pathStateObj.facAllArr[j][h].floorOrder)-parseInt(this.util.pathStateObj.facAllArr[j][k].floorOrder));
} }
@ -2184,66 +2175,6 @@ MainMap_QM.prototype = {
this.util.pathStateObj.basePath += "},"; this.util.pathStateObj.basePath += "},";
} }
} }
let mindt = 10000, minupft = -1, mindownft = -1, seldtNo, seldownftNo, selupftNo;
if (buildOrder == this.util.deviceObj.build &&floorOrder == this.util.deviceObj.floor &&parseInt(this.util.deviceObj.node) >= 0) {
if (pathData &&!this.util.deviceObj.xaxis &&pathData.nodes.length > parseInt(this.util.deviceObj.node) && parseInt(this.util.deviceObj.node) > 0 ) {
this.util.deviceObj.xaxis = pathData.nodes[parseInt(this.util.deviceObj.node)].x;
this.util.deviceObj.yaxis = pathData.nodes[parseInt(this.util.deviceObj.node)].y;
}
//获取本楼层最近的电梯
for (let n = 0; n < mapDataA.stairs.length; n++) {
if ( mapDataA.stairs[n].state && mapDataA.stairs[n].no != "" && parseInt(mapDataA.stairs[n].navCode) > 0 ) {
let ms = Math.abs( parseInt(mapDataA.stairs[n].x) - parseInt(this.util.deviceObj.xaxis) ) + Math.abs( parseInt(mapDataA.stairs[n].y) - parseInt(this.util.deviceObj.yaxis) );
if ( mindt > ms && (mapDataA.stairs[n].facCode == "ft" ||
mapDataA.stairs[n].facCode == "upft" ||
mapDataA.stairs[n].facCode == "downft" ||
mapDataA.stairs[n].facCode == "dt")
) {
mindt = ms;
let fac = mapDataA.stairs[n].facCode == "dt" ? "dt" : "ft";
this.util.pathStateObj.seldtFacNo.type = fac;
if (mapDataA.stairs[n].facCode == "dt") {
seldtNo = mapDataA.stairs[n].no;
}
}
}
}
if (this.util.pathStateObj.seldtFacNo.type == "dt") {
this.util.pathStateObj.seldtFacNo.no = seldtNo;
} else {
for (let t = 0; t < this.util.allMap[buildOrder].buildArr.length; t++) {
let mapData = this.util.allMap[buildOrder].buildArr[t].mapData;
minupft = 100000;
mindownft = 100000;
selupftNo = "";
seldownftNo = "";
for (let h = 0; h < mapData.stairs.length; h++) {
if (mapData.stairs[h].state && mapData.stairs[h].no != "" && parseInt(mapData.stairs[h].navCode) > 0) {
let ms = Math.abs(parseInt(mapData.stairs[h].x) - parseInt(this.util.deviceObj.xaxis)) +
Math.abs(parseInt(mapData.stairs[h].y) - parseInt(this.util.deviceObj.yaxis));
if (mapData.stairs[h].facCode == "upft" || mapData.stairs[h].downState) {
//上扶
if (minupft > ms) {
minupft = ms;
selupftNo = mapData.stairs[h].no;
}
} else if (mapData.stairs[h].facCode == "downft" || mapData.stairs[h].upState) {
if (mindownft > ms) {
mindownft = ms;
seldownftNo = mapData.stairs[h].no;
}
}
}
}
//扶梯距离最小
selupftNo != "" && (this.util.pathStateObj.seldtFacNo.no += selupftNo + ",");
seldownftNo != "" && (this.util.pathStateObj.seldtFacNo.no += seldownftNo + ",");
}
}
//console.log(this.util.pathStateObj.seldtFacNo);
}
let noHas; let noHas;
for (let j = 0; j < mapDataA.stairs.length; j++) { for (let j = 0; j < mapDataA.stairs.length; j++) {
if ( parseInt(mapDataA.stairs[j].navCode) > 0 && mapDataA.stairs[j].state) { if ( parseInt(mapDataA.stairs[j].navCode) > 0 && mapDataA.stairs[j].state) {

Loading…
Cancel
Save