在threejs中自定义了一个场景,该场景的原点由经纬度转换而来,创建了一条以原点为起点的线段,hover到线段上的时候如何计算hover点的经纬度?
获取到的经纬度与实际经纬度存在较大偏差
在threejs中自定义了一个场景,该场景的原点由经纬度转换而来,创建了一条以原点为起点的线段,hover到线段上的时候如何计算hover点的经纬度?
获取到的经纬度与实际经纬度存在较大偏差
在 Three.js 中,将世界坐标(通常是 x, y, z 的三维空间坐标)转换为经纬度并不是直接的过程,因为 Three.js 本身并不直接处理地理坐标。但是,如果你有一个从地理坐标(经纬度)到 Three.js 世界坐标的映射关系,你可以尝试逆向这个过程来估算 hover 点的经纬度。
请注意,以下代码是伪代码,并不直接适用于 Three.js,但它展示了如何估算 hover 点的经纬度:
// 假设 origin 是由经纬度转换而来的原点(Three.js 坐标)
// hoverPoint 是 hover 点的 Three.js 坐标
// 计算方向向量
let directionVector = new THREE.Vector3().subVectors(hoverPoint, origin);
// 计算纬度(简化示例)
let latitudeRadians = Math.acos(directionVector.y / directionVector.length());
let latitudeDegrees = THREE.MathUtils.radToDeg(latitudeRadians);
// 计算经度(简化示例)
let longitudeRadians = Math.atan2(directionVector.z, directionVector.x);
let longitudeDegrees = THREE.MathUtils.radToDeg(longitudeRadians);
// 输出估算的经纬度
console.log(`Estimated latitude: ${latitudeDegrees.toFixed(2)}°`);
console.log(`Estimated longitude: ${longitudeDegrees.toFixed(2)}°`);
1 回答619 阅读✓ 已解决
1.6k 阅读
1.2k 阅读
528 阅读