首页 / 浏览问题 / 组件GIS / 问题详情
iobJect.java 如何通过选择数据集创建一个地图并且保存
33EXP 2022年12月22日
选择数据集创建地图或者场景,对应的相关sdk接口类是哪个,帮忙指点一下,蟹蟹

1个回答

您好,根据您的描述,建议您参考以下流程:

  1. 新建地图或场景:new Map() 或 new Scene();
  2. 将选择的数据集添加到地图或场景:Map.getLayers().add(Dataset, LayerSetting, Boolean) 或 Scene.getLayer3Ds().add(Dataset, Layer3DSetting, Boolean);
  3. 保存地图或场景:workspace.getMaps().add(java.lang.String name, java.lang.String xml) 或 workspace.getScenes().add(java.lang.String name, java.lang.String xml);

希望可以帮到您。

2,258EXP 2022年12月22日
好的谢谢

您好,建议参考 iObjects Java 组件帮助文档哦,Map 对象提供了 toXML() 的接口。

大神,我这段代码虽然能生成地图,但是生成的地图用idesktopx打开是白屏。我在idesktopx中直接打开这个数据集的图,显示没问题的
Map map = new Map(workspace);
Datasources datasources = workspace.getDatasources();

for(int i=0; i<datasources.getCount(); i++) {
    Datasource datasource = datasources.get(i);
    String alias = datasource.getAlias();
    System.out.println("alias=" + alias);
    if(alias.startsWith("TestDSTif")) {
        Dataset dataset = datasource.getDatasets().get(0);
        map.getLayers().add(dataset, true);
    }
}

String xml = map.toXML();
System.out.println("xml=" + xml);
workspace.getMaps().add("施工图1", xml);

这段代码有2个问题,建议进行优化:

  1. Map 对象是新创建的,添加数据集到图层后,调用 Map 的 viewEntire() 接口定位到数据集全幅范围;
  2. Workspace 添加新地图后,调用 Workspace 的 save 接口保存工作空间。

若依然无法解决,建议拨打技术支持热线 4008900866。

...