diff --git a/src/views/AppThreeMap.vue b/src/views/AppThreeMap.vue
index e14795c..442927c 100644
--- a/src/views/AppThreeMap.vue
+++ b/src/views/AppThreeMap.vue
@@ -205,7 +205,8 @@ export default {
that.scene.add(that.mapGroup);
}
- transLayer({bakeStockAmt, longitude, latitude} = {}) {
+ transLayer(item = {}) {
+ let {bakeStockAmt, longitude, latitude} = item
longitude = Number(longitude || 0).toFixed(6);
latitude = Number(latitude || 0).toFixed(6);
const markerGeometry = new THREE.CircleBufferGeometry(0.1, 32);
@@ -219,17 +220,21 @@ export default {
opacity: 1
});
const marker = new THREE.Mesh(markerGeometry, markerMaterial);
- // const [x, y, z] = this.lnglatToVector3([longitude, latitude])
-
const lnglat = this.lnglatToVector3([longitude, latitude]);
const v3 = new THREE.Vector3(lnglat[0], lnglat[1], lnglat[2]).multiplyScalar(1.2);
// marker.scale.set(scale, scale, 1)
+ marker.data = item
marker.position.set(v3.x * scale, v3.y * scale, 0.201 * scale)
return marker
}
addMarkers() {
- root.layers.map(layer => this.scene.add(this.transLayer(layer)))
+ this.markers = [];
+ root.layers.map(layer => {
+ const marker = this.transLayer(layer)
+ this.markers.push(marker)
+ this.scene.add(marker)
+ })
}
/**
@@ -378,7 +383,21 @@ export default {
new TWEEN.Tween(o).to(n, t).start();
}
- // window.addEventListener('mousemove', onMouseMove, false);
+ const onClick = evt => {
+ // 计算鼠标位置
+ const mouseX = (evt.clientX / window.innerWidth) * 2 - 1;
+ const mouseY = -(evt.clientY / window.innerHeight) * 2 + 1;
+
+ // 创建一个射线投射器
+ const raycaster = new THREE.Raycaster();
+ raycaster.setFromCamera(new THREE.Vector2(mouseX, mouseY), this.camera);
+ const marker = this.markers.find(e => raycaster.intersectObject(e).length > 0)
+ const {$glob} = window
+ this.$storeBoard.search.storeCode = marker.data?.storeCode
+ $glob.group = '9f299712-5549-413b-a93b-7c3e3b5bfadb'
+ }
+ window.addEventListener('mousemove', onMouseMove, false);
+ window.addEventListener('click', onClick, false);
}
makeGround() {
@@ -497,8 +516,3 @@ export default {
-
-