先提交一部分

This commit is contained in:
2024-07-04 02:11:29 +08:00
parent c5326912fd
commit 335d35a16f

View File

@@ -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 {
<template>
<section class="AppThreeMap"/>
</template>
<style>
.AppThreeMap {
}
</style>