// 创建app var app = new THING.App({ url: '/api/scene/0b75dc5f4460f22c329afd96', // url: '/api/scene/ab93bd9640a9db05a4937351', background: 'https://www.thingjs.com/static/images/background_img_03.png' }); //设备列表 var buildingStore; $.ajax({ type: "GET", url:'/uploads/wechat/163607/file/杨浦16/buildingStore.json', dataType: "json", async: false, success: function (data) { console.log(data) buildingStore = data.buildingStore } }); app.camera.xAngleLimitRange = [0, 90]; var campusUrl;//场景列表 var dataObj = { progress: 0 }; // 场景加载进度条数据对象 var loadingPanel; // 进度条界面组件 var curCampus;//存放园区url路径 var company_code; var buildingStore; var miniMapCtrl = null; // 小地图控件 var webSocket;//webSocket var tileLayer1 = null; // 加入地图背景后选用的图层 var box = null; // 鼠标点击第一人称行走按钮时,红色盒子提示 var fpsCtrl = null; // 第一人称行走控件 var cameraInitPos = null; // 进入第一人称行走前摄像机位置 var fullScreenState = false; // 全屏 var skyBox = null; // 天空盒 var hiddenControlTimer = null; // 隐藏控制按钮计时器 var showControlTimer = null; // 显示控制按钮计时器 var cameraDistace = []; var building = null, mainPanle; // 建筑 var restartTime = 5000; // 自动旋转停止后重启时间间隔 var rotateTimer = null; // 自动旋转计时器 //var baseURL = "http://47.103.74.123/ThingjsIcon/"; var baseURL = "https://s3.ax1x.com/2021/01/28/"; var filePath = '/uploads/wechat/5oiR5pyJ5pyA6ZW/55qE572R5ZCN5LiN5L+h5L2g5pWw5pWw/file/ScenePreview/'; // 需要用到的外部文件 var fileArr = [ "https://www.layuicdn.com/layui/layui.js", 'https://www.layuicdn.com/layui/css/layui.css', filePath + 'assets/css/index.css', // 功能按钮样式文件 filePath + 'assets/font-awesome-4.7.0/css/font-awesome.min.css', // 功能按钮字体样式 filePath + 'assets/css/myAlert.css', // 弹出框样式 filePath + 'assets/css/sweetalert2.min.css', // 弹出框样式 filePath + 'assets/js/sweetalert2.all.min.js', // 弹出框脚本 filePath + 'assets/js/myAlert.js', // 弹出框脚本 filePath + 'assets/js/posTransform.js', // 不同坐标系经纬度互相转换的脚本文件 filePath + 'assets/js/expandFloor.js', // 楼层展开脚本 '/guide/lib/echarts.min.js', '/uploads/wechat/163607/file/杨浦16/removeMark.js',//清除标注脚本 '/uploads/wechat/163607/file/杨浦16/UIAnchor.js',//UI界面脚本 '/uploads/wechat/163607/file/杨浦16/FloorClick.js',//创建切换楼层脚本 '/uploads/wechat/163607/file/杨浦16/MainPanel.js',//公共工具功能脚本 '/uploads/wechat/163607/file/杨浦16/CreateHtml.js',//创建页面元素脚本 '/uploads/wechat/163607/file/杨浦16/public.js',//公共场景功能脚本 '/uploads/wechat/163607/file/杨浦16/ChangeScene.js',//场景切换脚本 ]; /** * 说明:加载外部文件 */ THING.Utils.dynamicLoad(fileArr, function () { app.on('load', function (ev) { skyBox = app.skyBox; // 获取天空盒 app.level.change(ev.campus); // 切换至园区层级 ev.campus.azimuth = '180'; mainPanle = new MainPanel(app);// 界面的类 // setupNavpanel(); // creatFloorChoose(); //======================================本地数据测试=============================================== // 获取园区在CampusBuilder编辑时保存的地理位置 let tjsLnglat = app.root.defaultCampus.extraData; if (tjsLnglat != undefined && tjsLnglat != null) { tjsLnglat = tjsLnglat.coordinates; if (tjsLnglat != undefined && tjsLnglat != null) { tjsLnglat = tjsLnglat.split(","); } } else { ev.campus.extraData = { coordinates: "116.4641,39.98606" } // 园区绑定默认经纬度,地图才生效 } createHtml(); // 创建html restarRotate(); // 自动旋转 curCampus = ev.campus; // 进入层级切换 app.level.change(ev.campus); }); }); // 监听建筑层级的 LeaveLevel 事件 app.on(THING.EventType.LeaveLevel, ".Building", function (ev) { // 要进入的层级对象 var current = ev.current; // 上一层级对象(退出的层级) var preObject = ev.previous; if (current.parent === preObject) { removeMark(); } else { removeMark(); } }) /** * 说明:注册事件 */ function registerEvent() { var _this = this // 楼层横向展开按钮的点击事件,楼层展开只在建筑有2层或2层以上的楼层才会生效 $('#horizontalExpansion').on('click', function () { stopRotate(); checkBtnActives(['#mapBg', '#sceneSetting']); let expandState = building.getAttribute('expandState'); if ($(this).hasClass('active')) { // 楼层横向展开关闭 if (expandState == 'horizontal') { $(this).removeClass('active'); horizontalExpand(building, 'close'); } } else { // 楼层横向展开前应判断楼层是否处于垂直展开状态,是,则应先关闭垂直展开,然后横向展开 if (expandState != 'moving') { $(this).addClass('active'); $('#verticalExpansion').removeClass('active'); if (expandState == 'vertical') { verticalToHorizontal(building); } else { horizontalExpand(building, 'horizontal'); } } } restarRotate(); }); // 楼层垂直展开按钮的点击事件,楼层展开只在建筑有2层或2层以上的楼层才会生效 $('#verticalExpansion').on('click', function () { stopRotate(); checkBtnActives(['#mapBg', '#sceneSetting']); let expandState = building.getAttribute('expandState'); if ($(this).hasClass('active')) { // 楼层垂直展开关闭 if (expandState == 'vertical') { $(this).removeClass('active'); verticalExpand(building, 'close'); } } else { // 楼层垂直展开前应判断楼层是否处于横向展开状态,是,则应先关闭横向展开,然后垂直展开 if (expandState != 'moving') { $(this).addClass('active'); $('#horizontalExpansion').removeClass('active'); if (expandState == 'horizontal') { horizontalToVertical(building); } else { verticalExpand(building, 'vertical'); } } } restarRotate(); }); // 设置按钮点击事件,按钮的tip与功能面板的互相切换 $('#sceneSetting').on('click', function () { checkBtnActives(['#mapBg']); if ($(this).hasClass('active')) { $(this).removeClass('active'); $(this).children('.control-menu').removeClass('actives'); $(this).find('.tooltiptext').css({ "visibility": "visible" }); } else { $(this).addClass('active'); $(this).children('.control-menu').addClass('actives'); $(this).find('.tooltiptext').css({ "visibility": "hidden" }); } }).hover(function () {