首页 / 浏览问题 / 组件GIS / 问题详情
iobjects C++在内存数据源无法导入kml文件
26EXP 2023年04月04日

iobjects C++11i中,为什么在内存数据源中导入kml文件失败,在文件型数据源则可以导入。在iDesktop是可以在内存数据源导入kml文件的,是我创建的内存数据源不对吗?以下是我的代码:

    //创建数据源实例对象
    UGDataSource* memoryDs = UGDataSourceManager::CreateDataSource(UGEngineType::Memory);
    //设置数据源连接信息
    UGDsConnection pCon;
    pCon.m_nType = UGEngineType::Memory;//数据源类型
    pCon.m_strAlias = _U("memoryDs");
    memoryDs->GetConnectionInfo() = pCon;
    //创建数据源
    UGbool s = memoryDs->Create();

    m_pWorkspace->m_DataSources.Insert(_U("memoryDs"),memoryDs);

    UGDataExchange exchange = UGDataExchange();
    int issu = exchange.AttachDataSource(memoryDs);

    UGKMLImportParams kmlParams = UGKMLImportParams();
    kmlParams.SetDestDTName(_U("testKML"));  
    kmlParams.SetFilePathName(Translator::QStr2UGStr(qStrPath));

    UGint ii = kmlParams.GetFileType();
    //ss返回1
    int ss = UGExchangeParamsManager::IsValidImportParams(ii, kmlParams);
    //issucceed为-1
    UGint issucceed = exchange.Import(kmlParams);

1个回答

您好,建议使用文件型数据源 udb / udbx,桌面端上的内存数据源实际上也是文件型数据源,只是存储位置直接存在在系统临时目录下的。

希望可以帮到您。
2,158EXP 2023年04月04日
...