首页 / 浏览问题 / 组件GIS / 问题详情
iobject如何复制地图到另外一个数据源
12EXP 2023年11月24日

使用产品:iserver 10.2.1i

操作系统:win10 x64

数据类型: postgres

我现在知道数据集复制是用  copyDataset方法,官方也有给示例

但是如果我想读取smwu/sxwu文件下的地图,并复制到我pg的数据源下的工作空间,有哪个方法可以用到呢? 可否给个示例

1个回答

您好,

地图是存储在工作空间中,地图可以通过输出地图模板后,在另一个工作空间中读取地图模板得方式来复制地图, 地图导出XML字符串的接口为map.toXML(),导入地图模板的接口为map.fromXML(**.xml) 。可在联机帮助文档中查找”Map“类,搜索接口及说明。

希望能够帮助到您!

2,199EXP 2023年11月24日

你好,我按照示例,自己写了一个例子,发现导入的地图还是有一些问题,

不知道fromXML这个方法是如何使用的,联机帮助文档的例子其实也不是很理解

可以帮我看一下吗

                Maps maps = workspaceSrc.getMaps();

                for (int i = 0; i < maps.getCount(); i++) {
                    Map srcMap = new Map(workspaceSrc);
                    srcMap.open(workspaceSrc.getMaps().get(i));

                    // 将地图导出为 XML 字符串
                    String srcXml = srcMap.toXML();

                    // 将XML格式的地图对象转换为地图对象
                  //  Map targetMap = new Map(workspaceDesc);
                  //   通过导入 xml 字符串创建地图
                  //  targetMap.fromXML(srcXml);

                    workspaceDesc.getMaps().add(srcMap.getName(), srcXml);

                    //释放资源
                    srcMap.close();
                    srcMap.dispose();

                }

    // 打开工作空间中的地图
        Map map = new Map(workspace);
        Boolean flag1 = map.open(workspace.getMaps().get(0));
        System.out.println("打开地图1:" + flag1);

        map.fromXML(workspace.getMaps().get(0));
        workspace.getMaps().add("map2", map.toXML()) ;
        workspace.save();

 

...