|
@@ -87,8 +87,15 @@
|
|
|
</Form>
|
|
|
</div>
|
|
|
<!--地图选择、框选 显示 结束-->
|
|
|
-
|
|
|
-
|
|
|
+ <div id="pipeBurstAnalysis" v-if="showPipeBurstAnalysis" class="param-container tool-bar">
|
|
|
+ <select id="options" class="form-control">
|
|
|
+ <option selected value="down">下游分析</option>
|
|
|
+ <option value="up">上游分析</option>
|
|
|
+ <option value="faclilities">上游关键设施查找</option>
|
|
|
+ </select>
|
|
|
+ <button id="excavation">选择分析管线</button>
|
|
|
+ <button id="clear">清除结果</button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -110,6 +117,7 @@ export default {
|
|
|
showExcavation:false,//开挖图示
|
|
|
showExcavationAnalyze:false,//填开挖分析图示
|
|
|
showSoxSelection:false,//选择、框选
|
|
|
+ showPipeBurstAnalysis:false,//爆管分析
|
|
|
boxSelectionTooltip:null,//选择、框选Tooltip
|
|
|
boxSelectionObjects : {//选择、框选元素
|
|
|
isCallInMoving: false,
|
|
@@ -167,7 +175,8 @@ export default {
|
|
|
eventStatusValue: '',
|
|
|
cameraCode: '',
|
|
|
cameraRadius: '',
|
|
|
- open_LifelineList: [], //生命线图层控制图层
|
|
|
+ open_LifelineList_3D: [], //生命线图层控制图层
|
|
|
+ open_LifelineList_2D: [], //生命线图层控制图层
|
|
|
imageryProvider_hideList: [], //隐藏图层实体
|
|
|
open_hideList: [], //隐藏图层实体
|
|
|
openModel_hideList: [], //隐藏图层实体
|
|
@@ -387,13 +396,13 @@ export default {
|
|
|
//首先移除之前添加的点
|
|
|
// viewer.entities.removeAll();
|
|
|
//获取点击位置笛卡尔坐标
|
|
|
- var position = that.scene.pickPosition(e.position);
|
|
|
+ let position = that.scene.pickPosition(e.position);
|
|
|
|
|
|
//将笛卡尔坐标转化为经纬度坐标
|
|
|
- var cartographic = SuperMap3D.Cartographic.fromCartesian(position);
|
|
|
- var longitude = SuperMap3D.Math.toDegrees(cartographic.longitude);
|
|
|
- var latitude = SuperMap3D.Math.toDegrees(cartographic.latitude);
|
|
|
- var height = cartographic.height;
|
|
|
+ let cartographic = SuperMap3D.Cartographic.fromCartesian(position);
|
|
|
+ let longitude = SuperMap3D.Math.toDegrees(cartographic.longitude);
|
|
|
+ let latitude = SuperMap3D.Math.toDegrees(cartographic.latitude);
|
|
|
+ let height = cartographic.height;
|
|
|
if (height < 0) {
|
|
|
height = 0;
|
|
|
}
|
|
@@ -439,45 +448,79 @@ export default {
|
|
|
// ***************************生命线---图层过滤 开始************************************************
|
|
|
addLifelineOpen(checkedCities) {
|
|
|
this.checkedCities=checkedCities
|
|
|
- checkedCities.forEach(url => {
|
|
|
- if (!url) return; // 如果没有 URL,跳过当前迭代
|
|
|
- if(!this.open_LifelineList.some(item => item.url === url)){//查找已勾选的图层数组
|
|
|
- let obj = this.scene.open(this.superMapRootUrl +url,undefined,{
|
|
|
- autoSetView : false //不自动定位
|
|
|
- })
|
|
|
- this.open_LifelineList.push({
|
|
|
- url: url,
|
|
|
- mapObj: obj
|
|
|
- })
|
|
|
+ var checkedCities_2D=[]
|
|
|
+ var checkedCities_3D=[]
|
|
|
|
|
|
- // 管线流动
|
|
|
- // SuperMap3D.when(obj, function (layer) {
|
|
|
- // var line = scene.layers.find("huashengranqi");
|
|
|
- // line.textureUVSpeed = new SuperMap3D.Cartesian2(0, -2);//模型纹理在UV坐标上的运动速度
|
|
|
- // });
|
|
|
-
|
|
|
- }else{
|
|
|
- SuperMap3D.when.all(this.selectMapObj(url), function (layers) {
|
|
|
- for (var layer of layers) {
|
|
|
- layer.visible = true;
|
|
|
+ let List_2 = this.open_LifelineList_2D.map(item => item.url)
|
|
|
+ List_2.forEach(url => {
|
|
|
+ if (!url) return; // 如果没有 URL,跳过当前迭代
|
|
|
+ this.viewer.imageryLayers.remove(this.selectMapObj_2D(url));
|
|
|
+ });
|
|
|
+ this.open_LifelineList_2D = []
|
|
|
+
|
|
|
+ this.checkedCities.forEach(urlList => {
|
|
|
+ if (!urlList.length) return; // 如果没有 URL,跳过当前迭代
|
|
|
+
|
|
|
+ //加载三维图层
|
|
|
+ if(urlList[0]){
|
|
|
+ if(!this.open_LifelineList_3D.some(item => item.url === urlList[0])){//查找已勾选的图层数组
|
|
|
+ let obj = this.scene.open(this.superMapRootUrl + urlList[0],undefined,{
|
|
|
+ autoSetView : false //不自动定位
|
|
|
+ })
|
|
|
+ this.open_LifelineList_3D.push({
|
|
|
+ url: urlList[0],
|
|
|
+ mapObj: obj
|
|
|
+ })
|
|
|
+ }else{
|
|
|
+ SuperMap3D.when.all(this.selectMapObj_3D(urlList[0]), function (layers) {
|
|
|
+ for (let layer of layers) {
|
|
|
+ layer.visible = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
- });
|
|
|
+ checkedCities_3D.push(urlList[0])
|
|
|
+ }
|
|
|
+
|
|
|
+ //加载二维图层
|
|
|
+ if(urlList[1]){
|
|
|
+ let obj = this.viewer.imageryLayers.addImageryProvider(new SuperMap3D.SuperMapImageryProvider({
|
|
|
+ url:this.superMapRootUrl + urlList[1]
|
|
|
+ }));
|
|
|
+ this.open_LifelineList_2D.push({
|
|
|
+ url: urlList[1],
|
|
|
+ mapObj: obj
|
|
|
+ })
|
|
|
+ checkedCities_2D.push(urlList[1])
|
|
|
}
|
|
|
});
|
|
|
- const urlsToRemove = this.open_LifelineList.map(item => item.url).filter(url => !checkedCities.includes(url));//查找没勾选的图层数组
|
|
|
- console.log('选中的url:', checkedCities);
|
|
|
- console.log('移除的url:', urlsToRemove);
|
|
|
- urlsToRemove.forEach(url => {
|
|
|
+ const urlsToRemove_2D = this.open_LifelineList_2D.map(item => item.url).filter(url => !checkedCities_2D.includes(url));//查找没勾选的图层数组2D
|
|
|
+ const urlsToRemove_3D = this.open_LifelineList_3D.map(item => item.url).filter(url => !checkedCities_3D.includes(url));//查找没勾选的图层数组3D
|
|
|
+ urlsToRemove_3D.forEach(url => {
|
|
|
if (!url) return; // 如果没有 URL,跳过当前迭代
|
|
|
- SuperMap3D.when.all(this.selectMapObj(url), function (layers) {
|
|
|
- for (var layer of layers) {
|
|
|
+ SuperMap3D.when.all(this.selectMapObj_3D(url), function (layers) {
|
|
|
+ for (let layer of layers) {
|
|
|
layer.visible = false;
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
+ urlsToRemove_2D.forEach(url => {
|
|
|
+ if (!url) return; // 如果没有 URL,跳过当前迭代
|
|
|
+ this.viewer.imageryLayers.remove(this.selectMapObj_2D(url));
|
|
|
+ });
|
|
|
+ console.log('选中的url_2D:', checkedCities_2D);
|
|
|
+ console.log('选中的url_3D:', checkedCities_3D);
|
|
|
+ console.log('移除的url_2D:', urlsToRemove_2D);
|
|
|
+ console.log('移除的url_3D:', urlsToRemove_3D);
|
|
|
+ console.log('加载的url_2D:', this.open_LifelineList_2D);
|
|
|
+ console.log('加载的url_3D:', this.open_LifelineList_3D);
|
|
|
+ },
|
|
|
+ selectMapObj_2D(url) {
|
|
|
+ const item = this.open_LifelineList_2D.find(item => item.url === url);
|
|
|
+ let mapObj= item ? item.mapObj : null;
|
|
|
+ return mapObj
|
|
|
},
|
|
|
- selectMapObj(url) {
|
|
|
- const item = this.open_LifelineList.find(item => item.url === url);
|
|
|
+ selectMapObj_3D(url) {
|
|
|
+ const item = this.open_LifelineList_3D.find(item => item.url === url);
|
|
|
let mapObj= item ? item.mapObj : null;
|
|
|
return mapObj
|
|
|
},
|
|
@@ -570,7 +613,7 @@ export default {
|
|
|
if (that.open_hideList != null && that.open_hideList.length > 0) {
|
|
|
for (let i = 0; i < that.open_hideList.length; i++) {
|
|
|
SuperMap3D.when.all(that.open_hideList[i], function (layers) {
|
|
|
- for (var layer of layers) {
|
|
|
+ for (let layer of layers) {
|
|
|
// that.scene.layers.remove(layer.name);
|
|
|
layer.visible = false;
|
|
|
}
|
|
@@ -585,7 +628,7 @@ export default {
|
|
|
for (let i = 0; i < that.openModel_hideList.length; i++) {
|
|
|
SuperMap3D.when.all(that.openModel_hideList[i], function (layers) {
|
|
|
const reversedLayers = [...layers].reverse();
|
|
|
- for (var layer of reversedLayers) {
|
|
|
+ for (let layer of reversedLayers) {
|
|
|
that.scene.layers.remove(layer.name);
|
|
|
that.viewer.imageryLayers.remove(layer)
|
|
|
}
|
|
@@ -991,13 +1034,13 @@ export default {
|
|
|
that.handlerDis.clampMode = 1
|
|
|
//注册测距功能事件
|
|
|
that.handlerDis.measureEvt.addEventListener(function(result) {
|
|
|
- var dis = Number(result.distance)
|
|
|
- var selOptV = that.selOptV
|
|
|
+ let dis = Number(result.distance)
|
|
|
+ let selOptV = that.selOptV
|
|
|
if (selOptV == 3 || selOptV == 4) {
|
|
|
dis = Number(calcClampDistance(positions))
|
|
|
}
|
|
|
|
|
|
- var distance = dis > 1000 ? (dis / 1000).toFixed(2) + 'km' : dis.toFixed(2) + 'm'
|
|
|
+ let distance = dis > 1000 ? (dis / 1000).toFixed(2) + 'km' : dis.toFixed(2) + 'm'
|
|
|
that.handlerDis.disLabel.text = '距离:' + distance
|
|
|
|
|
|
})
|
|
@@ -1028,8 +1071,8 @@ export default {
|
|
|
|
|
|
that.handlerArea.clampMode = 1
|
|
|
that.handlerArea.measureEvt.addEventListener(function(result) {
|
|
|
- var mj = Number(result.area)
|
|
|
- var area = mj > 1000000 ? (mj / 1000000).toFixed(2) + 'km²' : mj.toFixed(2) + '㎡'
|
|
|
+ let mj = Number(result.area)
|
|
|
+ let area = mj > 1000000 ? (mj / 1000000).toFixed(2) + 'km²' : mj.toFixed(2) + '㎡'
|
|
|
that.handlerArea.areaLabel.text = '面积:' + area
|
|
|
})
|
|
|
that.handlerArea.activeEvt.addEventListener(function(isActive) {
|
|
@@ -1057,9 +1100,9 @@ export default {
|
|
|
//初始化测量高度
|
|
|
that.handlerHeight = new SuperMap3D.MeasureHandler(that.viewer, SuperMap3D.MeasureMode.DVH);
|
|
|
that.handlerHeight.measureEvt.addEventListener(function (result) {
|
|
|
- var distance = result.distance > 1000 ? (result.distance / 1000).toFixed(2) + 'km' : result.distance + 'm';
|
|
|
- var vHeight = result.verticalHeight > 1000 ? (result.verticalHeight / 1000).toFixed(2) + 'km' : result.verticalHeight + 'm';
|
|
|
- var hDistance = result.horizontalDistance > 1000 ? (result.horizontalDistance / 1000).toFixed(2) + 'km' : result.horizontalDistance + 'm';
|
|
|
+ let distance = result.distance > 1000 ? (result.distance / 1000).toFixed(2) + 'km' : result.distance + 'm';
|
|
|
+ let vHeight = result.verticalHeight > 1000 ? (result.verticalHeight / 1000).toFixed(2) + 'km' : result.verticalHeight + 'm';
|
|
|
+ let hDistance = result.horizontalDistance > 1000 ? (result.horizontalDistance / 1000).toFixed(2) + 'km' : result.horizontalDistance + 'm';
|
|
|
that.handlerHeight.disLabel.text = '空间距离:' + distance;
|
|
|
that.handlerHeight.vLabel.text = '垂直高度:' + vHeight;
|
|
|
that.handlerHeight.hLabel.text = '水平距离:' + hDistance;
|
|
@@ -1088,7 +1131,7 @@ export default {
|
|
|
let that = this
|
|
|
that.showExcavation=true
|
|
|
setTimeout(function() {
|
|
|
- var tooltip = createTooltip(document.body);
|
|
|
+ let tooltip = createTooltip(document.body);
|
|
|
that.handlerExcavation = new SuperMap3D.DrawHandler(that.viewer, SuperMap3D.DrawMode.Polygon);
|
|
|
that.handlerExcavation.activeEvt.addEventListener(function(isActive) {
|
|
|
if(isActive == true) {
|
|
@@ -1108,13 +1151,13 @@ export default {
|
|
|
}
|
|
|
});
|
|
|
that.handlerExcavation.drawEvt.addEventListener(function(res) {
|
|
|
- var positions = [].concat(res.object.positions);
|
|
|
- var positionsDegrees = [];
|
|
|
- for(var i = 0; i < positions.length; i++) {
|
|
|
- var cartographic = SuperMap3D.Cartographic.fromCartesian(positions[i]);
|
|
|
- var lon = SuperMap3D.Math.toDegrees(cartographic.longitude);
|
|
|
- var lat = SuperMap3D.Math.toDegrees(cartographic.latitude);
|
|
|
- var h = cartographic.height;
|
|
|
+ let positions = [].concat(res.object.positions);
|
|
|
+ let positionsDegrees = [];
|
|
|
+ for(let i = 0; i < positions.length; i++) {
|
|
|
+ let cartographic = SuperMap3D.Cartographic.fromCartesian(positions[i]);
|
|
|
+ let lon = SuperMap3D.Math.toDegrees(cartographic.longitude);
|
|
|
+ let lat = SuperMap3D.Math.toDegrees(cartographic.latitude);
|
|
|
+ let h = cartographic.height;
|
|
|
positionsDegrees = positionsDegrees.concat([lon, lat, h]);
|
|
|
}
|
|
|
that.extract(positionsDegrees);
|
|
@@ -1219,7 +1262,7 @@ export default {
|
|
|
let that = this
|
|
|
that.showExcavationAnalyze=true
|
|
|
setTimeout(function() {
|
|
|
- var tooltip = createTooltip(document.body);
|
|
|
+ let tooltip = createTooltip(document.body);
|
|
|
that.handlerExcavationAnalyze = new SuperMap3D.DrawHandler(that.viewer, SuperMap3D.DrawMode.Polygon, that.clampMode);
|
|
|
|
|
|
that.handlerExcavationAnalyze.activeEvt.addEventListener(function (isActive) {
|
|
@@ -1247,16 +1290,16 @@ export default {
|
|
|
that.handlerExcavationAnalyze.deactivate();
|
|
|
tooltip.setVisible(false);
|
|
|
|
|
|
- var dep = document.getElementById("depth").value;
|
|
|
+ let dep = document.getElementById("depth").value;
|
|
|
|
|
|
- var array = [].concat(result.object.positions);
|
|
|
- var positions = [];
|
|
|
- var positionsii = [];
|
|
|
- for (var i = 0, len = array.length; i < len; i++) {
|
|
|
- var cartographic = SuperMap3D.Cartographic.fromCartesian(array[i]);
|
|
|
- var longitude = SuperMap3D.Math.toDegrees(cartographic.longitude);
|
|
|
- var latitude = SuperMap3D.Math.toDegrees(cartographic.latitude);
|
|
|
- var h = cartographic.height;
|
|
|
+ let array = [].concat(result.object.positions);
|
|
|
+ let positions = [];
|
|
|
+ let positionsii = [];
|
|
|
+ for (let i = 0, len = array.length; i < len; i++) {
|
|
|
+ let cartographic = SuperMap3D.Cartographic.fromCartesian(array[i]);
|
|
|
+ let longitude = SuperMap3D.Math.toDegrees(cartographic.longitude);
|
|
|
+ let latitude = SuperMap3D.Math.toDegrees(cartographic.latitude);
|
|
|
+ let h = cartographic.height;
|
|
|
if (positions.indexOf(longitude) == -1 && positions.indexOf(latitude) == -1) {
|
|
|
|
|
|
positions.push(longitude);
|
|
@@ -1277,11 +1320,11 @@ export default {
|
|
|
position: positions
|
|
|
});
|
|
|
|
|
|
- var length = [];
|
|
|
+ let length = [];
|
|
|
length.push(positionsii.length);
|
|
|
|
|
|
//需要在此 动态构造一个 REGION类型的对象
|
|
|
- var geometry = {
|
|
|
+ let geometry = {
|
|
|
"id": 23,
|
|
|
"parts": length,
|
|
|
"points": positionsii,
|
|
@@ -1290,7 +1333,7 @@ export default {
|
|
|
};
|
|
|
|
|
|
|
|
|
- var queryObj = {
|
|
|
+ let queryObj = {
|
|
|
"cutFillType": "REGIONANDALTITUDE",
|
|
|
"baseAltitude": dep,
|
|
|
"region": geometry,
|
|
@@ -1298,15 +1341,15 @@ export default {
|
|
|
"buildPyramid": true,
|
|
|
"deleteExistResultDataset": true
|
|
|
};
|
|
|
- var queryObjJSON = JSON.stringify(queryObj);
|
|
|
+ let queryObjJSON = JSON.stringify(queryObj);
|
|
|
$.ajax({
|
|
|
type: 'post',
|
|
|
url: "http://www.supermapol.com/realspace/services/spatialAnalysis-dxyx_ios/restjsr/spatialanalyst/datasets/DEM@%E5%9B%9B%E5%A7%91%E5%A8%98%E5%B1%B1/terraincalculation/cutfill.json?returnContent=true",
|
|
|
data: queryObjJSON,
|
|
|
success: function (data) {
|
|
|
console.log(data);
|
|
|
- // var resultObj = JSON.parse(data);
|
|
|
- var resultObj = data;
|
|
|
+ // let resultObj = JSON.parse(data);
|
|
|
+ let resultObj = data;
|
|
|
|
|
|
document.getElementById("cutarea").value = resultObj.cutArea;
|
|
|
document.getElementById("cutVolume").value = resultObj.cutVolume;
|
|
@@ -1347,7 +1390,7 @@ export default {
|
|
|
let layersAll = [];
|
|
|
that.checkedCities.forEach(url => {
|
|
|
if (!url) return; // 如果没有 URL,跳过当前迭代
|
|
|
- SuperMap3D.when.all(that.selectMapObj(url), function (layers) {
|
|
|
+ SuperMap3D.when.all(that.selectMapObj_3D(url), function (layers) {
|
|
|
layersAll.push(layers)
|
|
|
});
|
|
|
});
|
|
@@ -1706,6 +1749,177 @@ export default {
|
|
|
|
|
|
}, 1000)
|
|
|
},
|
|
|
+ //爆管分析
|
|
|
+ pipeBurstAnalysis(){
|
|
|
+ let that=this;
|
|
|
+ that.showPipeBurstAnalysis=true
|
|
|
+ // 开启地下模式
|
|
|
+ that.scene.undergroundMode = true
|
|
|
+ that.scene.screenSpaceCameraController.minimumZoomDistance = -1000
|
|
|
+ that.scene.globe.show = false
|
|
|
+ that.viewer.resolutionScale = window.devicePixelRatio;
|
|
|
+ // 添加地下管线模型
|
|
|
+ let promise_underground = that.scene.open('http://116.142.80.12:8090/iserver/services/3D-burstAnalysis/rest/realspace');
|
|
|
+
|
|
|
+ // setTimeout(()=>{
|
|
|
+ // new SuperMap3D.when(promise_underground, function (layers) {
|
|
|
+ // alert(layers)
|
|
|
+ // // 设置图层的LOD层级切换距离缩放系数。
|
|
|
+ // for (let layer of layers) {
|
|
|
+ // layer.lodRangeScale = 50
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // //查询所有阀门
|
|
|
+ // queryALLValve()
|
|
|
+ // //粒子特效
|
|
|
+ // let multiFireUrl = '../src/particle/fountain.json';
|
|
|
+ // modelMatrix = new SuperMap3D.Matrix4();
|
|
|
+ // let pos = new SuperMap3D.Cartesian3.fromDegrees(0, 0, 0)
|
|
|
+ // new SuperMap3D.Transforms.eastNorthUpToFixedFrame(pos, undefined, modelMatrix);
|
|
|
+ // new SuperMap3D.ParticleHelper.fromJsonUrl(multiFireUrl, that.scene).then(function (particleSys) {
|
|
|
+ // particleSystem = particleSys;
|
|
|
+ // particleSystem.emitRate = 200
|
|
|
+ // particleSystem.gravity = new SuperMap3D.Cartesian3(0, 0, 4)
|
|
|
+ // particleSystem.minLifeTime = 1
|
|
|
+ // particleSystem.maxLifeTime = 2
|
|
|
+ // particleSystem.minSize = 1
|
|
|
+ // particleSystem.maxSize = 4
|
|
|
+ // particleSystem.modelMatrix = modelMatrix;
|
|
|
+ // particleSystem.start();
|
|
|
+ // });
|
|
|
+ // // 获取管线管点图层
|
|
|
+ // pipeedge = that.scene.layers.find('PipeNetWork@Pipe3D#1')
|
|
|
+ // pipenode = that.scene.layers.find('PipeNetWork_Node@Pipe3D#1')
|
|
|
+ // pipenode1 = that.scene.layers.find('PipeNetWork_Node@Pipe3D')
|
|
|
+ // handler = new SuperMap3D.ScreenSpaceEventHandler(that.scene.canvas);
|
|
|
+ //
|
|
|
+ // // 开始分析按钮事件
|
|
|
+ // document.getElementById('excavation').onclick = () => {
|
|
|
+ // if (handler) {
|
|
|
+ //
|
|
|
+ // handler.setInputAction(function (e) {
|
|
|
+ // // 获取点击的管线ID
|
|
|
+ // pipesec = pipeedge.getSelection()
|
|
|
+ // if (!pipesec && pipesec.length === 0) {
|
|
|
+ // return
|
|
|
+ // }
|
|
|
+ // let position = that.scene.pickPosition(e.position)
|
|
|
+ // //爆管分析
|
|
|
+ // burstAnalysis(pipesec, position)
|
|
|
+ // }, SuperMap3D.ScreenSpaceEventType.LEFT_CLICK)
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ //
|
|
|
+ // // 清除按钮事件
|
|
|
+ // document.getElementById('clear').onclick = () => {
|
|
|
+ // if (handler) {
|
|
|
+ // handler.removeInputAction(SuperMap3D.ScreenSpaceEventType.LEFT_CLICK)
|
|
|
+ // }
|
|
|
+ // let pos = SuperMap3D.Cartesian3.fromDegrees(0, 0, 0)
|
|
|
+ // SuperMap3D.Transforms.eastNorthUpToFixedFrame(pos, undefined, modelMatrix);
|
|
|
+ // particleSystem.modelMatrix = modelMatrix;
|
|
|
+ // pipeedge.setObjsColor(edgeIds, SuperMap3D.Color.WHITE)
|
|
|
+ // pipenode.setObjsColor(nodeIds, SuperMap3D.Color.WHITE)
|
|
|
+ // pipenode1.setObjsColor(nodeIds, SuperMap3D.Color.WHITE)
|
|
|
+ //
|
|
|
+ // }
|
|
|
+ // })
|
|
|
+ // },1000)
|
|
|
+
|
|
|
+ if (!that.scene.pickPositionSupported) {
|
|
|
+ alert('不支持深度纹理,无法绘制多边形,地形开挖功能无法使用!');
|
|
|
+ }
|
|
|
+ $('#toolbar').show();
|
|
|
+ $('#loadingbar').remove();
|
|
|
+
|
|
|
+ /*
|
|
|
+ 爆管分析,pipesec:选取管线id,position:鼠标点击位置
|
|
|
+ */
|
|
|
+ function burstAnalysis(pipesec, position) {
|
|
|
+ SuperMap3D.Transforms.eastNorthUpToFixedFrame(position, undefined, modelMatrix);
|
|
|
+ particleSystem.modelMatrix = modelMatrix;
|
|
|
+ console.log(pipesec)
|
|
|
+ // 获取当前选择的分析方式
|
|
|
+ let value = document.getElementById('options').value
|
|
|
+ // 根据分析方式创建请求体
|
|
|
+
|
|
|
+ if (value === "down") {
|
|
|
+ workURL = 'http://116.142.80.12:8090/iserver/services/networkAnalyst3D-burstAnalysis-2/rest/facilityanalyst3d/PipeNetWork@Pipe3D/tracedownresult.json'
|
|
|
+ queryObj = {
|
|
|
+ edgeID: pipesec[0],
|
|
|
+ isUncertainDirectionValid: true,
|
|
|
+ weightName: 'WeightField'
|
|
|
+ }
|
|
|
+ } else if (value === 'up') {
|
|
|
+ workURL = 'http://116.142.80.12:8090/iserver/services/networkAnalyst3D-burstAnalysis-2/rest/facilityanalyst3d/PipeNetWork@Pipe3D/traceupresult.json'
|
|
|
+ queryObj = {
|
|
|
+ edgeID: pipesec[0],
|
|
|
+ isUncertainDirectionValid: true,
|
|
|
+ weightName: 'WeightField'
|
|
|
+ }
|
|
|
+ } else if (value === 'faclilities') {
|
|
|
+ let valve = valves
|
|
|
+ let ids = JSON.stringify(valve)
|
|
|
+ workURL = 'http://116.142.80.12:8090/iserver/services/networkAnalyst3D-burstAnalysis-2/rest/facilityanalyst3d/PipeNetWork@Pipe3D/upstreamcirticalfaclilities.json'
|
|
|
+ queryObj = {
|
|
|
+ sourceNodeIDs: ids,
|
|
|
+ edgeID: pipesec[0],
|
|
|
+ isUncertainDirectionValid: true
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 发送请求
|
|
|
+ $.ajax({
|
|
|
+ type: 'GET',
|
|
|
+ url: workURL,
|
|
|
+ data: queryObj,
|
|
|
+ success: data => {
|
|
|
+ // 得到结果
|
|
|
+ console.log(data)
|
|
|
+ if (data.edges) {
|
|
|
+ edgeIds = data.edges
|
|
|
+ pipeedge.setObjsColor(data.edges, SuperMap3D.Color.RED)
|
|
|
+ }
|
|
|
+ if (data.nodes) {
|
|
|
+ nodeIds = data.nodes
|
|
|
+ pipenode.setObjsColor(data.nodes, SuperMap3D.Color.RED)
|
|
|
+ pipenode1.setObjsColor(data.nodes, SuperMap3D.Color.RED)
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error: res => {
|
|
|
+ console.log(res)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ // 查询所有阀门
|
|
|
+ function queryALLValve() {
|
|
|
+ debugger
|
|
|
+ //查询阀门地址和参数
|
|
|
+ let dataServiceUrl = 'http://116.142.80.12:8090/iserver/services/data-burstAnalysis/rest/data/featureResults.json?returnContent=true';
|
|
|
+ let queryObj = {
|
|
|
+ getFeatureMode: 'SQL',
|
|
|
+ datasetNames: ['Pipe3D:PipeNetWork_Node'],
|
|
|
+ queryParameter: {
|
|
|
+ attributeFilter: "Name='阀门'"
|
|
|
+ }
|
|
|
+ };
|
|
|
+ queryObjJSON = JSON.stringify(queryObj); // 转化为JSON字符串作为查询参数
|
|
|
+ $.ajax({
|
|
|
+ type: "post",
|
|
|
+ url: dataServiceUrl,
|
|
|
+ data: queryObjJSON,
|
|
|
+ success: function (result) {
|
|
|
+ valves = []
|
|
|
+ result.features.map(function (element) {
|
|
|
+ // 遍历数组,对每个元素进行操作
|
|
|
+ valves.push(element.ID);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ error: function (msg) {
|
|
|
+ console.log(msg);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ }
|
|
|
+ },
|
|
|
//清除框选
|
|
|
removeBoxSelection(){
|
|
|
this.showSoxSelection= false
|
|
@@ -1993,7 +2207,7 @@ export default {
|
|
|
if (radius != undefined && radius != null) {
|
|
|
let that = this
|
|
|
// 初始化颜色选择控件
|
|
|
- var initialScanColor = '#2263e6'
|
|
|
+ let initialScanColor = '#2263e6'
|
|
|
that.viewer.scene.scanEffect.color = SuperMap3D.Color.fromCssColorString(initialScanColor)
|
|
|
// 获取或设置扫描线的运行周期,单位:秒。
|
|
|
that.viewer.scene.scanEffect.period = radius / 500
|