From 0e5674fa6a121115d4d5ef52bbb2911cb09fb405 Mon Sep 17 00:00:00 2001 From: jianneng-fit2cloud Date: Tue, 6 Jan 2026 19:10:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=9B=BE=E8=A1=A8):=20=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E5=9C=B0=E5=9B=BE=E5=BD=93=E4=B8=8D=E6=98=BE=E7=A4=BA=E7=BC=A9?= =?UTF-8?q?=E6=94=BE=E6=8C=89=E9=92=AE=E6=97=B6=E7=A6=81=E7=94=A8=E7=BC=A9?= =?UTF-8?q?=E6=94=BE=E4=BB=A5=E5=8F=8A=E6=8B=96=E6=8B=BD=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=20#17703?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/js/panel/common/common_antv.ts | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/core/core-frontend/src/views/chart/components/js/panel/common/common_antv.ts b/core/core-frontend/src/views/chart/components/js/panel/common/common_antv.ts index 3e5f114fac..415a07c2d3 100644 --- a/core/core-frontend/src/views/chart/components/js/panel/common/common_antv.ts +++ b/core/core-frontend/src/views/chart/components/js/panel/common/common_antv.ts @@ -1258,8 +1258,17 @@ export function configL7Zoom( scene.removeControl(zoomOption) } if (shouldHideZoom(basicStyle)) { + // 当地图未加载完成时,无法配置控制项,需要监听loaded事件 + if (!scene.loaded) { + scene.once('loaded', () => { + updateMapStatusOption(mapKey.mapType, scene, false) + }) + } else { + updateMapStatusOption(mapKey.mapType, scene, false) + } return } + updateMapStatusOption(mapKey.mapType, scene, true) if (!scene?.getControlByName('zoom')) { if (!scene.map) { scene.once('loaded', () => { @@ -2478,3 +2487,47 @@ export const configRoundAngle = (chart: Chart, styleName: string, callBack?: (da } } } + +/** + * 更新地图交互配置 + * @param mapType + * @param scene + * @param enable + */ +function updateMapStatusOption(mapType: string, scene: Scene, enable = false) { + switch (mapType) { + case 'tianditu': + if (enable) { + scene.map?.enableDrag() + scene.map?.enableScrollWheelZoom() + scene.map?.enableDoubleClickZoom() + scene.map?.enableKeyboard() + scene.map?.enablePinchToZoom() + } else { + scene.map?.disableDrag() + scene.map?.disableScrollWheelZoom() + scene.map?.disableDoubleClickZoom() + scene.map?.disableKeyboard() + scene.map?.disablePinchToZoom() + } + break + case 'qq': + scene.map?.setDraggable(enable) + scene.map?.setScrollable(enable) + scene.map?.setDoubleClickZoom(enable) + scene.map?.setTouchZoomable(enable) + scene.map?.setPitchable(enable) + scene.map?.setRotatable(enable) + break + default: + scene.map?.setStatus({ + dragEnable: enable, + keyboardEnable: enable, + doubleClickZoom: enable, + rotateEnable: enable, + pitchEnable: enable, + scrollWheel: enable, + touchZoom: false + } as any) + } +}