feat(图表): 在线地图当不显示缩放按钮时禁用缩放以及拖拽事件 #17703

This commit is contained in:
jianneng-fit2cloud
2026-01-06 19:10:34 +08:00
committed by jianneng-fit2cloud
parent b6aaad0296
commit 0e5674fa6a

View File

@@ -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)
}
}