diff --git a/src/components/map/ThreeMap.vue b/src/components/map/ThreeMap.vue
index a072534..4ac3e5c 100644
--- a/src/components/map/ThreeMap.vue
+++ b/src/components/map/ThreeMap.vue
@@ -48,6 +48,7 @@
import { computed, nextTick, onMounted, onUnmounted, ref, watch } from 'vue'
import * as THREE from 'three'
import { GLTFLoader, type GLTF } from 'three/addons/loaders/GLTFLoader.js'
+import { DRACOLoader } from 'three/addons/loaders/DRACOLoader.js'
import { OrbitControls } from 'three/addons/controls/OrbitControls.js'
import FloorSwitcher from './FloorSwitcher.vue'
import type {
@@ -194,6 +195,7 @@ let camera: THREE.PerspectiveCamera | null = null
let renderer: THREE.WebGLRenderer | null = null
let controls: OrbitControls | null = null
let loader: GLTFLoader | null = null
+let dracoLoader: DRACOLoader | null = null
let activeModel: THREE.Object3D | null = null
let poiGroup: THREE.Group | null = null
let routeGroup: THREE.Group | null = null
@@ -682,6 +684,9 @@ const initThree = async () => {
syncControlInteractionOptions()
loader = new GLTFLoader()
+ dracoLoader = new DRACOLoader()
+ dracoLoader.setDecoderPath('/static/three/draco/')
+ loader.setDRACOLoader(dracoLoader)
poiGroup = new THREE.Group()
poiGroup.name = 'GuideModelPOI'
scene.add(poiGroup)
@@ -2298,6 +2303,8 @@ const disposeScene = () => {
scene = null
camera = null
loader = null
+ dracoLoader?.dispose()
+ dracoLoader = null
poiGroup = null
routeGroup = null
@@ -2321,6 +2328,7 @@ defineExpose({
queueTargetFocus(request)
},
clearSelection: clearMapSelection,
+ clearRoute: clearRoutePreview,
clearNavigation: () => clearMapSelection(false),
disableAutoSwitchTemporarily
})
@@ -2346,6 +2354,12 @@ watch(() => [props.routePreview, props.showRoute], () => {
deep: true
})
+watch(() => props.initialView, (newView) => {
+ if (newView === 'floor' || newView === 'multi') {
+ activeView.value = newView
+ }
+})
+
onMounted(() => {
init3DScene()
})
diff --git a/src/components/navigation/GuideMapShell.vue b/src/components/navigation/GuideMapShell.vue
index 2d3b975..621c4ec 100644
--- a/src/components/navigation/GuideMapShell.vue
+++ b/src/components/navigation/GuideMapShell.vue
@@ -3,25 +3,14 @@
-
@@ -170,11 +161,6 @@
-
-
-
-
-
更多
@@ -195,14 +181,10 @@