JavaScript is required

指定缩放比例

缩放级别控制 - 大图的程序化缩放控制

带有大型树数据集的缩放级别控制

功能概述

本示例演示了包含 100 多个节点的大型树形结构图上的程序化缩放控制。用户可以通过下拉菜单从预设缩放级别(10%、20%、40%、80%、100%)中进行选择,图会立即调整以显示不同级别的细节。该示例展示了如何使用 setZoom() API 控制放大倍数,对于导航大型分层数据集很有用。

核心特性实现

缩放状态管理

const [zoom, setZoom] = useState(100);

带缩放的图初始化

const initializeGraph = async () => {
    const myJsonData: RGJsonData = {
        rootId: 'a',
        nodes: [
            // 树形结构中的 100+ 节点
        ],
        lines: [
            // 树形连接
        ]
    };

    await graphInstance.setJsonData(myJsonData);
    graphInstance.moveToCenter();
    graphInstance.setZoom(zoom);
    SimpleGlobalMessage.showMessage({
        type: 'success',
        message: `Set Zoom To: ${zoom}%`
    });
};

缩放更新效果

useEffect(() => {
    setGraphZoom();
}, [zoom]);

const setGraphZoom = () => {
    graphInstance.setZoom(zoom);
};

缩放控制 UI

<SimpleUISelect
    data={[
        { value: 100, text: '100%' },
        { value: 80, text: '80%' },
        { value: 40, text: '40%' },
        { value: 20, text: '20%' },
        { value: 10, text: '10%' }
    ]}
    currentValue={zoom}
    onChange={(newValue: string) => {
        setZoom(parseInt(newValue));
    }}
/>

垂直树形布局

const graphOptions: RGOptions = {
    layout: {
        layoutName: 'tree',
        from: 'top',
        treeNodeGapH: 10,
        treeNodeGapV: 100
    },
    defaultNodeShape: RGNodeShape.rect,
    defaultNodeWidth: 30,
    defaultNodeHeight: 100
};

创意使用场景

大型组织架构图:导航拥有数千名员工的企业层级结构。缩小以查看概览,放大以查看部门详细信息。

家谱树:浏览庞大的家族树。使用缩放在所有后代概览和特定分支详细视图之间切换。

分类法分类:探索生物学或产品分类法。缩放控件有助于在广泛类别和特定项目之间导航。

文件系统可视化器:显示包含数千个文件的目录结构。缩放以查看概览或深入到特定文件夹。

决策树:导航复杂的决策结构。缩小查看完整决策路径,放大检查单个决策点。