diff --git a/src/views/AppMarketBoard.vue b/src/views/AppMarketBoard.vue
new file mode 100644
index 0000000..d9bf30b
--- /dev/null
+++ b/src/views/AppMarketBoard.vue
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/src/views/AppThreeMap.vue b/src/views/AppThreeMap.vue
index 2392c92..1f702c7 100644
--- a/src/views/AppThreeMap.vue
+++ b/src/views/AppThreeMap.vue
@@ -68,15 +68,17 @@ export default {
animation() {
requestAnimationFrame(this.animation.bind(this));
this.loop = (this.loop * 100 + 2) % 100 * 0.01
- this.markers.children.forEach(e => {
- if (e.data.bakeStockAmt <= 0) {
- e.scale = {
- x: Math.asin(this.loop) + 1,
- y: Math.asin(this.loop) + 1,
- z: Math.asin(this.loop) + 1
- };
- }
- })
+ if (this.markers) {
+ this.markers.children.forEach(e => {
+ if (e.data.bakeStockAmt <= 0) {
+ e.scale = {
+ x: Math.asin(this.loop) + 1,
+ y: Math.asin(this.loop) + 1,
+ z: Math.asin(this.loop) + 1
+ };
+ }
+ })
+ }
TWEEN.update();
this.controls.update();
this.renderer.render(this.scene, this.camera);
@@ -197,11 +199,11 @@ export default {
}
addMarkers() {
+ this.markers.clear()
root.layers.map(layer => {
const marker = this.transLayer(layer)
this.markers.add(marker)
})
- this.mapGroup.add(this.markers)
}
lnglatToVector3(lnglat = []) {
@@ -218,6 +220,7 @@ export default {
* */
setScene() {
this.scene = new THREE.Scene();
+ this.mapGroup.add(this.markers)
this.mapGroup.scale.set(scale, scale, scale)
this.mapGroup.position.set(0, 0, 0)
this.scene.add(this.mapGroup);
@@ -315,13 +318,13 @@ export default {
bindMouseEvent() {
const raycaster = new THREE.Raycaster();
-
+ const targets = this.markers?.children || []
const onPointerMove = (event) => {
const {offsetWidth: width, offsetHeight: height} = rootEl, {left, top} = rootEl.getBoundingClientRect();
this.mouse.x = ((event.clientX - left) / width) * 2 - 1; //标准设备横坐标
this.mouse.y = -((event.clientY - top) / height) * 2 + 1; //标准设备纵坐标
raycaster.setFromCamera(this.mouse, this.camera);
- const intersects = raycaster.intersectObjects(this.markers.children)
+ const intersects = raycaster.intersectObjects(targets)
intersects.forEach(e => {
if (e.object?.data) {
this.showHoverPanel(e.object)
@@ -339,7 +342,7 @@ export default {
// const ray = worldVector.sub(this.camera.position).normalize();
// 创建一个射线投射器
raycaster.setFromCamera(this.mouse, this.camera);
- const intersects = raycaster.intersectObjects(this.markers.children)
+ const intersects = raycaster.intersectObjects(targets)
intersects.forEach(e => {
if (e.object?.data) {
const marker = e.object?.data
@@ -412,8 +415,8 @@ export default {