SuperMap iObjects .NET 11i二次开发(十)——小白进阶之数据交换之导入栅格数据操作

前言

上一篇博文简单介绍了有关数据交换之导入矢量数据的相关操作,这个部分主要认识下数据交换之导入栅格数据的相关操作。


从SuperMap iDesktop帮助文档内可查看到SuperMap支持导入的栅格文件格式,如下图所示,本博文以导入JPG文件和TIFF影像数据为例。 

一、有关常用类说明

DataImport类

导入数据类,通过该类可以将外部数据(文件型)导入到SuperMap的格式。

ImportSettingJPG类

JPG 文件导入的参数类。该类继承于ImportSetting 类。

ImportSettingTIFF类

Tiff/BigTIFF/GeoTIFF 文件导入的参数设置类。继承自 ImportSetting 类。

二、有关常用方法及属性说明

DataImport.ImportSettings.Add()

获取或设置导入设置集合,通过该方法可以完成多个导入任务的设置。

DataImport.Run()

执行导入数据集的操作,返回导入结果 ImportResult

ImportResult.SucceedSettings

获取导入成功的任务的 ImportSetting 集合。

三、界面设计

添加菜单栏下的功能点,导入矢量数据部分可跳转以下博文进行查看:

SuperMap iObjects .NET 11i二次开发(九)——小白进阶之数据交换之导入矢量数据操作icon-default.png?t=N7T8https://blog.csdn.net/Adoudoudou_/article/details/136616615?spm=1001.2014.3001.5502

四、功能实现

(1)导入TIFF数据

private void OpenTIFF_Click(object sender, EventArgs e)
{
    //判断当前工作空间是否有打开的数据源
    if (D_workspace.Datasources.Count == 0)
    {
        MessageBox.Show("请打开一个数据源");
        return;
    }
    Datasource datasource = D_workspace.Datasources[0];
    //获取一个数据源中未被使用的数据集的名称
    string strDsName = datasource.Datasets.GetAvailableDatasetName("");

    this.openFileDialog1.Title = "Import Tif file";
    this.openFileDialog1.Filter = "Tif file data(.tif)|*.tif";
    this.openFileDialog1.FileName = "";

    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        DataImport dataImport = new DataImport();
        //设置导入信息
        ImportSettingTIF importSettingTIF= new ImportSettingTIF();
        importSettingTIF.SourceFilePath = this.openFileDialog1.FileName;
        importSettingTIF.TargetDatasource = datasource;
        importSettingTIF.TargetDatasetName = strDsName;
        //将多波段数据导入为一个多波段数据集
        importSettingTIF.MultiBandImportMode = MultiBandImportMode.MultiBand;
        dataImport.ImportSettings.Add(importSettingTIF);
        //执行导入TIF数据
        ImportResult importResult = dataImport.Run();

        if (importResult.SucceedSettings.Length > 0)
        {
            MessageBox.Show("导入TIF数据成功!", "提示");
            
            Dataset datasettif = D_workspace.Datasources[0].Datasets[strDsName];
            //将导入的TIF数据添加到图层中
            D_mapControl.Map.Layers.Add(datasettif, true);
            //将导入的TIF数据在地图全幅显示
            D_mapControl.Map.ViewEntire();
            //刷新地图控件
            D_mapControl.Refresh();
            //刷新图层管理器控件
            D_layersControl.Refresh();

        }
    }
}

(2)导入JPG数据

private void OpenJPG_Click(object sender, EventArgs e)
{
    //判断当前工作空间是否有打开的数据源
    if (D_workspace.Datasources.Count == 0)
    {
        MessageBox.Show("请打开一个数据源");
        return;
    }
    Datasource datasource = D_workspace.Datasources[0];
    //获取一个数据源中未被使用的数据集的名称
    string strDsName = datasource.Datasets.GetAvailableDatasetName("");

    this.openFileDialog1.Title = "Import JPG file";
    this.openFileDialog1.Filter = "JPG file data(.jpg)|*.jpg";
    this.openFileDialog1.FileName = "";

    if (openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        DataImport dataImport = new DataImport();
        //设置导入信息
        ImportSettingJPG importSettingJPG = new ImportSettingJPG();
        importSettingJPG.SourceFilePath = this.openFileDialog1.FileName;
        importSettingJPG.TargetDatasource = datasource;
        importSettingJPG.TargetDatasetName = strDsName;
        //将多波段数据导入为一个单波段数据集
        importSettingJPG.MultiBandImportMode = MultiBandImportMode.Composite;
        dataImport.ImportSettings.Add(importSettingJPG);
        //执行导入JPG数据
        ImportResult importResult = dataImport.Run();

        if (importResult.SucceedSettings.Length > 0)
        {
            MessageBox.Show("导入JPG数据成功!", "提示");
            
            Dataset datasetjpg = D_workspace.Datasources[0].Datasets[strDsName];
            D_mapControl.Map.Layers.Add(datasetjpg, true);
            //将导入的JPG数据在地图全幅显示
            D_mapControl.Map.ViewEntire();
            //刷新地图控件
            D_mapControl.Refresh();
            //刷新图层管理器控件
            D_layersControl.Refresh();

        }
    }
}

五、运行结果


总结

以上就是有关于SuperMap iObjects 11i .NET数据交换之导入栅格数据的相关操作的一些过程记录,我们下篇博文再见!

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值