package com.upbest.web; import javax.servlet.http.HttpSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller @RequestMapping(value="/") public class HomeController { private static final Logger logger = LoggerFactory.getLogger(HomeController.class); @RequestMapping(value = "/") public String toSystemFirstPage(HttpSession session, Model model) { logger.debug("ok"); return "3d/3d"; } @RequestMapping(value = "/thermalChamber") public String thermalChamber(HttpSession session, Model model) { logger.debug("ok"); return "thermalChamber"; } @RequestMapping(value = "/powerChamber") public String powerChamber(HttpSession session, Model model) { logger.debug("ok"); return "powerChamber"; } @RequestMapping(value = "/synthesizeChamber") public String synthesizeChamber(HttpSession session, Model model) { logger.debug("ok"); return "synthesizeChamber"; } @RequestMapping(value = "/2d") public String d2(HttpSession session, Model model) { logger.debug("ok"); return "2d"; } @RequestMapping(value = "/3d") public String d3(HttpSession session, Model model) { logger.debug("ok"); return "3d/3d"; } } <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 徐圩新区智慧管廊
智慧管廊
方洋路 09#防火分区
热力舱

环境

管线
xx热力管线
运营单位 XX运营单位
入廊时间 2017-02-08

设备
厂家 XX运营单位
入廊时间 2017-02-08
舱室 XX舱室
设备类型 XX设备
设备名称 XX名称
开关状态
照明
风机
电力舱

环境

温度

1.91

温度

23.17

有害气体

11.21

积水位

5.33

管线
xx热力管线
运营单位 XX运营单位
入廊时间 2017-02-08

设备
厂家 XX运营单位
入廊时间 2017-02-08
舱室 XX舱室
设备类型 XX设备
设备名称 XX名称
开关状态
照明
风机
综合舱

环境

管线
xx热力管线
运营单位 XX运营单位
入廊时间 2017-02-08

设备
厂家 XX运营单位
入廊时间 2017-02-08
舱室 XX舱室
设备类型 XX设备
设备名称 XX名称
开关状态
照明
风机
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 徐圩新区智慧管廊
09#防火分区-电力舱

环境

温度

1.91

温度

23.17

有害气体

11.21

积水位

5.33

管线
xx热力管线
运营单位 XX运营单位
入廊时间 2017-02-08

设备
厂家 XX运营单位
入廊时间 2017-02-08
舱室 XX舱室
设备类型 XX设备
设备名称 XX名称
开关状态
照明
风机
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 徐圩新区智慧管廊
综合舱

环境

管线
xx热力管线
运营单位 XX运营单位
入廊时间 2017-02-08

设备
厂家 XX运营单位
入廊时间 2017-02-08
舱室 XX舱室
设备类型 XX设备
设备名称 XX名称
开关状态
照明
风机
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 徐圩新区智慧管廊
09#防火分区-热力舱

环境

管线
xx热力管线
运营单位 XX运营单位
入廊时间 2017-02-08

设备
厂家 XX运营单位
入廊时间 2017-02-08
舱室 XX舱室
设备类型 XX设备
设备名称 XX名称
开关状态
照明
风机
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> 徐圩新区智慧管廊
智慧管廊
var environment = null;//热力舱环境 var chartObj_pipeline = null;//电力舱管线 var chartObj_environment = null;//综合舱环境 //配置路径 require.config({ paths:{ echarts:'/resources/echarts/build/dist', } }); $(function(){ initChartObjs(); }); function initChartObjs(){ objEnvironment();//环境 objPipeline();//管线 chartObjEnvironment();//综合舱环境 } function objEnvironment(){ option = { tooltip : { formatter: "{a}
{c} {b}" }, toolbox: { show: false, feature: { restore: {show: true}, saveAsImage: {show: true} } }, series : [ { name: '温度', type: 'gauge', z: 3, min: 0, max: 10, splitNumber: 10, radius: '100%', axisLine: { // 坐标轴线 lineStyle: { // 属性lineStyle控制线条样式 width: 4 } }, axisTick: { // 坐标轴小标记 length: 15, // 属性length控制线长 lineStyle: { // 属性lineStyle控制线条样式 color: 'auto' } }, splitLine: { // 分隔线 length: 20, // 属性length控制线长 lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式 color: 'auto' } }, title : { offsetCenter: [0, 25], // x, y,单位px textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE color:'#F3F3F3', fontWeight: 'bolder', fontSize: 18, } }, detail : { textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE fontWeight: 'bolder' } }, data:[{value: 4, name: '温度'}] }, { name: '湿度', type: 'gauge', center: ['30%', '55%'], // 默认全局居中 radius: '75%', min:0, max:10, endAngle:45, splitNumber:10, axisLine: { // 坐标轴线 lineStyle: { // 属性lineStyle控制线条样式 width: 3 } }, axisTick: { // 坐标轴小标记 length:12, // 属性length控制线长 lineStyle: { // 属性lineStyle控制线条样式 color: 'auto', width:1 } }, splitLine: { // 分隔线 length:20, // 属性length控制线长 lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式 color: 'auto', width:1 } }, pointer: { width:5 }, title: { offsetCenter: [0, '-30%'], // x, y,单位px textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE color:'#F3F3F3', fontWeight: 'bolder', fontSize: 15, } }, detail: { textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE fontWeight: 'bolder' } }, data:[ { value: 1.5, name: '湿度', // label:{ // normal:{ // show: true, // textStyle:{ // color: '#F3F3F3', // fontSize:2 // } // } // } }] }, { name: '有害气体', type: 'gauge', center: ['72%', '50%'], // 默认全局居中 radius: '75%', min: 0, max: 100, startAngle: 155, endAngle: 25, splitNumber: 10, axisLine: { // 坐标轴线 lineStyle: { // 属性lineStyle控制线条样式 width: 3 } }, axisTick: { // 坐标轴小标记 splitNumber: 5, length: 10, // 属性length控制线长 lineStyle: { // 属性lineStyle控制线条样式 color: 'auto', width:1 } }, axisLabel: { formatter:function(v){ switch (v + '') { case '0' : return '0'; case '50' : return ''; case '100' : return '100'; } } }, splitLine: { // 分隔线 length: 15, // 属性length控制线长 lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式 color: 'auto', width:1 } }, pointer: { width:2 }, title : { offsetCenter: [0, '-40%'], // x, y,单位px textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE color:'#F3F3F3', fontWeight: 'bolder', fontSize: 10, } }, detail : { show: false }, data:[{value: 50, name: '有害气体'}] }, { name: '积水位', type: 'gauge', center : ['72%', '50%'], // 默认全局居中 radius : '75%', min: 0, max: 100, startAngle: 335, endAngle: 205, splitNumber: 10, axisLine: { // 坐标轴线 lineStyle: { // 属性lineStyle控制线条样式 width: 3 } }, axisTick: { // 坐标轴小标记 splitNumber: 5, length: 5, // 属性length控制线长 lineStyle: { // 属性lineStyle控制线条样式 color: 'auto', width: 1 } }, axisLabel: { formatter:function(v){ switch (v + '') { case '0' : return '0'; case '50' : return ''; case '100' : return '100'; } } }, splitLine: { // 分隔线 length: 15, // 属性length控制线长 lineStyle: { // 属性lineStyle(详见lineStyle)控制线条样式 color: 'auto', width:1 } }, pointer: { width:2 }, title: { offsetCenter: [0, 25], // x, y,单位px textStyle: { // 其余属性默认使用全局文本样式,详见TEXTSTYLE color:'#F3F3F3', fontWeight: 'bolder', fontSize: 10, } }, detail: { show: false }, data:[{value: 50, name: '积水位'}] } ] }; environment = echarts.init(document.getElementById("environment"),''); environment.setOption(option,true); // setInterval(function (){ // option.series[0].data[0].value = (Math.random()*10).toFixed(2) - 0; // option.series[1].data[0].value = (Math.random()*10).toFixed(2) - 0; // option.series[2].data[0].value = (Math.random()*100).toFixed(2) - 0; // option.series[3].data[0].value = (Math.random()*100).toFixed(2) - 0; // },1000); } function objPipeline(){ option = { grid: {x:40,y:10,x2:35,y2:0,borderWidth:0},//改变图形控件的大小,数据越大图形越小 tooltip: { trigger: 'axis', borderWidth: 2, borderColor: '#165484', backgroundColor: '#092651', textStyle: { color : '#DEDEDE', fontSize: 15, }, formatter:'{b1}: {c1}' }, noDataLoadingOption : { text : "No data to display.", effect : 'bubble', effectOption : { backgroundColor : 'rgba(255,255,255,0)', effect : { n : 0 } } }, xAxis: [ { type: 'value', axisLabel: { show: false, }, splitLine: { show: false }, axisLine: { show: false, }, axisTick: { show:false, alignWithLabel:false, }, data: ['水温','压力','流量'] } ], yAxis: [ { type: 'category', axisLabel: { show: true, margin: 10, textStyle: { color: '#D0D0D1', fontSize: 15, fontFamily : '微软雅黑', fontWeight : 'normal' } }, splitLine: { show: false }, axisLine: { show: true, lineStyle: { color: '#C0C0C1', width: 1, } }, axisTick: { show:true, alignWithLabel:true, //interval: 50, length: 10, lineStyle: { color: '#C0C0C1', width: 0, } }, data: ['流量','压力','水温'] } ], series: [ { name : '管线', type:'bar', stack : '总量', itemStyle: { normal: { color: '#353536', lineStyle: { width: 6, //color: '#2A2A2C' }, label: { show: false, }, barBorderRadius: 15, // 统一设置四个角的圆角大小 }, }, data:[1,1,1] }, { name : '管线', type:'bar', stack : '总量', barWidth: 30, itemStyle: { normal: { color: '#3AFF55', lineStyle: { width: 6, color: '#3AFF55' }, label: { show: true, position: 'right', formatter: '{c}', textStyle: { //color: '#CB2D2E', fontSize: 15, }, }, barBorderRadius: 15, // 统一设置四个角的圆角大小 }, }, data:[{value:22.14, itemStyle: { normal:{ color : '#3D80CC' } } }, {value:32.56, itemStyle: { normal:{ color : '#D76F33' } } }, {value:12.31, itemStyle: { normal:{ color : '#84BC99' } } }] }, ] }; chartObj_pipeline = echarts.init(document.getElementById("chartObj_pipeline"),''); chartObj_pipeline.setOption(option,true); } function chartObjEnvironment(){ option = { grid: {x:140,y:0,x2:35,y2:0,borderWidth:0},//改变图形控件的大小,数据越大图形越小 tooltip: { trigger: 'axis', borderWidth: 2, borderColor: '#165484', backgroundColor: '#092651', textStyle: { color : '#DEDEDE', fontSize: 15, }, formatter:'{b1}: {c1}' }, noDataLoadingOption : { text : "No data to display.", effect : 'bubble', effectOption : { backgroundColor : 'rgba(255,255,255,0)', effect : { n : 0 } } }, xAxis: [ { type: 'value', axisLabel: { show: false, }, splitLine: { show: false }, axisLine: { show: false, }, axisTick: { show:false, alignWithLabel:false, }, data: ['水温','压力','流量'] } ], yAxis: [ { type: 'category', axisLabel: { show: true, margin: 10, textStyle: { color: '#D0D0D1', fontSize: 15, fontFamily : '微软雅黑', fontWeight : 'normal' } }, splitLine: { show: false }, axisLine: { show: true, lineStyle: { color: '#C0C0C1', width: 1, } }, axisTick: { show:true, alignWithLabel:true, //interval: 50, length: 10, lineStyle: { color: '#C0C0C1', width: 0, } }, data: ['积水位','有害气体','温度','湿度'] } ], series: [ { name : '管线', type:'bar', stack : '总量', itemStyle: { normal: { color: '#353536', lineStyle: { width: 6, color: '#353536' }, label: { show: false, }, barBorderRadius: 15, // 统一设置四个角的圆角大小 }, }, data:[1,1,1,1] }, { name : '管线', type:'bar', stack : '总量', barWidth: 15, itemStyle: { normal: { color: '#353536', lineStyle: { width: 6, color: '#353536' }, label: { show: true, position: 'right', formatter: '{c}', textStyle: { //color: '#CB2D2E', fontSize: 15, }, }, barBorderRadius: 15, // 统一设置四个角的圆角大小 }, }, data:[{value:5.33, itemStyle: { normal:{ color : '#9ABB4E' } } }, {value:11.21, itemStyle: { normal:{ color : '#912ECD' } } }, {value:23.17, itemStyle: { normal:{ color : '#FDAA00' } } }, {value:1.91, itemStyle: { normal:{ color : '#00BCFF' } } }] }, ] }; chartObj_environment = echarts.init(document.getElementById("chartObj_environment"),''); chartObj_environment.setOption(option,true); } /*基础的js*/ /*container-nav*/ $("#nav .fold").on('click',function(){ $(this).parent('.show').addClass('none'); $(this).parent('.show').siblings('.close').removeClass('none'); }); $("#nav .close").on('click',function(){ $(this).addClass('none'); $(this).siblings('.show').removeClass('none'); }); $("#nav .navgation>li .modular").hover(function(){ $(this).css('background-color','#323437'); },function(){ $(this).css('background-color','transparent'); }); $("#nav .navgation>li").on('click',function(){ if($(this).find('ul').is('.none')){ $(this).find('ul').removeClass('none'); $(this).find(".symbol").html('-'); $(this).find('img').attr('src','/resources/images/top.png') }else{ $(this).find('ul').addClass('none'); $(this).find(".symbol").html('+'); $(this).find('img').attr('src','/resources/images/bottom.png') } }); /*equip*/ $(".state_ck1").on('click',function(){ $(this).find('.main_img').attr('src','/resources/images/equip_1.2.png'); $(this).find('.ck_img').attr('src','/resources/images/ck2.png'); $(this).siblings('div').find('.main_img').attr('src','/resources/images/equip_2.1.png'); $(this).siblings('div').find('.ck_img').attr('src','/resources/images/ck1.png'); }); $(".state_ck2").on('click',function(){ $(this).find('.main_img').attr('src','/resources/images/equip_2.2.png'); $(this).find('.ck_img').attr('src','/resources/images/ck2.png'); $(this).siblings('div').find('.main_img').attr('src','/resources/images/equip_1.1.png'); $(this).siblings('div').find('.ck_img').attr('src','/resources/images/ck1.png'); }); /*路径配置*/ var Map3D_Config = { FlyUrl: "D:\\3d\\SmartEarth智慧城市开发框架\\De.fly",//Fly文件路径 GlObjectId: '',//存储高亮对象Id thermalChamberUrl: 'http://localhost:8080/thermalChamber',//热力仓Url powerChamberUrl: 'http://localhost:8080/powerChamber',//电力仓Url synthesizeChamberUrl: 'http://localhost:8080/synthesizeChamber',//综合仓Url } var tempTerrainId = 0; var clickCreatorTerra = 0; var tempName = ""; var gPolyObj = null; var Polygon = null; var sidePolygon = null; var htmlurl = window.location.href; var allurl = htmlurl.substring(0, htmlurl.lastIndexOf("/") + 1); function lookCreatorExcavate() { try { allClean(); AllInitialise(); } catch (e) { } //sgworld.Navigate.UndergroundMode = false; var GroupId = sgworld.ProjectTree.FindItem(allPosition + "深圳\\深圳\\深圳地下管线"); if (GroupId != 0) { sgworld.ProjectTree.SetVisibility(GroupId, true); try { showGroupId.push(GroupId); } catch (e) { } } var tempTerraId = sgworld.ProjectTree.FindItem(allPosition + "深圳\\深圳\\临时地形"); if (tempTerraId != 0) { sgworld.ProjectTree.SetVisibility(tempTerraId, true); try { showGroupId.push(tempTerraId); } catch (e) { } } var itemId = sgworld.ProjectTree.FindItem(allPosition + "定位点\\开挖浏览"); if (itemId != 0) { var obj = sgworld.ProjectTree.GetObject(itemId); sgworld.Navigate.FlyTo(obj, 0); } } function creatorExcavate() { if (clickCreatorTerra == 0) { try { allClean(); AllInitialise(); } catch (e) { } tempTerrainId = sgworld.ProjectTree.FindItem("临时地形"); if (tempTerrainId == 0) { tempTerrainId = sgworld.ProjectTree.CreateGroup("临时地形"); } for (var i = 0; ; i++) { var tempId = sgworld.ProjectTree.FindItem("临时地形\\" + "temp" + i); if (tempId == 0) { tempName = "temp" + i; break; } } clickCreatorTerra = 1; sgworld.AttachEvent("OnLButtonDown", polygon_OnLButtonDown); sgworld.AttachEvent("OnRButtonUp", polygon_OnRButtonUp); sgworld.AttachEvent("OnFrame", polygon_OnFrame); sgworld.Window.SetInputMode(1); } else { try { var mytempTerrainId = sgworld.ProjectTree.FindItem("临时地形"); if (mytempTerrainId != "") { sgworld.ProjectTree.DeleteItem(mytempTerrainId); } } catch (e) { } allClean(); clickCreatorTerra = 0; } } function polygon_OnLButtonDown(Flags, X, Y) { var CursorCoord = sgworld.Window.PixelToWorld(X, Y); if (gPolyObj == null) { var myLine = sgworld.Creator.GeometryCreator.CreateLineStringGeometry([CursorCoord.Position.x, CursorCoord.Position.y, 0, CursorCoord.Position.x, CursorCoord.Position.y, 0]); gPolyObj = sgworld.Creator.CreatePolyline(myLine, sgworld.Creator.CreateColor(255, 0, 0, 255), 2, tempTerrainId, tempName); gPolyObj.LineStyle.Width = -1; gPolyObj.Geometry.StartEdit(); } else { if (gPolyObj.ObjectType == 1) { // Deleting the temporary line var x = gPolyObj.Geometry.Points.Item(0).X; var y = gPolyObj.Geometry.Points.Item(0).Y; sgworld.Creator.DeleteObject(gPolyObj.ID); // Creating the polygon var myGeometry = sgworld.Creator.GeometryCreator.CreateLinearRingGeometry([x, y, 0, CursorCoord.Position.x, CursorCoord.Position.y, 0, CursorCoord.Position.x, CursorCoord.Position.y, 0]) gPolyObj = sgworld.Creator.createPolygon(myGeometry, sgworld.Creator.CreateColor(255, 0, 0, 1), sgworld.Creator.CreateColor(0, 255, 0, 0.5), 2, tempTerrainId, tempName); gPolyObj.LineStyle.Width = -2; gPolyObj.Terrain.GroundObject = true; gPolyObj.Geometry.StartEdit(); } else { gPolyObj.Geometry.Rings(0).Points.Item(gPolyObj.Geometry.Rings(0).Points.count - 1).X = CursorCoord.Position.x; gPolyObj.Geometry.Rings(0).Points.Item(gPolyObj.Geometry.Rings(0).Points.count - 1).Y = CursorCoord.Position.y; gPolyObj.Geometry.Rings(0).Points.Item(gPolyObj.Geometry.Rings(0).Points.count - 1).Z = 0; gPolyObj.Geometry.Rings(0).Points.AddPoint(CursorCoord.Position.x, CursorCoord.Position.y, 0); } } return true; } function polygon_OnFrame() { if (gPolyObj != null) { try { var mouseInfo = sgworld.Window.GetMouseInfo() var CursorCoord = sgworld.Window.pixelToWorld(mouseInfo.X, mouseInfo.Y); if (CursorCoord == null) return false; if (gPolyObj.ObjectType == 2) { gPolyObj.Geometry.Rings(0).Points.Item(gPolyObj.Geometry.Rings(0).Points.count - 1).X = CursorCoord.Position.x; gPolyObj.Geometry.Rings(0).Points.Item(gPolyObj.Geometry.Rings(0).Points.count - 1).Y = CursorCoord.Position.y; gPolyObj.Geometry.Rings(0).Points.Item(gPolyObj.Geometry.Rings(0).Points.count - 1).Z = 0; } else { gPolyObj.Geometry.Points.Item(gPolyObj.Geometry.Points.count - 1).X = CursorCoord.Position.x; gPolyObj.Geometry.Points.Item(gPolyObj.Geometry.Points.count - 1).Y = CursorCoord.Position.y; gPolyObj.Geometry.Points.Item(gPolyObj.Geometry.Points.count - 1).Z = 0; } } catch (e) { } } } // private static ITerrainHole61 tempModifier = null; function polygon_OnRButtonUp(Flags, X, Y) { if (gPolyObj != null) { if (gPolyObj.ObjectType == 1) { sgworld.Creator.DeleteObject(gPolyObj.ID); } else { gPolyObj.Geometry.Rings(0).Points.DeletePoint(gPolyObj.Geometry.Rings(0).Points.count - 1); if (gPolyObj.Geometry.Rings(0).Points.count > 2) { for (var i = 0; i < gPolyObj.Geometry.Rings(0).Points.count; i++) { if (i < gPolyObj.Geometry.Rings(0).Points.count - 1) { var point1 = gPolyObj.Geometry.Rings(0).Points.Item(i); var point2 = gPolyObj.Geometry.Rings(0).Points.Item(i + 1); // var point3 = sgworld.Terrain.GetGroundHeightInfo(point2.X, point2.Y, 1, false); // var point4 = sgworld.Terrain.GetGroundHeightInfo(point1.X, point1.Y, 1, false); var myLine = sgworld.Creator.GeometryCreator.CreateLineStringGeometry([point1.X, point1.Y, -20, point2.X, point2.Y, -20]); sidePolygon = sgworld.Creator.CreatePolyline(myLine, sgworld.Creator.CreateColor(155, 155, 155, 255), 3, tempTerrainId, tempName); sidePolygon.FillStyle.Texture.FileName = allurl + "images\\dijian.jpg"; sidePolygon.FillStyle.Texture.TilingMethod = 1; sidePolygon.ExtendToGround = true; sidePolygon.FillStyle.Texture.ScaleX = 50; sidePolygon.FillStyle.Texture.ScaleY = 50; sidePolygon.LineStyle.Width = -1; sidePolygon.Terrain.GroundObject = false; } else { if (i == gPolyObj.Geometry.Rings(0).Points.count - 1) { var point1 = gPolyObj.Geometry.Rings(0).Points.Item(i); var point2 = gPolyObj.Geometry.Rings(0).Points.Item(0); // var point3 = sgworld.Terrain.GetGroundHeightInfo(point2.X, point2.Y, 1, false); // var point4 = sgworld.Terrain.GetGroundHeightInfo(point1.X, point1.Y, 1, false); // var myLine = sgworld.Creator.GeometryCreator.CreateLinearRingGeometry([point1.X, point1.Y, -20, point2.X, point2.Y, -20, point3.Position.X, point3.Position.Y, point3.Position.Altitude, point4.Position.X, point4.Position.Y, point4.Position.Altitude, point4.Position.X, point4.Position.Y, point4.Position.Altitude]); // sidePolygon = sgworld.Creator.CreatePolygon(myLine, sgworld.Creator.CreateColor(150, 150, 150, 255), sgworld.Creator.CreateColor(150, 150, 150, 255), 3, tempTerrainId, tempName+i); var myLine = sgworld.Creator.GeometryCreator.CreateLineStringGeometry([point1.X, point1.Y, -20, point2.X, point2.Y, -20]); sidePolygon = sgworld.Creator.CreatePolyline(myLine, sgworld.Creator.CreateColor(155, 155, 155, 255), 3, tempTerrainId, tempName); sidePolygon.FillStyle.Texture.FileName = allurl + "images/dijian.jpg"; sidePolygon.FillStyle.Texture.TilingMethod = 1; sidePolygon.ExtendToGround = true; sidePolygon.FillStyle.Texture.ScaleX = 50; sidePolygon.FillStyle.Texture.ScaleY = 50; sidePolygon.LineStyle.Width = -1; sidePolygon.Terrain.GroundObject = false; } } } gPolyObj.Geometry.EndEdit(); var tempModifier = sgworld.Creator.CreateHoleOnTerrain(gPolyObj.Geometry, tempTerrainId, tempName); Polygon = sgworld.Creator.CreatePolygon(gPolyObj.Geometry, sgworld.Creator.CreateColor(150, 150, 150, 255), sgworld.Creator.CreateColor(150, 150, 150, 255), 3, tempTerrainId, tempName); Polygon.FillStyle.Texture.FileName = allurl + "images/dimian.jpg"; Polygon.FillStyle.Texture.TilingMethod = 1; Polygon.FillStyle.Texture.ScaleX = 100; Polygon.FillStyle.Texture.ScaleY = 100; Polygon.Terrain.GroundObject = false; Polygon.Position.Altitude = -20; //tempModifier.Position.Altitude = -40; } if (gPolyObj != null) { sgworld.Creator.DeleteObject(gPolyObj.ID); //sgworld.ProjectTree.DeleteItem(gPolyObj.TreeItem.ItemID); } } } polygon_Clean(); return true; } /// /// 初始化绘制多边形 /// function polygon_Clean() { try { tempTerrainId = 0; tempName = ""; gPolyObj = null; Polygon = null; sidePolygon = null; sgworld.DetachEvent("OnLButtonDown", polygon_OnLButtonDown); sgworld.DetachEvent("OnRButtonUp", polygon_OnRButtonUp); sgworld.DetachEvent("OnFrame", polygon_OnFrame); sgworld.Window.SetInputMode(0); } catch(e) { } } //点击 function select_OnLButtonUp(Flags, X, Y) { var selectFeature = null; var CursorCoord = sgworld.Window.PixelToWorld(X, Y); var clickPopup; if (CursorCoord.Type == 8192) { selectFeature = sgworld.Creator.GetObject(CursorCoord.ObjectID); sgworld.Window.RemovePopupByCaption("属性"); try { var type = selectFeature.FeatureAttributes.GetFeatureAttribute("DataType").Value; try { if (type == "polyline") { var selectType = "attributePolyline"; var Id = selectFeature.FeatureAttributes.GetFeatureAttribute("Id").Value; var Type = selectFeature.FeatureAttributes.GetFeatureAttribute("Type").Value; var Size = selectFeature.FeatureAttributes.GetFeatureAttribute("Size").Value; var StartId = selectFeature.FeatureAttributes.GetFeatureAttribute("StartId").Value; var EndId = selectFeature.FeatureAttributes.GetFeatureAttribute("EndId").Value; var Yaw = selectFeature.FeatureAttributes.GetFeatureAttribute("Yaw").Value; var Pitch = selectFeature.FeatureAttributes.GetFeatureAttribute("Pitch").Value; var scaleY = selectFeature.FeatureAttributes.GetFeatureAttribute("scaleY").Value; clickPopup = sgworld.Creator.CreatePopupMessage("属性", allurl + "clickSelect.html?type=1" + "&Id=" + Id + "&Type=" + Type + "&Size=" + Size + "&StartId=" + StartId + "&EndId=" + EndId + "&Yaw=" + Yaw + "&Pitch=" + Pitch + "&scaleY=" + scaleY, 235, 100, 220, 220); //clickPopup.InnerText = htmlStr; clickPopup.Flags = 512; clickPopup.AllowResize = true; clickPopup.AllowDrag = true; sgworld.Window.ShowPopup(clickPopup); } if (type == "point") { var selectType = "attributePoint"; var Id = selectFeature.FeatureAttributes.GetFeatureAttribute("Id").Value; var Type = selectFeature.FeatureAttributes.GetFeatureAttribute("Type").Value; var NodeId = selectFeature.FeatureAttributes.GetFeatureAttribute("NodeId").Value; var JoinType = selectFeature.FeatureAttributes.GetFeatureAttribute("JoinType").Value; var TerraDepth = selectFeature.FeatureAttributes.GetFeatureAttribute("TerraDepth").Value; var WellType = selectFeature.FeatureAttributes.GetFeatureAttribute("WellType").Value; clickPopup = sgworld.Creator.CreatePopupMessage("属性", allurl + "clickSelect.html?type=2" + "&Id=" + Id + "&Type=" + Type + "&NodeId=" + NodeId + "&JoinType=" + JoinType + "&TerraDepth=" + TerraDepth + "&WellType=" + WellType, 235, 100, 220, 220); //clickPopup.InnerText = htmlStr; clickPopup.Flags = 512; clickPopup.AllowResize = true; clickPopup.AllowDrag = true; sgworld.Window.ShowPopup(clickPopup); } } catch (e) { } } catch (e) { } //document.getElementById("TerraExplorerInformationWindow").style.display = "none"; } return true; } function select_OnRButtonUp(Flags, X, Y) { sgworld.DetachEvent("OnLButtonUp", select_OnLButtonUp); sgworld.DetachEvent("OnRButtonUp", select_OnRButtonUp); sgworld.Window.SetInputMode(0); return true; } var selectPolygonId = 0; var selectPolygonName = "area"; var selectgPolyObj = null; function selectPolygon() { AllEventClean(); CleanTint(); variableClean(); selectPolygonId = sgworld.ProjectTree.FindItem("临时区域"); if (selectPolygonId == 0) { selectPolygonId = sgworld.ProjectTree.CreateGroup("临时区域"); } sgworld.AttachEvent("OnLButtonDown", selectPolygon_OnLButtonDown); sgworld.AttachEvent("OnRButtonUp", selectPolygon_OnRButtonUp); sgworld.AttachEvent("OnFrame", selectPolygon_OnFrame); sgworld.Window.SetInputMode(1); } function selectPolygon_OnLButtonDown(Flags, X, Y) { var CursorCoord = sgworld.Window.PixelToWorld(X, Y); if (selectgPolyObj == null) { var myLine = sgworld.Creator.GeometryCreator.CreateLineStringGeometry([CursorCoord.Position.x, CursorCoord.Position.y, 0, CursorCoord.Position.x, CursorCoord.Position.y, 0]); selectgPolyObj = sgworld.Creator.CreatePolyline(myLine, sgworld.Creator.CreateColor(255, 0, 0, 255), 0, selectPolygonId, tempName); selectgPolyObj.LineStyle.Width = -1; selectgPolyObj.Geometry.StartEdit(); } else { if (selectgPolyObj.ObjectType == 1) { // Deleting the temporary line var x = selectgPolyObj.Geometry.Points.Item(0).X; var y = selectgPolyObj.Geometry.Points.Item(0).Y; sgworld.Creator.DeleteObject(selectgPolyObj.ID); // Creating the polygon var myGeometry = sgworld.Creator.GeometryCreator.CreateLinearRingGeometry([x, y, 0, CursorCoord.Position.x, CursorCoord.Position.y, 0, CursorCoord.Position.x, CursorCoord.Position.y, 0]) selectgPolyObj = sgworld.Creator.createPolygon(myGeometry, sgworld.Creator.CreateColor(255, 0, 0, 255), sgworld.Creator.CreateColor(0, 255, 0, 26), 0, selectPolygonId, tempName); selectgPolyObj.LineStyle.Width = -2; selectgPolyObj.Terrain.GroundObject = true; selectgPolyObj.Geometry.StartEdit(); } else { selectgPolyObj.Geometry.Rings(0).Points.Item(selectgPolyObj.Geometry.Rings(0).Points.count - 1).X = CursorCoord.Position.x; selectgPolyObj.Geometry.Rings(0).Points.Item(selectgPolyObj.Geometry.Rings(0).Points.count - 1).Y = CursorCoord.Position.y; selectgPolyObj.Geometry.Rings(0).Points.Item(selectgPolyObj.Geometry.Rings(0).Points.count - 1).Z = 0; selectgPolyObj.Geometry.Rings(0).Points.AddPoint(CursorCoord.Position.x, CursorCoord.Position.y, 0); } } return true; } function selectPolygon_OnFrame() { if (selectgPolyObj != null) { try { var mouseInfo = sgworld.Window.GetMouseInfo() var CursorCoord = sgworld.Window.pixelToWorld(mouseInfo.X, mouseInfo.Y); if (CursorCoord == null) return false; if (selectgPolyObj.ObjectType == 2) { selectgPolyObj.Geometry.Rings(0).Points.Item(selectgPolyObj.Geometry.Rings(0).Points.count - 1).X = CursorCoord.Position.x; selectgPolyObj.Geometry.Rings(0).Points.Item(selectgPolyObj.Geometry.Rings(0).Points.count - 1).Y = CursorCoord.Position.y; selectgPolyObj.Geometry.Rings(0).Points.Item(selectgPolyObj.Geometry.Rings(0).Points.count - 1).Z = 0; } else { selectgPolyObj.Geometry.Points.Item(selectgPolyObj.Geometry.Points.count - 1).X = CursorCoord.Position.x; selectgPolyObj.Geometry.Points.Item(selectgPolyObj.Geometry.Points.count - 1).Y = CursorCoord.Position.y; selectgPolyObj.Geometry.Points.Item(selectgPolyObj.Geometry.Points.count - 1).Z = 0; } } catch (e) { } } } // private static ITerrainHole61 tempModifier = null; function selectPolygon_OnRButtonUp(Flags, X, Y) { var htmlStr = ""; selectPolygonId = 0; selectPolygonName = "area"; sgworld.DetachEvent("OnLButtonDown", selectPolygon_OnLButtonDown); sgworld.DetachEvent("OnRButtonUp", selectPolygon_OnRButtonUp); sgworld.DetachEvent("OnFrame", selectPolygon_OnFrame); sgworld.Window.SetInputMode(0); try {if(selectgPolyObj!=null) { if (selectgPolyObj.ObjectType == 1) { sgworld.Creator.DeleteObject(selectgPolyObj.ID); } else { selectgPolyObj.Geometry.Rings(0).Points.DeletePoint(selectgPolyObj.Geometry.Rings(0).Points.count - 1); if (selectgPolyObj.Geometry.Rings(0).Points.count > 2) { selectgPolyObj.Geometry.EndEdit(); // var AllPath = new Array(); // AllPath.push(); var layerItemId = sgworld.ProjectTree.FindItem(allPosition + "管道\\guandao1\\规划中压燃气Line1"); //管道\\ if (layerItemId != 0) { var pipeLayer = sgworld.ProjectTree.GetObject(layerItemId); if (pipeLayer.ObjectType == 39) { try { var selectedLayer = pipeLayer.ExecuteSpatialQuery(selectgPolyObj.Geometry, 1); if (selectedLayer.Count > 0) { htmlStr = ""; htmlStr += ""; htmlStr += ""; var firstFeature = selectedLayer(0); htmlStr += ""; htmlStr += ""; htmlStr += ""; htmlStr += ""; htmlStr += ""; htmlStr += ""; htmlStr += ""; for (var m = 0; m < selectedLayer.Count; m++) { var iAttribute = null; try { iAttribute = selectedLayer(m); } catch (e) { iAttribute = null; } if (iAttribute != null) { if (m % 2 == 0) { htmlStr += ""; } else { htmlStr += ""; } htmlStr += ""; htmlStr += ""; htmlStr += ""; htmlStr += ""; htmlStr += ""; htmlStr += ""; htmlStr += ""; } } htmlStr += "
"; htmlStr += "编号"; htmlStr += ""; htmlStr += "类型"; htmlStr += ""; htmlStr += "坡度"; htmlStr += ""; htmlStr += "管径"; htmlStr += ""; htmlStr += "起始设备编号"; htmlStr += ""; htmlStr += "结束设备编号"; htmlStr += "
"; try { htmlStr += iAttribute.FeatureAttributes.GetFeatureAttribute("Id").Value; } catch (e) { } htmlStr += ""; try { htmlStr += iAttribute.FeatureAttributes.GetFeatureAttribute("Type").Value; } catch (e) { } htmlStr += ""; try { htmlStr += iAttribute.FeatureAttributes.GetFeatureAttribute("Pitch").Value; } catch (e) { } htmlStr += ""; try { htmlStr += iAttribute.FeatureAttributes.GetFeatureAttribute("Size").Value; } catch (e) { } htmlStr += ""; try { htmlStr += iAttribute.FeatureAttributes.GetFeatureAttribute("StartId").Value; } catch (e) { } htmlStr += ""; try { htmlStr += iAttribute.FeatureAttributes.GetFeatureAttribute("EndId").Value; } catch (e) { } htmlStr += "
"; if (htmlStr != "") { var ScreenRectHeight = sgworld.Window.Rect.Height; var ScreenRectWidth = sgworld.Window.Rect.Width; var areaPopup = sgworld.Creator.CreatePopupMessage("区域查询", "", 231, (ScreenRectHeight-170), (ScreenRectWidth - 231), 170); areaPopup.InnerText = htmlStr; areaPopup.Flags = 512; areaPopup.AllowResize = true; areaPopup.AllowDrag = true; sgworld.Window.ShowPopup(areaPopup); } } else { alert("没有查询到数据!"); } } catch (e) { } } } } } } }catch(e) {} if (selectgPolyObj != null) { sgworld.Creator.DeleteObject(selectgPolyObj.ID); } selectgPolyObj = null; return true; } var judge = -1; //爆管分析 function pipeAnalyse(type) { CleanTint(); AllEventClean(); judge = type; if (judge != -1) { sgworld.AttachEvent("OnLButtonUp", pipeAnalyse_OnLButtonUp); sgworld.AttachEvent("OnRButtonUp", pipeAnalyse_OnRButtonUp); sgworld.Window.SetInputMode(1); } } var listLayer = []; //连通 function pipeAnalyse_OnLButtonUp(Flags, X, Y) { CleanTint(); var selectFeature = null; var CursorCoord = sgworld.Window.PixelToWorld(X, Y); if (CursorCoord.Type == 8192) { selectFeature = sgworld.Creator.GetObject(CursorCoord.ObjectID); try { var startId = selectFeature.FeatureAttributes.GetFeatureAttribute("StartId").Value; var endId = selectFeature.FeatureAttributes.GetFeatureAttribute("EndId").Value; var tintGroup = sgworld.ProjectTree.FindItem("高亮"); if (tintGroup != 0) { sgworld.ProjectTree.DeleteItem(tintGroup); } tintGroup = sgworld.ProjectTree.CreateGroup("高亮"); var tempLayer = sgworld.ProjectTree.GetObject(selectFeature.ParentGroupID); if (tempLayer.ObjectType == 39) { var myGeometry = sgworld.Creator.GeometryCreator.CreateLinearRingGeometry([114.048011, 22.531832, 0, 114.046471, 22.525349, 0, 114.056247, 22.524880, 0, 114.055244, 22.531647, 0]); var allFeature = tempLayer.ExecuteSpatialQuery(myGeometry, 1); for (var j = 0; j < allFeature.Count; j++) { var feature = allFeature.Item(j); if (feature.Geometry.GeometryType == 3) { var tempStartId = feature.FeatureAttributes.GetFeatureAttribute("StartId").Value; var tempEndId = feature.FeatureAttributes.GetFeatureAttribute("EndId").Value; if (tempStartId == startId || tempStartId == endId || tempEndId == startId || tempEndId == endId) { var featureX = feature.FeatureAttributes.GetFeatureAttribute("StartX").Value; var featureY = feature.FeatureAttributes.GetFeatureAttribute("StartY").Value; var featureZ = feature.FeatureAttributes.GetFeatureAttribute("Altitude").Value; var featureYaw = feature.FeatureAttributes.GetFeatureAttribute("Yaw").Value; var featurePitch = feature.FeatureAttributes.GetFeatureAttribute("Pitch").Value; var featureRoll = feature.FeatureAttributes.GetFeatureAttribute("Roll").Value; var featureScaleX = feature.FeatureAttributes.GetFeatureAttribute("scaleX").Value; var featureScaleY = feature.FeatureAttributes.GetFeatureAttribute("scaleY").Value; var featurePosition = sgworld.Creator.CreatePosition(featureX, featureY, featureZ, 3, featureYaw, (featurePitch - 90), featureRoll); var Polygon = null; if (judge == 1) { Polygon = sgworld.Creator.CreateCylinder(featurePosition, (featureScaleX / 1.95), featureScaleY, sgworld.Creator.CreateColor(255, 0, 0, 255), sgworld.Creator.CreateColor(255, 0, 0, 255), 36, tintGroup, "temp"); } else { Polygon = sgworld.Creator.CreateCylinder(featurePosition, (featureScaleX / 1.95), featureScaleY, sgworld.Creator.CreateColor(0, 255, 0, 255), sgworld.Creator.CreateColor(0, 255, 0, 255), 36, tintGroup, "temp"); } //var lineColor = sgworld.Creator.CreateColor(255, 0, 0, 255); //feature.Tint = lineColor; } } } if (judge == 1) { var burststyle = sgworld.Creator.CreateLabelStyle(); //allurl + "images/1.gif" //var burstImg = sgworld.Creator.CreateImageLabel(CursorCoord.Position, "E:\\PipeWeb\\images\\1.gif", burststyle, analygroupId, "temp"); var LabelText = "$$PARTICLE$$UserDefine:"; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; LabelText += ""; var burstLabel = sgworld.Creator.CreateLabel(CursorCoord.Position, LabelText, "", burststyle, tintGroup, "temp"); burstLabel.Style.Scale = 0.1; burstLabel.Style.LockMode = 1; burstLabel.Position.Altitude = burstLabel.Position.Altitude + 5; } } } catch (e) { } } return true; } function pipeAnalyse_OnRButtonUp(Flags, X, Y) { sgworld.DetachEvent("OnLButtonUp", pipeAnalyse_OnLButtonUp); sgworld.DetachEvent("OnRButtonUp", pipeAnalyse_OnRButtonUp); sgworld.Window.SetInputMode(0); CleanTint(); // AllEventClean(); variableClean(); return true; } var pipeConnectedId = new Array(); var pipeConnectedJoinId = new Array(); var pipeCount = 0; var myGeometry; var allFeature; //连通分析 function pipeConnected() { CleanTint(); AllEventClean(); variableClean(); sgworld.AttachEvent("OnLButtonUp", pipeConnected_OnLButtonUp); sgworld.AttachEvent("OnRButtonUp", pipeConnected_OnRButtonUp); sgworld.Window.SetInputMode(1); } //var listLayer = []; //连通 function pipeConnected_OnLButtonUp(Flags, X, Y) { var selectFeature = null; var Polygon = null; var CursorCoord = sgworld.Window.PixelToWorld(X, Y); var tintGroup = sgworld.ProjectTree.FindItem("高亮"); if (tintGroup == "") { tintGroup = sgworld.ProjectTree.CreateGroup("高亮"); } if (pipeCount == 0) { if (CursorCoord.Type == 8192) { try { selectFeature = sgworld.Creator.GetObject(CursorCoord.ObjectID); var tempLayer = sgworld.ProjectTree.GetObject(selectFeature.ParentGroupID); if (tempLayer.ObjectType == 39) { myGeometry = sgworld.Creator.GeometryCreator.CreateLinearRingGeometry([114.048011, 22.531832, 0, 114.046471, 22.525349, 0, 114.056247, 22.524880, 0, 114.055244, 22.531647, 0]); allFeature = tempLayer.ExecuteSpatialQuery(myGeometry, 1); } var startId = selectFeature.FeatureAttributes.GetFeatureAttribute("StartId").Value; var endId = selectFeature.FeatureAttributes.GetFeatureAttribute("EndId").Value; var pipeId = selectFeature.FeatureAttributes.GetFeatureAttribute("Id").Value; var featureX = selectFeature.FeatureAttributes.GetFeatureAttribute("StartX").Value; var featureY = selectFeature.FeatureAttributes.GetFeatureAttribute("StartY").Value; var featureZ = selectFeature.FeatureAttributes.GetFeatureAttribute("Altitude").Value; var featureYaw = selectFeature.FeatureAttributes.GetFeatureAttribute("Yaw").Value; var featurePitch = selectFeature.FeatureAttributes.GetFeatureAttribute("Pitch").Value; var featureRoll = selectFeature.FeatureAttributes.GetFeatureAttribute("Roll").Value; var featureScaleX = selectFeature.FeatureAttributes.GetFeatureAttribute("scaleX").Value; var featureScaleY = selectFeature.FeatureAttributes.GetFeatureAttribute("scaleY").Value; var featurePosition = sgworld.Creator.CreatePosition(featureX, featureY, featureZ, 3, featureYaw, (featurePitch - 90), featureRoll); Polygon = sgworld.Creator.CreateCylinder(featurePosition, (featureScaleX / 1.95), featureScaleY, sgworld.Creator.CreateColor(0, 255, 0, 255), sgworld.Creator.CreateColor(0, 255, 0, 255), 36, tintGroup, "temp"); pipeConnectedId.push(pipeId); pipeConnectedJoinId.push(startId); pipeConnectedJoinId.push(endId); pipeCount++; } catch (e) { } } } else { try { for (var j = 0; j < allFeature.Count; j++) { var feature = allFeature.Item(j); if (feature.Geometry.GeometryType == 3) { var tempStartId = feature.FeatureAttributes.GetFeatureAttribute("StartId").Value; var tempEndId = feature.FeatureAttributes.GetFeatureAttribute("EndId").Value; var pipeId = feature.FeatureAttributes.GetFeatureAttribute("Id").Value; if (!pipeConnectedIdExist(pipeId)) { if (!(pipeConnectedJoinIdExist(tempEndId) && pipeConnectedJoinIdExist(tempStartId))) { if (pipeConnectedJoinIdExist(tempEndId)) { pipeConnectedId.push(pipeId); pipeConnectedJoinId.push(tempStartId); var featureX = feature.FeatureAttributes.GetFeatureAttribute("StartX").Value; var featureY = feature.FeatureAttributes.GetFeatureAttribute("StartY").Value; var featureZ = feature.FeatureAttributes.GetFeatureAttribute("Altitude").Value; var featureYaw = feature.FeatureAttributes.GetFeatureAttribute("Yaw").Value; var featurePitch = feature.FeatureAttributes.GetFeatureAttribute("Pitch").Value; var featureRoll = feature.FeatureAttributes.GetFeatureAttribute("Roll").Value; var featureScaleX = feature.FeatureAttributes.GetFeatureAttribute("scaleX").Value; var featureScaleY = feature.FeatureAttributes.GetFeatureAttribute("scaleY").Value; var featurePosition = sgworld.Creator.CreatePosition(featureX, featureY, featureZ, 3, featureYaw, (featurePitch - 90), featureRoll); var Polygon = null; Polygon = sgworld.Creator.CreateCylinder(featurePosition, (featureScaleX / 1.95), featureScaleY, sgworld.Creator.CreateColor(0, 255, 0, 255), sgworld.Creator.CreateColor(0, 255, 0, 255), 36, tintGroup, "temp"); //var lineColor = sgworld.Creator.CreateColor(255, 0, 0, 255); //feature.Tint = lineColor; } if (pipeConnectedJoinIdExist(tempStartId)) { pipeConnectedId.push(pipeId); pipeConnectedJoinId.push(tempEndId); var featureX = feature.FeatureAttributes.GetFeatureAttribute("StartX").Value; var featureY = feature.FeatureAttributes.GetFeatureAttribute("StartY").Value; var featureZ = feature.FeatureAttributes.GetFeatureAttribute("Altitude").Value; var featureYaw = feature.FeatureAttributes.GetFeatureAttribute("Yaw").Value; var featurePitch = feature.FeatureAttributes.GetFeatureAttribute("Pitch").Value; var featureRoll = feature.FeatureAttributes.GetFeatureAttribute("Roll").Value; var featureScaleX = feature.FeatureAttributes.GetFeatureAttribute("scaleX").Value; var featureScaleY = feature.FeatureAttributes.GetFeatureAttribute("scaleY").Value; var featurePosition = sgworld.Creator.CreatePosition(featureX, featureY, featureZ, 3, featureYaw, (featurePitch - 90), featureRoll); var Polygon = null; Polygon = sgworld.Creator.CreateCylinder(featurePosition, (featureScaleX / 1.95), featureScaleY, sgworld.Creator.CreateColor(0, 255, 0, 255), sgworld.Creator.CreateColor(0, 255, 0, 255), 36, tintGroup, "temp"); } } } } } } catch (e) { } } return true; } function pipeConnected_OnRButtonUp(Flags, X, Y) { CleanTint(); try { sgworld.DetachEvent("OnLButtonUp", pipeConnected_OnLButtonUp); sgworld.DetachEvent("OnRButtonUp", pipeConnected_OnRButtonUp); } catch (e) { } sgworld.Window.SetInputMode(0); variableClean(); return true; } function pipeConnectedIdExist(pipeItemId) { for (var i = 0; i < pipeConnectedId.length; i++) { if (pipeConnectedId[i] == pipeItemId) { return true; } } return false; } function pipeConnectedJoinIdExist(pipeItemJoinId) { for (var i = 0; i < pipeConnectedJoinId.length; i++) { if (pipeConnectedJoinId[i] == pipeItemJoinId) { return true; } } return false; } function allClean() { sgworld.Navigate.UndergroundMode = false; CleanTint(); AllEventClean(); variableClean(); //AllInitialise(); } function variableClean() { tempTerrainId = 0; tempName = ""; pipeConnectedId = []; pipeConnectedJoinId = []; pipeCount = 0; if (flightgPolyObj != null) { sgworld.Creator.DeleteObject(flightgPolyObj.ID); flightgPolyObj = null; } try { clearInterval(time); } catch (e) { } try { stopMovement(); //clearInterval(status); } catch (e) { } fId = sgworld.ProjectTree.FindItem("管道流动"); if (fId != 0) { try { sgworld.ProjectTree.DeleteItem(fId); } catch (e) { } } try { flightGroupId = sgworld.ProjectTree.FindItem("飞行路线"); if (flightGroupId != 0 && flightGroupId != "") { sgworld.ProjectTree.DeleteItem(flightGroupId); } } catch (e) { } try { var tempPositionGroupId = sgworld.ProjectTree.FindItem("选择"); if (tempPositionGroupId != "") { sgworld.ProjectTree.DeleteItem(tempPositionGroupId); } } catch (e) { } try { var addSellGroupId = sgworld.ProjectTree.FindItem("新应急方案"); if (addSellGroupId == "") { sgworld.Creator.DeleteObject(addSellGroupId); } } catch (e) { } try { var statisticsPolygonId = sgworld.ProjectTree.FindItem("临时区域"); if (statisticsPolygonId != "") { sgworld.ProjectTree.DeleteItem(statisticsPolygonId); } } catch (e) { } try { var mytempTerrainId = sgworld.ProjectTree.FindItem("临时地形"); if (mytempTerrainId != "") { sgworld.ProjectTree.DeleteItem(mytempTerrainId); } } catch (e) { } try { var clickGroupId = sgworld.ProjectTree.FindItem("选中网格"); if (clickGroupId != "") { sgworld.ProjectTree.DeleteItem(clickGroupId); } } catch (e) { } try { var arrId = sgworld.ProjectTree.FindItem("分析工具"); if (arrId != 0) { sgworld.ProjectTree.DeleteItem(arrId); } } catch (e) { } if (gPolyObj != null) { try { sgworld.Creator.DeleteObject(gPolyObj.ID); } catch (e) { } gPolyObj = null; } if (Polygon != null) { try { sgworld.Creator.DeleteObject(Polygon.ID); } catch (e) { } Polygon = null; } if (sidePolygon != null) { try { sgworld.Creator.DeleteObject(sidePolygon.ID); } catch (e) { } sidePolygon = null; } selectPolygonId = 0; selectPolygonName = "area"; if (selectgPolyObj != null) { try { sgworld.Creator.DeleteObject(selectgPolyObj.ID); } catch (e) { } selectgPolyObj = null; } judge = -1; earthId = 0; earthName = ""; if (earthPolyObj != null) { try { sgworld.Creator.DeleteObject(earthPolyObj.ID); } catch (e) { } earthPolyObj = null; } } function CleanTint() { try { var tintGroup = sgworld.ProjectTree.FindItem("高亮"); if (tintGroup != 0) { sgworld.ProjectTree.DeleteItem(tintGroup); } } catch (e) { } // tintGroup = sgworld.ProjectTree.CreateGroup("高亮"); // var analygroupId = sgworld.ProjectTree.FindItem("temp"); // if (analygroupId != 0) { // sgworld.ProjectTree.DeleteItem(analygroupId); // } // if (listLayer.length > 0) { // for (var i = 0; i < listLayer.length; i++) { // try { // var tintFeature = sgworld.Creator.GetObject(listLayer[i]); // tintFeature.Tint.SetAlpha(0); // } catch (e) { } // } // listLayer = []; // } } function AllEventClean() { var inputM = sgworld.Window.GetInputMode(); if (inputM != 0) { try { sgworld.DetachEvent("OnLButtonDown", move_OnLButtonDown); } catch (e) { } try { sgworld.DetachEvent("OnLButtonUp", move_OnLButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnRButtonUp", move_OnRButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnFrame", move_OnFrame); } catch (e) { } try { sgworld.DetachEvent("OnLButtonUp", pipeAnalyse_OnLButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnRButtonUp", pipeAnalyse_OnRButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnLButtonUp", pipeConnected_OnLButtonUp); sgworld.DetachEvent("OnRButtonUp", pipeConnected_OnRButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnLButtonUp", select_OnLButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnRButtonUp", select_OnRButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnLButtonDown", selectPolygon_OnLButtonDown); } catch (e) { } try { sgworld.DetachEvent("OnRButtonUp", selectPolygon_OnRButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnFrame", selectPolygon_OnFrame); } catch (e) { } try { sgworld.DetachEvent("OnLButtonDown", polygon_OnLButtonDown); } catch (e) { } try { sgworld.DetachEvent("OnRButtonUp", polygon_OnRButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnFrame", polygon_OnFrame); } catch (e) { } try { sgworld.DetachEvent("OnLButtonUp", high_OnLButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnRButtonUp", high_OnRButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnLButtonDown", earth_OnLButtonDown); } catch (e) { } try { sgworld.DetachEvent("OnRButtonUp", earth_OnRButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnFrame", earth_OnFrame); } catch (e) { } try { sgworld.DetachEvent("OnLButtonUp", clickCheck_OnLButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnRButtonUp", clickCheck_OnRButtonUp); } catch (e) { } try { sgworld.DetachEvent("OnLButtonDown", DrawPath_LButtonDown); sgworld.DetachEvent("OnRButtonUp", DrawPath_RButtonUp); sgworld.DetachEvent("OnFrame", DrawPath_OnFrame); } catch (e) { } sgworld.Window.SetInputMode(0); } } function AllInitialise() { try { for (var i = 0; i < showGroupId.length; i++) { if (showGroupId[i] != 0) { try { sgworld.ProjectTree.SetVisibility(showGroupId[i], false); } catch (e) { } } } showGroupId = []; } catch (e) { } } var earthId = 0; var earthName = ""; var earthPolyObj = null; function creatorEarth() { polygon_Clean(); earthId = sgworld.ProjectTree.FindItem("分析工具"); if (earthId == 0) { earthId = sgworld.ProjectTree.CreateGroup("分析工具"); } earthName = "temp"; sgworld.AttachEvent("OnLButtonDown", earth_OnLButtonDown); sgworld.AttachEvent("OnRButtonUp", earth_OnRButtonUp); sgworld.AttachEvent("OnFrame", earth_OnFrame); sgworld.Window.SetInputMode(1); } function earth_OnLButtonDown(Flags, X, Y) { var CursorCoord = sgworld.Window.PixelToWorld(X, Y); if (earthPolyObj == null) { var myLine = sgworld.Creator.GeometryCreator.CreateLineStringGeometry([CursorCoord.Position.x, CursorCoord.Position.y, 0, CursorCoord.Position.x, CursorCoord.Position.y, 0]); earthPolyObj = sgworld.Creator.CreatePolyline(myLine, sgworld.Creator.CreateColor(255, 0, 0, 255), 2, earthId, earthName); earthPolyObj.LineStyle.Width = -1; earthPolyObj.Geometry.StartEdit(); } else { if (earthPolyObj.ObjectType == 1) { // Deleting the temporary line var x = earthPolyObj.Geometry.Points.Item(0).X; var y = earthPolyObj.Geometry.Points.Item(0).Y; sgworld.Creator.DeleteObject(earthPolyObj.ID); // Creating the polygon var myGeometry = sgworld.Creator.GeometryCreator.CreateLinearRingGeometry([x, y, 0, CursorCoord.Position.x, CursorCoord.Position.y, 0, CursorCoord.Position.x, CursorCoord.Position.y, 0]) earthPolyObj = sgworld.Creator.createPolygon(myGeometry, sgworld.Creator.CreateColor(255, 0, 0, 1), sgworld.Creator.CreateColor(0, 255, 0, 0.5), 2, earthId, earthName); earthPolyObj.LineStyle.Width = -2; earthPolyObj.Terrain.GroundObject = true; earthPolyObj.Geometry.StartEdit(); } else { earthPolyObj.Geometry.Rings(0).Points.Item(earthPolyObj.Geometry.Rings(0).Points.count - 1).X = CursorCoord.Position.x; earthPolyObj.Geometry.Rings(0).Points.Item(earthPolyObj.Geometry.Rings(0).Points.count - 1).Y = CursorCoord.Position.y; earthPolyObj.Geometry.Rings(0).Points.Item(earthPolyObj.Geometry.Rings(0).Points.count - 1).Z = 0; earthPolyObj.Geometry.Rings(0).Points.AddPoint(CursorCoord.Position.x, CursorCoord.Position.y, 0); } } return true; } function earth_OnFrame() { if (earthPolyObj != null) { try { var mouseInfo = sgworld.Window.GetMouseInfo() var CursorCoord = sgworld.Window.pixelToWorld(mouseInfo.X, mouseInfo.Y); if (CursorCoord == null) return false; if (earthPolyObj.ObjectType == 2) { earthPolyObj.Geometry.Rings(0).Points.Item(earthPolyObj.Geometry.Rings(0).Points.count - 1).X = CursorCoord.Position.x; earthPolyObj.Geometry.Rings(0).Points.Item(earthPolyObj.Geometry.Rings(0).Points.count - 1).Y = CursorCoord.Position.y; earthPolyObj.Geometry.Rings(0).Points.Item(earthPolyObj.Geometry.Rings(0).Points.count - 1).Z = 0; } else { earthPolyObj.Geometry.Points.Item(earthPolyObj.Geometry.Points.count - 1).X = CursorCoord.Position.x; earthPolyObj.Geometry.Points.Item(earthPolyObj.Geometry.Points.count - 1).Y = CursorCoord.Position.y; earthPolyObj.Geometry.Points.Item(earthPolyObj.Geometry.Points.count - 1).Z = 0; } } catch (e) { } } } // private static ITerrainHole61 tempModifier = null; function earth_OnRButtonUp(Flags, X, Y) { if (earthPolyObj.ObjectType == 1) { sgworld.Creator.DeleteObject(earthPolyObj.ID); } else { earthPolyObj.Geometry.Rings(0).Points.DeletePoint(earthPolyObj.Geometry.Rings(0).Points.count - 1); if (earthPolyObj.Geometry.Rings(0).Points.count > 2) { earthPolyObj.Geometry.EndEdit(); var tempModifier = sgworld.Creator.CreateTerrainModifier(earthPolyObj.Geometry, 0, true, 0, earthId, earthName); try { var arrModifierID = []; arrModifierID.push(tempModifier.ID); var tempVolumeAnalysisInfo = sgworld.Analysis.CalculateVolume(arrModifierID, 0.5); tempModifier.Tooltip.Text = "填土方:" + tempVolumeAnalysisInfo.AddedCubicMeters + "挖土方:" + tempVolumeAnalysisInfo.RemovedCubicMeters; } catch (e) { alert(e); } } if (earthPolyObj != null) { sgworld.Creator.DeleteObject(earthPolyObj.ID); //sgworld.ProjectTree.DeleteItem(earthPolyObj.TreeItem.ItemID); } } earth_Clean(); return true; } /// /// 初始化绘制多边形 /// function earth_Clean() { try { earthId = 0; earthName = ""; earthPolyObj = null; sgworld.DetachEvent("OnLButtonDown", earth_OnLButtonDown); sgworld.DetachEvent("OnRButtonUp", earth_OnRButtonUp); sgworld.DetachEvent("OnFrame", earth_OnFrame); sgworld.Window.SetInputMode(0); } catch (e) { } } var moveSelectLabel = null; //移动 function move_OnLButtonDown(Flags, X, Y) { var CursorCoord = sgworld.Window.PixelToWorld(X, Y); if (CursorCoord.Type == 1) { moveSelectLabel = sgworld.Creator.GetObject(CursorCoord.ObjectID); var parentId = sgworld.ProjectTree.GetNextItem(moveSelectLabel.ID, 15); var parentName = sgworld.ProjectTree.GetItemName(parentId); if (parentName == "二三维联动") { sgworld.AttachEvent("OnFrame", move_OnFrame); } } return true; } function move_OnLButtonUp(Flags, X, Y) { try { sgworld.DetachEvent("OnFrame", move_OnFrame); } catch (e) { } return true; } function move_OnFrame() { var mouseInfo = sgworld.Window.GetMouseInfo() var CursorCoord = sgworld.Window.pixelToWorld(mouseInfo.X, mouseInfo.Y); if (moveSelectLabel != null) { moveSelectLabel.Position.X = CursorCoord.Position.X; moveSelectLabel.Position.Y = CursorCoord.Position.Y; var tdobj = window.frames["2d"]; tdobj.moveGraphic(CursorCoord.Position.X, CursorCoord.Position.Y); } } function move_OnRButtonUp(Flags, X, Y) { sgworld.DetachEvent("OnLButtonDown", move_OnLButtonDown); sgworld.DetachEvent("OnLButtonUp", move_OnLButtonUp); sgworld.DetachEvent("OnRButtonUp", move_OnRButtonUp); try { sgworld.DetachEvent("OnFrame", move_OnFrame); } catch (e) { } sgworld.Window.SetInputMode(0); return true; } var flightgPolyObj = null; var flightGroupId = 0; //飞行路径 function flightPath() { try { flightgPolyObj = null; flightGroupId = sgworld.ProjectTree.FindItem("飞行路线"); if (flightGroupId != 0 && flightGroupId != "") { sgworld.ProjectTree.DeleteItem(flightGroupId); } flightGroupId = sgworld.ProjectTree.CreateGroup("飞行路线"); sgworld.AttachEvent("OnLButtonDown", DrawPath_LButtonDown); sgworld.AttachEvent("OnRButtonUp", DrawPath_RButtonUp); sgworld.AttachEvent("OnFrame", DrawPath_OnFrame); sgworld.Window.SetInputMode(1); } catch (e) { } } //---------- function DrawPath_LButtonDown(Flags, X, Y) { var CursorCoord = sgworld.Window.pixelToWorld(X, Y); if (CursorCoord == null) return false; if (flightgPolyObj == null) { var myGeometry = sgworld.Creator.GeometryCreator.CreateLineStringGeometry([CursorCoord.Position.x, CursorCoord.Position.y, 0, CursorCoord.Position.x, CursorCoord.Position.y, 0]) flightgPolyObj = sgworld.Creator.CreatePolyline(myGeometry, sgworld.Creator.CreateColor(0, 255, 0, 1), 2, flightGroupId, "test"); flightgPolyObj.LineStyle.Width = -2; flightgPolyObj.Geometry.StartEdit(); } else { if (flightgPolyObj != null) { flightgPolyObj.Geometry.Points.Item(flightgPolyObj.Geometry.Points.count - 1).X = CursorCoord.Position.x; flightgPolyObj.Geometry.Points.Item(flightgPolyObj.Geometry.Points.count - 1).Y = CursorCoord.Position.y; flightgPolyObj.Geometry.Points.Item(flightgPolyObj.Geometry.Points.count - 1).Z = 0; flightgPolyObj.Geometry.Points.AddPoint(CursorCoord.Position.x, CursorCoord.Position.y, 0); } } return true; } //----------- // onFrame //----------- function DrawPath_OnFrame() { if (flightgPolyObj != null) { try { var mouseInfo = sgworld.Window.GetMouseInfo() var CursorCoord = sgworld.Window.pixelToWorld(mouseInfo.X, mouseInfo.Y); if (CursorCoord == null) return false; flightgPolyObj.Geometry.Points.Item(flightgPolyObj.Geometry.Points.count - 1).X = CursorCoord.Position.x; flightgPolyObj.Geometry.Points.Item(flightgPolyObj.Geometry.Points.count - 1).Y = CursorCoord.Position.y; flightgPolyObj.Geometry.Points.Item(flightgPolyObj.Geometry.Points.count - 1).Z = 0; } catch (e) { } } } //------------- // DrawPolyRButtonUp //------------- function DrawPath_RButtonUp(Flags, X, Y) { if (flightgPolyObj == null || flightgPolyObj.Geometry.Points.count <= 2) { Reset(); return false; } flightgPolyObj.Geometry.Points.DeletePoint(flightgPolyObj.Geometry.Points.count - 1); flightgPolyObj.Geometry.EndEdit(); CreateFlyPath(); Reset(); return true; } function Reset() { try { sgworld.DetachEvent("OnLButtonDown", DrawPath_LButtonDown); sgworld.DetachEvent("OnRButtonUp", DrawPath_RButtonUp); sgworld.DetachEvent("OnFrame", DrawPath_OnFrame); if (flightgPolyObj != null) { sgworld.Creator.DeleteObject(flightgPolyObj.ID); flightgPolyObj = null; } } catch (e) { } sgworld.Window.SetInputMode(0); } function CreateFlyPath() { if (flightgPolyObj != null && flightGroupId != 0) { try { var waypointDirection = 0; var firstPosition = sgworld.Creator.CreatePosition(flightgPolyObj.Geometry.Points.Item(0).X, flightgPolyObj.Geometry.Points.Item(0).Y, 0); var secondPosition = sgworld.Creator.CreatePosition(flightgPolyObj.Geometry.Points.Item(1).X, flightgPolyObj.Geometry.Points.Item(1).Y, 0); firstPosition = firstPosition.AimTo(secondPosition); var flightObject = sgworld.Creator.CreateDynamicObject(null, 1, 3, "", 1, 0, flightGroupId, "沿路径观察"); for (var k = 0; k < flightgPolyObj.Geometry.Points.count; k++) { if (k == 0) { waypointDirection = firstPosition.Yaw; } else { waypointDirection = 0; } var a = sgworld.Creator.CreateRouteWaypoint(flightgPolyObj.Geometry.Points.Item(k).X, flightgPolyObj.Geometry.Points.Item(k).Y, 10, 200, waypointDirection, 0, 0, 0, 0, ""); flightObject.Waypoints.AddWaypoint(a); } flightObject.Action.Code = 5; flightObject.CircularRoute = false; var flightHtmlStr = ""; flightHtmlStr += "