1、直接在720云全景图的相关窗口中,通过文字水印进行跳转。
2、下一步d出新的界面,就看到图示内容。
3、这个时候如果没问题,就根据实际情况设置那里的参数。
4、等完成上述 *** 作以后,继续输入文字并确定添加。
5、这样一来会发现对应结果,即可实现要求了。
一般获取景区上某个地址的标记,都是通过手动获取的。因为这些标记是无规律可寻的。所以我们就得考虑如何通过手动去获取3D图上的某个地址。人机交互时通过鼠标来 *** 作,但鼠标是2D坐标,需要转换到对应的3D坐标上。Three.js为我们提供了Raycaster对象,我们可以很轻松的获取到一个2D点对应的3D坐标。先声明几个对象:var raycasterCubeMesh
var raycaster = new THREE.Raycaster()
var mouseVector = new THREE.Vector3()
var tags = []
这里需要在document上注册mousemove事件,实时获取鼠标对应的3D坐标。事件代码如下:
function onMouseMove(event){
mouseVector.x = 2 * (event.clientX / window.innerHeight) - 1
mouseVector.y = - 2 * (event.clientY / window.innerHeight) + 1
raycaster.setFromCamera(mouseVector.clone(), camera)
var intersects = raycaster.intersectObjects([cubeMesh])
if(raycasterCubeMesh){
scene.remove(raycasterCubeMesh)
}
activePoint = null
if(intersects.length >0){
var points = []
points.push(new THREE.Vector3(0, 0, 0))
points.push(intersects[0].point)
var mat = new THREE.MeshBasicMaterial({color: 0xff0000, transparent: true, opacity: 0.5})
var sphereGeometry = new THREE.SphereGeometry(100)
raycasterCubeMesh = new THREE.Mesh(sphereGeometry, mat)
raycasterCubeMesh.position.copy(intersects[0].point)
scene.add(raycasterCubeMesh)
activePoint = intersects[0].point
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)