fix: 修复resetView视角和离开地球隐藏tooltip
This commit is contained in:
12
frontend/public/earth/js/controls.js
vendored
12
frontend/public/earth/js/controls.js
vendored
@@ -153,11 +153,17 @@ function animateValue(start, end, duration, onUpdate, onComplete) {
|
|||||||
export function resetView(camera) {
|
export function resetView(camera) {
|
||||||
if (!earthObj) return;
|
if (!earthObj) return;
|
||||||
|
|
||||||
|
const chinaLat = 40;
|
||||||
|
const chinaLon = -154;
|
||||||
|
|
||||||
|
const baseTilt = 23.5 * Math.PI / 180;
|
||||||
|
const latRot = chinaLat * Math.PI / 180;
|
||||||
|
const targetRotX = baseTilt + latRot * 0.5;
|
||||||
|
const targetRotY = -(chinaLon * Math.PI / 180);
|
||||||
|
|
||||||
const startRotX = earthObj.rotation.x;
|
const startRotX = earthObj.rotation.x;
|
||||||
const startRotY = earthObj.rotation.y;
|
const startRotY = earthObj.rotation.y;
|
||||||
const startZoom = zoomLevel;
|
const startZoom = zoomLevel;
|
||||||
const targetRotX = 23.5 * Math.PI / 180;
|
|
||||||
const targetRotY = 0;
|
|
||||||
const targetZoom = 1.0;
|
const targetZoom = 1.0;
|
||||||
|
|
||||||
animateValue(0, 1, 800, (progress) => {
|
animateValue(0, 1, 800, (progress) => {
|
||||||
@@ -170,7 +176,7 @@ export function resetView(camera) {
|
|||||||
updateZoomDisplay(zoomLevel, camera.position.z.toFixed(0));
|
updateZoomDisplay(zoomLevel, camera.position.z.toFixed(0));
|
||||||
}, () => {
|
}, () => {
|
||||||
zoomLevel = 1.0;
|
zoomLevel = 1.0;
|
||||||
showStatusMessage('视图已重置', 'info');
|
showStatusMessage('视角已重置到中国', 'info');
|
||||||
});
|
});
|
||||||
|
|
||||||
if (typeof window.clearLockedCable === 'function') {
|
if (typeof window.clearLockedCable === 'function') {
|
||||||
|
|||||||
@@ -301,6 +301,8 @@ function onMouseMove(event, camera) {
|
|||||||
showTooltip(event.clientX + 10, event.clientY + 10,
|
showTooltip(event.clientX + 10, event.clientY + 10,
|
||||||
`纬度: ${coords.lat}°<br>经度: ${coords.lon}°<br>海拔: ${coords.alt.toFixed(1)} km`);
|
`纬度: ${coords.lat}°<br>经度: ${coords.lon}°<br>海拔: ${coords.alt.toFixed(1)} km`);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
hideTooltip();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isDragging) {
|
if (isDragging) {
|
||||||
|
|||||||
Reference in New Issue
Block a user