|
@@ -582,7 +582,7 @@ export default {
|
|
|
spaces = this.scene.getZoneDifference();
|
|
|
}
|
|
|
for (let key in spaces) {
|
|
|
- spaces[key].map(t => {
|
|
|
+ spaces[key] = spaces[key].map(t => {
|
|
|
let temp = t.map(item => {
|
|
|
return {
|
|
|
X: 1 * item.x.toFixed(2),
|
|
@@ -590,8 +590,10 @@ export default {
|
|
|
Z: 0
|
|
|
}
|
|
|
})
|
|
|
- zoneObj.Outline.push([temp]);
|
|
|
+ return temp;
|
|
|
})
|
|
|
+ let newarr = this.makeMaxAreaFirst(spaces[key])
|
|
|
+ zoneObj.Outline.push(newarr);
|
|
|
let curISP = this.sourceIdToISP[key];
|
|
|
if (curISP) {
|
|
|
curISP && IspaceIdList.push(curISP.RoomID);
|
|
@@ -650,7 +652,7 @@ export default {
|
|
|
spaces = this.scene.getZoneDifference();
|
|
|
}
|
|
|
for (let key in spaces) {
|
|
|
- spaces[key].map(t => {
|
|
|
+ spaces[key] = spaces[key].map(t => {
|
|
|
let temp = t.map(item => {
|
|
|
return {
|
|
|
X: 1 * item.x.toFixed(2),
|
|
@@ -658,8 +660,10 @@ export default {
|
|
|
Z: 0
|
|
|
}
|
|
|
})
|
|
|
- zoneObj.Outline.push([temp]);
|
|
|
+ return temp;
|
|
|
})
|
|
|
+ let newarr = this.makeMaxAreaFirst(spaces[key])
|
|
|
+ zoneObj.Outline.push(newarr);
|
|
|
let curISP = this.sourceIdToISP[key];
|
|
|
if (curISP) {
|
|
|
curISP && IspaceIdList.push(curISP.RoomID);
|
|
@@ -820,7 +824,7 @@ export default {
|
|
|
}
|
|
|
for (let key in spaces) {
|
|
|
let zoneObj = { Outline: [], Height: 0 }
|
|
|
- spaces[key].map(t => {
|
|
|
+ spaces[key] = spaces[key].map(t => {
|
|
|
let temp = t.map(item => {
|
|
|
return {
|
|
|
X: 1 * item.x.toFixed(2),
|
|
@@ -828,8 +832,10 @@ export default {
|
|
|
Z: 0
|
|
|
}
|
|
|
})
|
|
|
- zoneObj.Outline.push([temp]);
|
|
|
+ return temp;
|
|
|
})
|
|
|
+ let newarr = this.makeMaxAreaFirst(spaces[key])
|
|
|
+ zoneObj.Outline.push(newarr);
|
|
|
if (!zoneObj.Outline.length) {
|
|
|
continue
|
|
|
}
|
|
@@ -1023,7 +1029,8 @@ export default {
|
|
|
zoneObj.BuildingId = this.buildFloor[0];
|
|
|
zoneObj.FloorId = this.buildFloor[1];
|
|
|
let pa = {
|
|
|
- Content: [zoneObj]
|
|
|
+ Content: [zoneObj],
|
|
|
+ Projection: ['BIMLocation', 'ObjectType', 'Outline', 'Height', 'BuildingId', 'FloorId']
|
|
|
}
|
|
|
zoneUpdate(pa, res => {
|
|
|
this.updateZoneBF(zoneObj, IspaceIdList);
|
|
@@ -1142,6 +1149,20 @@ export default {
|
|
|
let scale = this.view.scale;
|
|
|
this.view.scaleByPoint(val / scale, this.canvasWidth / 2, this.canvasHeight / 2);
|
|
|
},
|
|
|
+ // 给定多个轮廓线的数据,计算得到面积最大值,并把它放置数组第一项
|
|
|
+ // list {XYZ}[][]
|
|
|
+ makeMaxAreaFirst(list) {
|
|
|
+ let arr = [], area = 0;
|
|
|
+ for (let i = 0; i < list.length; i++) {
|
|
|
+ let temp = this.getarea(list[i])
|
|
|
+ if (temp > area) {
|
|
|
+ arr.unshift(list[i])
|
|
|
+ } else {
|
|
|
+ arr.push(list[i])
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return arr;
|
|
|
+ }
|
|
|
},
|
|
|
filters: {
|
|
|
cutString: function (str, len) {
|