shaogen1995 1 年之前
當前提交
37958f77a5
共有 100 個文件被更改,包括 289125 次插入0 次删除
  1. 1 0
      .gitignore
  2. 二進制
      myJs/img/car1.png
  3. 二進制
      myJs/img/car2.png
  4. 二進制
      myJs/img/tit1.png
  5. 二進制
      myJs/img/txtAc.png
  6. 二進制
      myJs/img/txtBac.png
  7. 二進制
      myJs/img/txtLeft.png
  8. 二進制
      myJs/img/txtTit.png
  9. 138 0
      myJs/myTwice.js
  10. 170 0
      myJs/spg.css
  11. 202 0
      myJs/spg.less
  12. 248 0
      myJs/staticData.js
  13. 243 0
      sdk/fonts/iconfont.css
  14. 二進制
      sdk/fonts/iconfont.ttf
  15. 二進制
      sdk/fonts/iconfont.woff
  16. 二進制
      sdk/fonts/iconfont.woff2
  17. 二進制
      sdk/images/End_256.png
  18. 二進制
      sdk/images/End_unable_256.png
  19. 二進制
      sdk/images/ajk/cad_compass_ajk.png
  20. 二進制
      sdk/images/ajk/room1_ajk.png
  21. 二進制
      sdk/images/ajk/room2_ajk.png
  22. 二進制
      sdk/images/ajk/room3_ajk.png
  23. 二進制
      sdk/images/ball_video.png
  24. 二進制
      sdk/images/billboard/style-1.png
  25. 二進制
      sdk/images/billboard/style-2.png
  26. 二進制
      sdk/images/billboard/style-3.png
  27. 二進制
      sdk/images/blueReticle.png
  28. 二進制
      sdk/images/box-video/cursor.png
  29. 二進制
      sdk/images/brackets/bracket_1.glb
  30. 二進制
      sdk/images/brackets/bracket_2.glb
  31. 二進制
      sdk/images/cad/cad_enter_dark.png
  32. 二進制
      sdk/images/cad/compass-black.png
  33. 二進制
      sdk/images/cad/compass-white.png
  34. 5 0
      sdk/images/cad/furnitures/TV.svg
  35. 二進制
      sdk/images/cad/hall.png
  36. 二進制
      sdk/images/cad/other.png
  37. 二進制
      sdk/images/cad/otherBlack.jpg
  38. 二進制
      sdk/images/cad/otherWhite.jpg
  39. 二進制
      sdk/images/cad/room.png
  40. 二進制
      sdk/images/cad_compass.png
  41. 43 0
      sdk/images/cad_compass.svg
  42. 二進制
      sdk/images/cad_compass_ajk.png
  43. 二進制
      sdk/images/cad_enter.png
  44. 二進制
      sdk/images/cad_enter_dark.png
  45. 二進制
      sdk/images/cad_enter_mini.png
  46. 二進制
      sdk/images/camera.glb
  47. 二進制
      sdk/images/circleMarker.png
  48. 二進制
      sdk/images/cursor.png
  49. 二進制
      sdk/images/floorlogos/0.png
  50. 二進制
      sdk/images/floorlogos/1.png
  51. 二進制
      sdk/images/floorlogos/2.png
  52. 二進制
      sdk/images/floorlogos/aws/0.png
  53. 二進制
      sdk/images/floorlogos/aws/1.png
  54. 二進制
      sdk/images/floorlogos/aws/2.png
  55. 二進制
      sdk/images/floorlogos/aws/en/0.png
  56. 二進制
      sdk/images/floorlogos/aws/en/1.png
  57. 二進制
      sdk/images/floorlogos/aws/en/2.png
  58. 二進制
      sdk/images/floorlogos/en/0.png
  59. 二進制
      sdk/images/floorlogos/en/1.png
  60. 二進制
      sdk/images/floorlogos/en/2.png
  61. 二進制
      sdk/images/img_exit_dot.png
  62. 二進制
      sdk/images/img_pamove.png
  63. 二進制
      sdk/images/img_pamove_normal.png
  64. 二進制
      sdk/images/img_panorama_dot.png
  65. 二進制
      sdk/images/link/enter-style-default.png
  66. 二進制
      sdk/images/link/enter-style-down.png
  67. 二進制
      sdk/images/link/enter-style-up.png
  68. 二進制
      sdk/images/link/exit-style-out.png
  69. 62622 0
      sdk/images/loaders/DRACOLoader/draco/draco_decoder.js
  70. 二進制
      sdk/images/loaders/DRACOLoader/draco/draco_decoder.wasm
  71. 86288 0
      sdk/images/loaders/DRACOLoader/draco/draco_encoder.js
  72. 1922 0
      sdk/images/loaders/DRACOLoader/draco/draco_wasm_wrapper.js
  73. 43887 0
      sdk/images/loaders/DRACOLoader/draco/gltf/draco_decoder.js
  74. 二進制
      sdk/images/loaders/DRACOLoader/draco/gltf/draco_decoder.wasm
  75. 88905 0
      sdk/images/loaders/DRACOLoader/draco/gltf/draco_encoder.js
  76. 1922 0
      sdk/images/loaders/DRACOLoader/draco/gltf/draco_wasm_wrapper.js
  77. 2417 0
      sdk/images/loaders/KTX2Loader/basis/basis_transcoder.js
  78. 二進制
      sdk/images/loaders/KTX2Loader/basis/basis_transcoder.wasm
  79. 二進制
      sdk/images/marker.png
  80. 110 0
      sdk/images/model/model.json
  81. 二進制
      sdk/images/mutil_connect_lower.png
  82. 二進制
      sdk/images/mutil_connect_upper.png
  83. 二進制
      sdk/images/pathEnd.png
  84. 二進制
      sdk/images/ring1.png
  85. 二進制
      sdk/images/roam/roam_checked.png
  86. 二進制
      sdk/images/roam/roam_checked_256.png
  87. 二進制
      sdk/images/roam/roam_invisible.png
  88. 二進制
      sdk/images/roam/roam_invisible_256.png
  89. 二進制
      sdk/images/roam/roam_uncheck.png
  90. 二進制
      sdk/images/roam/roam_uncheck_256.png
  91. 二進制
      sdk/images/roam/roam_visible.png
  92. 二進制
      sdk/images/roam/roam_visible_256.png
  93. 二進制
      sdk/images/tag_icon_default.png
  94. 2 0
      sdk/images/tag_icon_default.svg
  95. 二進制
      sdk/images/tag_pointer.png
  96. 二進制
      sdk/images/texture.jpg
  97. 二進制
      sdk/images/videoTag.png
  98. 二進制
      sdk/images/video_256.png
  99. 二進制
      sdk/images/video_unable_256.png
  100. 0 0
      sdk/images/vrCursor.png

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+/scene_view_data

二進制
myJs/img/car1.png


二進制
myJs/img/car2.png


二進制
myJs/img/tit1.png


二進制
myJs/img/txtAc.png


二進制
myJs/img/txtBac.png


二進制
myJs/img/txtLeft.png


二進制
myJs/img/txtTit.png


+ 138 - 0
myJs/myTwice.js

@@ -0,0 +1,138 @@
+let time = -1
+
+let time2 = -1
+let time2Num = 0
+
+// 小人移位函数
+const renMoveFu = () => {
+  // 底部左侧小人logo和上箭头的dom,拿到dom元素的时候在执行下面的代码
+  const bottomClickDom = document.querySelector('.play-control')
+  if (bottomClickDom) {
+    // 展开导览列表和隐藏导览列表
+    const isActiveDom = document.querySelector('.tour-btn .icon-pull-down')
+
+    bottomClickDom.addEventListener('click', () => {
+
+      const flag = isActiveDom.className.includes('active')
+      const carListDomAll = document.querySelector('.carList')
+      carListDomAll.style.bottom = flag ? '180px' : '100px'
+
+    })
+
+    clearInterval(time2)
+
+  }
+}
+
+time = setInterval(() => {
+
+  console.log('定时器执行,获取完所有dom,页面准备完毕');
+
+  if (__sdk && __sdk.Camera && __sdk.Camera.getPose && __sdk.Camera.getPose() && __sdk.Camera.getPose().panoId) {
+    clearInterval(time)
+
+    // 整个的小人box
+    const carListDomAll = document.querySelector('.carList')
+    carListDomAll.style.display = 'block'
+
+    renMoveFu()
+    time2 = window.setInterval(() => {
+
+      renMoveFu()
+
+      time2Num++
+      console.log('小人移位功能准备完毕,或者没有导览');
+
+      if (time2Num >= 5) {
+        clearInterval(time2)
+      }
+
+    }, 500);
+
+
+    // 小人和列表的切换
+    const carList1Dom = document.querySelector('.carList1')
+    const carList2Dom = document.querySelector('.carList2')
+    const carList1_2Dom = document.querySelector('.carList1_2')
+    const carList2_2Dom = document.querySelector('.carList2_2')
+    carList1_2Dom.onclick = () => {
+      carList1Dom.style.display = 'none'
+      carList2Dom.style.display = 'block'
+      carList2_2Dom.scrollTop = 0
+    }
+
+    const carList2_2BackDom = document.querySelector('.carList2_2Back')
+
+    carList2_2BackDom.onclick = () => {
+      carList1Dom.style.display = 'flex'
+      carList2Dom.style.display = 'none'
+
+    }
+
+
+    // 动态渲染列表
+    let temp1 = ''
+
+    myData.forEach(v1 => {
+      let temp2 = ''
+      v1.son.forEach(v2 => {
+        temp2 += `<div class="c_boxTxt" id=${v2.panoId} _x=${v2.x} _y=${v2.y} _z=${v2.z} _w=${v2.w}>
+          <p>
+              ${v2.name}
+          </p>
+        </div>`
+      })
+      temp1 += `<div class="c_box"><div class="c_boxTit">${v1.name}</div>${temp2}</div>`
+    })
+
+    const carList2_2MainDom = document.querySelector('.carList2_2Main')
+    carList2_2MainDom.innerHTML = temp1
+
+    const c_boxTxtArr = document.querySelectorAll('.c_boxTxt')
+
+    c_boxTxtArr.forEach(v => {
+      v.onclick = () => {
+        const id = v.attributes['id'].nodeValue
+        const _x = v.attributes['_x'].nodeValue
+        const _y = v.attributes['_y'].nodeValue
+        const _z = v.attributes['_z'].nodeValue
+        const _w = v.attributes['_w'].nodeValue
+
+        const obj = {
+          currentScale: 1,
+          flying: false,
+          mode: "panorama",
+          modeTran: "panorama-panorama",
+          panoId: id,
+          quaternion: { isQuaternion: true, _x, _y, _z, _w }
+        }
+
+        // 移动到视角
+        __sdk.Camera.setPose(obj)
+
+        // 移动到点位
+        __sdk.Camera.flyToPano(id)
+      }
+    })
+
+    __sdk.Camera.on('flying.started', (pano) => {
+      classAddFu(pano.panoId)
+    })
+
+    // 初始判断点位id,来高亮
+    const baseId = __sdk.Camera.getPose().panoId
+    classAddFu(baseId)
+  }
+
+
+}, 500);
+
+// 添加和删除class的方法
+const classAddFu = (oldId) => {
+  const c_boxTxtArr = document.querySelectorAll('.c_boxTxt')
+  c_boxTxtArr.forEach(v => {
+    const id = v.attributes['id'].nodeValue
+    if (oldId == id) v.classList.add('c_boxTxtAc')
+    else v.classList.remove('c_boxTxtAc')
+  })
+}

+ 170 - 0
myJs/spg.css

@@ -0,0 +1,170 @@
+* {
+  margin: 0;
+  padding: 0;
+  box-sizing: border-box;
+}
+.floor-switch {
+  top: 45% !important;
+}
+.carList {
+  position: fixed;
+  bottom: 100px;
+  left: 20px;
+  z-index: 100;
+  transition: all 0.3s;
+  display: none;
+}
+.carList .carList1 {
+  display: flex;
+  align-items: center;
+  position: relative;
+}
+.carList .carList1 .carList1_1 {
+  width: 160px;
+}
+.carList .carList1 .carList1_2 {
+  cursor: pointer;
+  width: 240px;
+}
+.carList .carList2 {
+  display: none;
+  position: relative;
+}
+.carList .carList2 .carList2_1 {
+  width: 160px;
+}
+.carList .carList2 .carList2_2Back {
+  position: absolute;
+  z-index: 10;
+  bottom: 98px;
+  left: 137px;
+  width: 50px;
+  height: 66px;
+  cursor: pointer;
+}
+.carList .carList2 .carList2_2Bac {
+  position: absolute;
+  left: 180px;
+  bottom: 0;
+  width: 23px;
+  height: 585px;
+  z-index: 8;
+  background-image: url('../myJs/img/txtBac.png');
+  background-size: 100% 100%;
+}
+.carList .carList2 .carList2_2 {
+  position: absolute;
+  left: 203px;
+  bottom: 0;
+  width: 370px;
+  height: 585px;
+  padding-right: 30px;
+  overflow-y: auto;
+  background-color: rgba(255, 255, 255, 0.5);
+  -webkit-backdrop-filter: blur(4px);
+  backdrop-filter: blur(4px);
+  border-radius: 0 8px 8px 0;
+}
+.carList .carList2 .carList2_2::-webkit-scrollbar {
+  /*滚动条整体样式*/
+  width: 3px;
+  /*高宽分别对应横竖滚动条的尺寸*/
+  height: 1px;
+}
+.carList .carList2 .carList2_2::-webkit-scrollbar-thumb {
+  /*滚动条里面小方块*/
+  border-radius: 10px;
+  -webkit-box-shadow: inset 0 0 5px transparent;
+  background: #1864ff;
+}
+.carList .carList2 .carList2_2::-webkit-scrollbar-track {
+  /*滚动条里面轨道*/
+  -webkit-box-shadow: inset 0 0 5px transparent;
+  border-radius: 10px;
+  background: transparent;
+}
+.carList .carList2 .carList2_2 .carList2_2Main {
+  width: 100%;
+  height: 100%;
+  padding: 10px 0 10px 16px;
+}
+.carList .carList2 .carList2_2 .carList2_2Main .c_box {
+  width: 100%;
+  margin-bottom: 20px;
+  background-color: rgba(217, 217, 217, 0.6);
+  border-radius: 6px 6px 6px 6px;
+  padding: 15px 10px 20px 15px;
+  -webkit-backdrop-filter: blur(10px);
+  backdrop-filter: blur(10px);
+}
+.carList .carList2 .carList2_2 .carList2_2Main .c_box .c_boxTit {
+  color: #fff;
+  font-weight: 700;
+  font-size: 20px;
+  padding-bottom: 10px;
+  position: relative;
+  text-shadow: 1px 1px 1px black;
+  margin-bottom: 14px;
+}
+.carList .carList2 .carList2_2 .carList2_2Main .c_box .c_boxTit::before {
+  content: '';
+  width: 100%;
+  height: 1px;
+  position: absolute;
+  bottom: 0;
+  left: 0;
+  background: linear-gradient(to right, #ffffff, rgba(255, 255, 255, 0.2));
+}
+.carList .carList2 .carList2_2 .carList2_2Main .c_box .c_boxTit::after {
+  content: '';
+  position: absolute;
+  top: -15px;
+  left: -26px;
+  width: 106px;
+  height: 46px;
+  z-index: 10;
+  background-image: url('../myJs/img/txtTit.png');
+  background-size: 100% 100%;
+}
+.carList .carList2 .carList2_2 .carList2_2Main .c_box .c_boxTxt {
+  cursor: pointer;
+  position: relative;
+}
+.carList .carList2 .carList2_2 .carList2_2Main .c_box .c_boxTxt > p {
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  height: 32px;
+  line-height: 32px;
+  font-size: 16px;
+  padding: 0 5px 0 20px;
+  position: relative;
+  z-index: 11;
+}
+.carList .carList2 .carList2_2 .carList2_2Main .c_box .c_boxTxt::before {
+  content: '';
+  opacity: 0;
+  z-index: 10;
+  width: calc(100% + 30px);
+  height: 100%;
+  position: absolute;
+  left: 0px;
+  top: 0;
+  background-image: url('../myJs/img/txtAc.png');
+  background-size: 100% 100%;
+}
+.carList .carList2 .carList2_2 .carList2_2Main .c_box .c_boxTxt:hover > p {
+  color: #fff;
+}
+.carList .carList2 .carList2_2 .carList2_2Main .c_box .c_boxTxt:hover::before {
+  opacity: 1;
+}
+.carList .carList2 .carList2_2 .carList2_2Main .c_box .c_boxTxtAc {
+  pointer-events: none;
+}
+.carList .carList2 .carList2_2 .carList2_2Main .c_box .c_boxTxtAc > p {
+  color: #fff;
+}
+.carList .carList2 .carList2_2 .carList2_2Main .c_box .c_boxTxtAc::before {
+  opacity: 1;
+}

+ 202 - 0
myJs/spg.less

@@ -0,0 +1,202 @@
+* {
+  margin: 0;
+  padding: 0;
+  box-sizing: border-box;
+}
+
+.floor-switch {
+  top: 45% !important;
+}
+
+.carList {
+  position: fixed;
+  bottom: 100px;
+  left: 20px;
+  z-index: 100;
+  transition: all .3s;
+  display: none;
+
+  .carList1 {
+    display: flex;
+    align-items: center;
+    position: relative;
+
+    .carList1_1 {
+      width: 160px;
+    }
+
+    .carList1_2 {
+      cursor: pointer;
+      width: 240px;
+    }
+  }
+
+  .carList2 {
+    display: none;
+    position: relative;
+
+    .carList2_1 {
+      width: 160px;
+    }
+
+    .carList2_2Back {
+      position: absolute;
+      z-index: 10;
+      bottom: 98px;
+      left: 137px;
+      width: 50px;
+      height: 66px;
+      cursor: pointer;
+    }
+
+    .carList2_2Bac {
+      position: absolute;
+      left: 180px;
+      bottom: 0;
+      width: 23px;
+      height: 585px;
+      z-index: 8;
+      background-image: url('../myJs/img/txtBac.png');
+      background-size: 100% 100%;
+
+    }
+
+    .carList2_2 {
+      position: absolute;
+      left: 203px;
+      bottom: 0;
+      width: 370px;
+      height: 585px;
+      padding-right: 30px;
+      overflow-y: auto;
+
+      background-color: rgba(255, 255, 255, .5);
+      -webkit-backdrop-filter: blur(4px);
+      backdrop-filter: blur(4px);
+      border-radius: 0 8px 8px 0;
+
+      &::-webkit-scrollbar {
+        /*滚动条整体样式*/
+        width: 3px;
+        /*高宽分别对应横竖滚动条的尺寸*/
+        height: 1px;
+      }
+
+      &::-webkit-scrollbar-thumb {
+        /*滚动条里面小方块*/
+        border-radius: 10px;
+        -webkit-box-shadow: inset 0 0 5px transparent;
+        background: #1864ff;
+      }
+
+      &::-webkit-scrollbar-track {
+        /*滚动条里面轨道*/
+        -webkit-box-shadow: inset 0 0 5px transparent;
+        border-radius: 10px;
+        background: transparent;
+      }
+
+      .carList2_2Main {
+        width: 100%;
+        height: 100%;
+        padding: 10px 0 10px 16px;
+
+
+
+        .c_box {
+          width: 100%;
+          margin-bottom: 20px;
+          background-color: rgba(217, 217, 217, .6);
+          border-radius: 6px 6px 6px 6px;
+          padding: 15px 10px 20px 15px;
+          -webkit-backdrop-filter: blur(10px);
+          backdrop-filter: blur(10px);
+
+          .c_boxTit {
+            color: #fff;
+            font-weight: 700;
+            font-size: 20px;
+            padding-bottom: 10px;
+            position: relative;
+            text-shadow: 1px 1px 1px black;
+            margin-bottom: 14px;
+
+            &::before {
+              content: '';
+              width: 100%;
+              height: 1px;
+              position: absolute;
+              bottom: 0;
+              left: 0;
+              background: linear-gradient(to right, rgba(255, 255, 255, 1), rgba(255, 255, 255, .2));
+            }
+
+            &::after {
+              content: '';
+              position: absolute;
+              top: -15px;
+              left: -26px;
+              width: 106px;
+              height: 46px;
+              z-index: 10;
+              background-image: url('../myJs/img/txtTit.png');
+              background-size: 100% 100%;
+            }
+          }
+
+          .c_boxTxt {
+            cursor: pointer;
+            position: relative;
+
+            &>p {
+              overflow: hidden;
+              text-overflow: ellipsis;
+              white-space: nowrap;
+              height: 32px;
+              line-height: 32px;
+              font-size: 16px;
+              padding: 0 5px 0 20px;
+              position: relative;
+              z-index: 11;
+
+            }
+
+            &::before {
+              content: '';
+              opacity: 0;
+              z-index: 10;
+              width: calc(100% + 30px);
+              height: 100%;
+              position: absolute;
+              left: 0px;
+              top: 0;
+              background-image: url('../myJs/img/txtAc.png');
+              background-size: 100% 100%;
+            }
+
+            &:hover {
+              &>p {
+
+                color: #fff;
+              }
+
+              &::before {
+                opacity: 1;
+              }
+            }
+          }
+          .c_boxTxtAc{
+            pointer-events: none;
+            &>p {
+
+              color: #fff;
+            }
+            &::before {
+              opacity: 1;
+            }
+          }
+        }
+      }
+    }
+  }
+}

+ 248 - 0
myJs/staticData.js

@@ -0,0 +1,248 @@
+// 获取地址栏参数
+const urlParameter = (data) => {
+  if (data) {
+    const query = data.substring(data.indexOf("?") + 1);
+    const arr = query.split("&");
+    const params = {};
+    arr.forEach((v) => {
+      const key = v.substring(0, v.indexOf("="));
+      const val = v.substring(v.indexOf("=") + 1);
+      params[key] = val;
+    });
+    return params;
+  } else return {};
+};
+
+const urlParameObj = urlParameter(window.location.href);
+
+let urlId = "";
+
+if (urlParameObj && urlParameObj.m) urlId = urlParameObj.m;
+else alert("参数错误!");
+
+const myDataObj = {
+  "SS-FywslgRPbfM": [
+    {
+      name: "L1",
+      son: [
+        {
+          name: "咨询取号",
+          panoId: "70",
+          x: 0.07256088352569225,
+          y: 0.001799198869421463,
+          z: -0.0001308967188923444,
+          w: 0.9973623533758672,
+        },
+        {
+          name: "综合业务窗口",
+          panoId: "60",
+          x: 0.07196785289360731,
+          y: -0.004640676071885168,
+          z: 0.00033485141248565994,
+          w: 0.9973960999272111,
+        },
+        {
+          name: "复印区",
+          panoId: "71",
+          x: -0.21642954157194208,
+          y: 0.00941865383675915,
+          z: 0.0020880652848909503,
+          w: 0.9762505736122402,
+        },
+        {
+          name: "智慧户政服务区",
+          panoId: "73",
+          x: 0.00030046249832111407,
+          y: 0.9992874524725224,
+          z: -0.03685266812310379,
+          w: 0.008147263680010269,
+        },
+        {
+          name: "便民自助拍照、自助打印资料",
+          panoId: "82",
+          x: -0.0010886875255479058,
+          y: 0.36226021176382217,
+          z: 0.00042312864931863336,
+          w: 0.9320762708568696,
+        },
+        {
+          name: "卫生间",
+          panoId: "28",
+          x: -0.21564633064571587,
+          y: -0.029517216343401473,
+          z: -0.006521779174393988,
+          w: 0.9760035145504219,
+        },
+      ],
+    },
+    {
+      name: "L2",
+      son: [
+        {
+          name: "综合业务办理区",
+          panoId: "87",
+          x: 0.022898261698883683,
+          y: 0.9319250440709812,
+          z: 0.0597817913859227,
+          w: -0.3569559066091488,
+        },
+        {
+          name: "智慧户政服务区",
+          panoId: "88",
+          x: -0.03947368273540117,
+          y: -0.2799967800453929,
+          z: -0.011523590458893385,
+          w: 0.9591198248386134,
+        },
+      ],
+    },
+  ],
+
+  "SS-ofZfNqhL5Z9": [
+    {
+      name: "L1",
+      son: [
+        {
+          name: "24小时自助办理区",
+          panoId: "34",
+          x: 0.008253338596424482,
+          y: 0.9813471230032338,
+          z: 0.04328299007260641,
+          w: -0.18712639938197745,
+        },
+        {
+          name: "业务咨询",
+          panoId: "31",
+          x: 0.039684320870614284,
+          y: 0.7887400648177643,
+          z: -0.05120302921454509,
+          w: 0.611303946190078,
+        },
+        {
+          name: "母婴室",
+          panoId: "15",
+          x: -0.010028160460713042,
+          y: 0.9898768645119385,
+          z: 0.09297960785108825,
+          w: 0.10676151753157818,
+        },
+        {
+          name: "卫生间",
+          panoId: "18",
+          x: 0.02912102015830137,
+          y: 0.8719527591559306,
+          z: 0.05225567148864424,
+          w: -0.4859214924065105,
+        },
+        {
+          name: "安全教育体验区",
+          panoId: "26",
+          x: -0.002555146624337832,
+          y: 0.9946414464677162,
+          z: 0.10019200662129783,
+          w: 0.025365843245106198,
+        },
+      ],
+    },
+    {
+      name: "L2",
+      son: [
+        {
+          name: "智慧户政服务区",
+          panoId: "54",
+          x: -0.18101975201423554,
+          y: -0.35605297988516454,
+          z: -0.0705132938117352,
+          w: 0.9140492329691106,
+        },
+        {
+          name: "综合业务窗口",
+          panoId: "51",
+          x: -0.11481074052242023,
+          y: 0.4245959552426331,
+          z: 0.054380593238492626,
+          w: 0.8964259700228006,
+        },        
+        {
+          name: "出入境业务窗口",
+          panoId: "46",
+          x: 0.016505547542086052,
+          y: 0.7279834589473417,
+          z: -0.017536870699767143,
+          w: 0.6851715906000918,
+        },
+      ],
+    },
+  ],
+
+  "SS-hLost7QfGDE": [
+    {
+      name: "L1",
+      son: [
+        {
+          name: "智慧户政服务区",
+          panoId: "7",
+          x: -0.0009049852195611181,
+          y: -0.7995701102358854,
+          z: -0.0012048521992316487,
+          w: 0.600570868549503,
+        },
+        {
+          name: "咨询取号",
+          panoId: "3",
+          x: -0.024201470077160885,
+          y: -0.010058821891173563,
+          z: -0.00024352193512028818,
+          w: 0.9996564658147984,
+        },
+        {
+          name: "综合业务窗口",
+          panoId: "4",
+          x: -0.0232434796429877,
+          y: -0.016828849267335282,
+          z: -0.00039132219946858086,
+          w: 0.9995881038474594,
+        },
+        {
+          name: "卫生间",
+          panoId: "20",
+          x: -0.13355351463784645,
+          y: -0.443481343941781,
+          z: -0.06702028359042682,
+          w: 0.8837398021425363,
+        },
+        {
+          name: "24小时自助办理区",
+          panoId: "5",
+          x: -0.0823242633639197,
+          y: 0.8617886030115179,
+          z: 0.14841212376606933,
+          w: 0.4780344766858237,
+        },
+      ],
+    },
+    {
+      name: "L2",
+      son: [
+        {
+          name: "综合业务窗口",
+          panoId: "29",
+          x: -0.03965872393686045,
+          y: 0.8796630146148184,
+          z: 0.07453651652258311,
+          w: 0.46804323949732274,
+        },
+        {
+          name: "智慧户政服务区",
+          panoId: "30",
+          x: -0.0981823219849419,
+          y: 0.1726619486571559,
+          z: 0.01729967918308702,
+          w: 0.9799228562676354,
+        },
+      ],
+    },
+  ],
+};
+
+const myData = myDataObj[urlId] || [];

+ 243 - 0
sdk/fonts/iconfont.css

@@ -0,0 +1,243 @@
+@font-face {
+  font-family: "iconfont"; /* Project id 3139015 */
+  src: url('iconfont.woff2?t=1676975481793') format('woff2'),
+       url('iconfont.woff?t=1676975481793') format('woff'),
+       url('iconfont.ttf?t=1676975481793') format('truetype');
+}
+
+.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.sdk-back:before {
+  content: "\e609";
+}
+
+.sdk-GasStove:before {
+  content: "\e705";
+}
+
+.sdk-TV:before {
+  content: "\e706";
+}
+
+.sdk-SingleBed:before {
+  content: "\e707";
+}
+
+.sdk-SingleSofa:before {
+  content: "\e708";
+}
+
+.sdk-Wardrobe:before {
+  content: "\e709";
+}
+
+.sdk-Washstand:before {
+  content: "\e70a";
+}
+
+.sdk-Pillow:before {
+  content: "\e70b";
+}
+
+.sdk-TeaTable:before {
+  content: "\e70c";
+}
+
+.sdk-Plant:before {
+  content: "\e70d";
+}
+
+.sdk-Bathtub:before {
+  content: "\e6f7";
+}
+
+.sdk-BedsideCupboard:before {
+  content: "\e6f8";
+}
+
+.sdk-BalconyChair:before {
+  content: "\e6f9";
+}
+
+.sdk-Cupboard:before {
+  content: "\e6fc";
+}
+
+.sdk-Desk:before {
+  content: "\e6fd";
+}
+
+.sdk-Closestool:before {
+  content: "\e6fe";
+}
+
+.sdk-CombinationSofa:before {
+  content: "\e6ff";
+}
+
+.sdk-DiningTable:before {
+  content: "\e700";
+}
+
+.sdk-Elevator:before {
+  content: "\e701";
+}
+
+.sdk-Dresser:before {
+  content: "\e702";
+}
+
+.sdk-DoubleBed:before {
+  content: "\e703";
+}
+
+.sdk-Carpet:before {
+  content: "\e704";
+}
+
+.sdk-cad-turn:before {
+  content: "\e6fb";
+}
+
+.sdk-pull-down:before {
+  content: "\e61d";
+}
+
+.sdk-pull-up:before {
+  content: "\e61e";
+}
+
+.sdk-fanzhuan:before {
+  content: "\e6fa";
+}
+
+.sdk-dange:before {
+  content: "\e6ab";
+}
+
+.sdk-liang:before {
+  content: "\e6a6";
+}
+
+.sdk-yandao:before {
+  content: "\e6a7";
+}
+
+.sdk-zhuzi:before {
+  content: "\e6a8";
+}
+
+.sdk-dianti:before {
+  content: "\e6a9";
+}
+
+.sdk-loudao:before {
+  content: "\e6aa";
+}
+
+.sdk-luodichuang:before {
+  content: "\e69f";
+}
+
+.sdk-chuang:before {
+  content: "\e6a0";
+}
+
+.sdk-piaochuang:before {
+  content: "\e6a1";
+}
+
+.sdk-uxingchuang:before {
+  content: "\e6a2";
+}
+
+.sdk-lxingchuang:before {
+  content: "\e6a3";
+}
+
+.sdk-lpiaochuang:before {
+  content: "\e6a4";
+}
+
+.sdk-upiaochuang:before {
+  content: "\e6a5";
+}
+
+.sdk-shuangkaimen:before {
+  content: "\e69a";
+}
+
+.sdk-zimumen:before {
+  content: "\e69b";
+}
+
+.sdk-men:before {
+  content: "\e69c";
+}
+
+.sdk-yimen:before {
+  content: "\e69d";
+}
+
+.sdk-zhediemen:before {
+  content: "\e69e";
+}
+
+.sdk-neiqiang:before {
+  content: "\e697";
+}
+
+.sdk-waiqiang:before {
+  content: "\e698";
+}
+
+.sdk-yakou:before {
+  content: "\e699";
+}
+
+.sdk-checked:before {
+  content: "\e649";
+}
+
+.sdk-uncheck:before {
+  content: "\e696";
+}
+
+.sdk-download:before {
+  content: "\e61c";
+}
+
+.sdk-clear:before {
+  content: "\e63f";
+}
+
+.sdk-reset:before {
+  content: "\e65a";
+}
+
+.sdk-adapt:before {
+  content: "\e692";
+}
+
+.sdk-recover:before {
+  content: "\e693";
+}
+
+.sdk-repeal:before {
+  content: "\e694";
+}
+
+.sdk-rotate:before {
+  content: "\e695";
+}
+
+.sdk-close:before {
+  content: "\e633";
+}
+

二進制
sdk/fonts/iconfont.ttf


二進制
sdk/fonts/iconfont.woff


二進制
sdk/fonts/iconfont.woff2


二進制
sdk/images/End_256.png


二進制
sdk/images/End_unable_256.png


二進制
sdk/images/ajk/cad_compass_ajk.png


二進制
sdk/images/ajk/room1_ajk.png


二進制
sdk/images/ajk/room2_ajk.png


二進制
sdk/images/ajk/room3_ajk.png


二進制
sdk/images/ball_video.png


二進制
sdk/images/billboard/style-1.png


二進制
sdk/images/billboard/style-2.png


二進制
sdk/images/billboard/style-3.png


二進制
sdk/images/blueReticle.png


二進制
sdk/images/box-video/cursor.png


二進制
sdk/images/brackets/bracket_1.glb


二進制
sdk/images/brackets/bracket_2.glb


二進制
sdk/images/cad/cad_enter_dark.png


二進制
sdk/images/cad/compass-black.png


二進制
sdk/images/cad/compass-white.png


+ 5 - 0
sdk/images/cad/furnitures/TV.svg

@@ -0,0 +1,5 @@
+<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M2.5 4.5H29.5V16.5C29.5 17.6046 28.6046 18.5 27.5 18.5H4.5C3.39543 18.5 2.5 17.6046 2.5 16.5V4.5Z" stroke="white"/>
+<path d="M7.5 6.5H24.5V8.5H7.5V6.5Z" stroke="white"/>
+<path d="M9.5 25C9.5 23.067 11.067 21.5 13 21.5H19C20.933 21.5 22.5 23.067 22.5 25V25C22.5 26.933 20.933 28.5 19 28.5H13C11.067 28.5 9.5 26.933 9.5 25V25Z" stroke="white"/>
+</svg>

二進制
sdk/images/cad/hall.png


二進制
sdk/images/cad/other.png


二進制
sdk/images/cad/otherBlack.jpg


二進制
sdk/images/cad/otherWhite.jpg


二進制
sdk/images/cad/room.png


二進制
sdk/images/cad_compass.png


文件差異過大導致無法顯示
+ 43 - 0
sdk/images/cad_compass.svg


二進制
sdk/images/cad_compass_ajk.png


二進制
sdk/images/cad_enter.png


二進制
sdk/images/cad_enter_dark.png


二進制
sdk/images/cad_enter_mini.png


二進制
sdk/images/camera.glb


二進制
sdk/images/circleMarker.png


二進制
sdk/images/cursor.png


二進制
sdk/images/floorlogos/0.png


二進制
sdk/images/floorlogos/1.png


二進制
sdk/images/floorlogos/2.png


二進制
sdk/images/floorlogos/aws/0.png


二進制
sdk/images/floorlogos/aws/1.png


二進制
sdk/images/floorlogos/aws/2.png


二進制
sdk/images/floorlogos/aws/en/0.png


二進制
sdk/images/floorlogos/aws/en/1.png


二進制
sdk/images/floorlogos/aws/en/2.png


二進制
sdk/images/floorlogos/en/0.png


二進制
sdk/images/floorlogos/en/1.png


二進制
sdk/images/floorlogos/en/2.png


二進制
sdk/images/img_exit_dot.png


二進制
sdk/images/img_pamove.png


二進制
sdk/images/img_pamove_normal.png


二進制
sdk/images/img_panorama_dot.png


二進制
sdk/images/link/enter-style-default.png


二進制
sdk/images/link/enter-style-down.png


二進制
sdk/images/link/enter-style-up.png


二進制
sdk/images/link/exit-style-out.png


文件差異過大導致無法顯示
+ 62622 - 0
sdk/images/loaders/DRACOLoader/draco/draco_decoder.js


二進制
sdk/images/loaders/DRACOLoader/draco/draco_decoder.wasm


文件差異過大導致無法顯示
+ 86288 - 0
sdk/images/loaders/DRACOLoader/draco/draco_encoder.js


文件差異過大導致無法顯示
+ 1922 - 0
sdk/images/loaders/DRACOLoader/draco/draco_wasm_wrapper.js


文件差異過大導致無法顯示
+ 43887 - 0
sdk/images/loaders/DRACOLoader/draco/gltf/draco_decoder.js


二進制
sdk/images/loaders/DRACOLoader/draco/gltf/draco_decoder.wasm


文件差異過大導致無法顯示
+ 88905 - 0
sdk/images/loaders/DRACOLoader/draco/gltf/draco_encoder.js


文件差異過大導致無法顯示
+ 1922 - 0
sdk/images/loaders/DRACOLoader/draco/gltf/draco_wasm_wrapper.js


文件差異過大導致無法顯示
+ 2417 - 0
sdk/images/loaders/KTX2Loader/basis/basis_transcoder.js


二進制
sdk/images/loaders/KTX2Loader/basis/basis_transcoder.wasm


二進制
sdk/images/marker.png


+ 110 - 0
sdk/images/model/model.json

@@ -0,0 +1,110 @@
+{
+    "0": {
+        "type": "police",
+        "position": {
+            "x": -51.58801157493257,
+            "y": 8.839526702732625,
+            "z": -3.4608088183603707
+        },
+        "rotation": {
+            "x": 3.141592653589793,
+            "y": -1.478017775136355,
+            "z": 3.141592653589793
+        },
+        "scale": {
+            "x": 1,
+            "y": 1,
+            "z": 1
+        }
+    },
+    "1": {
+        "type": "police",
+        "position": {
+            "x": -25.874425912530757,
+            "y": 0.3430933827666178,
+            "z": 1.6922278565353845
+        },
+        "rotation": {
+            "x": -3.141592653589793,
+            "y": 0.046876033081015664,
+            "z": -3.141592653589793
+        },
+        "scale": {
+            "x": 1,
+            "y": 1,
+            "z": 1
+        }
+    },
+    "2": {
+        "type": "police",
+        "position": {
+            "x": -17.417424722884252,
+            "y": 0.3469526036851387,
+            "z": 1.698000611807176
+        },
+        "rotation": {
+            "x": -3.141592653589793,
+            "y": 0.03003768925868524,
+            "z": -3.141592653589793
+        },
+        "scale": {
+            "x": 1,
+            "y": 1,
+            "z": 1
+        }
+    },
+    "3": {
+        "type": "police",
+        "position": {
+            "x": -9.54716350423162,
+            "y": 0.3403953747686652,
+            "z": -4.434579961091392
+        },
+        "rotation": {
+            "x": 3.141592653589793,
+            "y": -1.4922576050628213,
+            "z": 3.141592653589793
+        },
+        "scale": {
+            "x": 1,
+            "y": 1,
+            "z": 1
+        }
+    },
+    "4": {
+        "type": "police",
+        "position": {
+            "x": 15.839924256124014,
+            "y": -5.6375887734131584,
+            "z": 0.9740918778480949
+        },
+        "rotation": {
+            "x": 3.141592653589793,
+            "y": -1.5025489657229938,
+            "z": 3.141592653589793
+        },
+        "scale": {
+            "x": 1,
+            "y": 1,
+            "z": 1
+        }
+    },
+    "5": {
+        "type": "police",
+        "position": {
+            "x": 28.798161146364826,
+            "y": -5.658640244127421,
+            "z": 2.168471438811823
+        },
+        "rotation": {
+            "x": -3.141592653589793,
+            "y": 1.5549501398791126,
+            "z": -3.141592653589793
+        },
+        "scale": {
+            "x": 1,
+            "y": 1,
+            "z": 1
+        }
+    }
+}

二進制
sdk/images/mutil_connect_lower.png


二進制
sdk/images/mutil_connect_upper.png


二進制
sdk/images/pathEnd.png


二進制
sdk/images/ring1.png


二進制
sdk/images/roam/roam_checked.png


二進制
sdk/images/roam/roam_checked_256.png


二進制
sdk/images/roam/roam_invisible.png


二進制
sdk/images/roam/roam_invisible_256.png


二進制
sdk/images/roam/roam_uncheck.png


二進制
sdk/images/roam/roam_uncheck_256.png


二進制
sdk/images/roam/roam_visible.png


二進制
sdk/images/roam/roam_visible_256.png


二進制
sdk/images/tag_icon_default.png


文件差異過大導致無法顯示
+ 2 - 0
sdk/images/tag_icon_default.svg


二進制
sdk/images/tag_pointer.png


二進制
sdk/images/texture.jpg


二進制
sdk/images/videoTag.png


二進制
sdk/images/video_256.png


二進制
sdk/images/video_unable_256.png


+ 0 - 0
sdk/images/vrCursor.png


部分文件因文件數量過多而無法顯示