首页 / 浏览问题 / 组件GIS / 问题详情
使用iObject导入shp数据失败
2EXP 2024年12月13日

要在工作空间下的一个数据源中添加shp数据,无法添加成功。之前用的是文档上给的代码,添加不了,现在从网上抄的代码,也不行

string dataset_name = this._workspace.Datasources[datasource_name].Datasets.GetAvailableDatasetName("");
ImportSettingSHP importSettingSHP = new ImportSettingSHP();
importSettingSHP.SourceFilePath = data_path;
importSettingSHP.TargetDatasource = this._workspace.Datasources[datasource_name];
importSettingSHP.TargetDatasetName = dataset_name;
importSettingSHP.ImportMode = ImportMode.Append;
importSettingSHP.SetTargetDataInfos(importSettingSHP.GetTargetDataInfos(""));
DataImport import = new DataImport();
import.ImportSettings.Add(importSettingSHP);
ImportResult result=import.Run();

2 个回答

您好,导入shp代码您可以参考

    public static String ImportSHP(Datasource datasource, String shpPath) {
        ImportSettingSHP importSettingSHP = new ImportSettingSHP();
        importSettingSHP.setTargetDatasource(datasource);
        importSettingSHP.setSourceFilePath(shpPath);
        importSettingSHP.setImportMode(ImportMode.NONE);

        DataImport dataImport = new DataImport();
        dataImport.getImportSettings().add(importSettingSHP);
        ImportResult importResult = dataImport.run();
        return importResult.getSucceedSettings()[0].getTargetDatasetName();

    }

若还是无法正常导入,建议您确认shp文件本身有没有问题,shp所有文件是否完整可读。

希望可以帮助到您。

10,758EXP 2024年12月13日
ImportSettingSHP importSettingSHP = new ImportSettingSHP();
importSettingSHP.setAttributeIgnored(false);
//设置当同名数据集存在时导入的模式,如果存在名字冲突,则覆盖
importSettingSHP.setImportMode(ImportMode.OVERWRITE);
//设置需要导入的数据路径信息
importSettingSHP.setSourceFilePath("/test.shp");
importSettingSHP.setImporttingAs3D(false);
importSettingSHP.setImportMode(ImportMode.NONE);
importSettingSHP.setTargetEncodeType(EncodeType.NONE);
//设置需要导入的数据编码类型,因为有中文字段,所以用ASCII编码
importSettingSHP.setSourceFileCharset(Charset.ANSI);
//设置要导入的目标数据源
importSettingSHP.setTargetDatasource(datasourceMemeroy);
//设置目标数据集名称
importSettingSHP.setTargetDatasetName(name);
DataImport importer = new DataImport();
importer.getImportSettings().add(importSettingSHP);
ImportResult result = importer.run();

您好,以上是我测试可以成功运行的代码,你可以补齐参数再试试呢

如果还有问题,可以补齐下异常现象或报错信息

希望能帮助到您

1,000EXP 2024年12月13日

现在的问题是ImportResult显示导入成功了,但是数据集里面访问不到

...