/// <summary> /// udb中导入tiff /// </summary> /// <param name="importPath"></param> public string ImportTIFF(string importPath, DatasourceConnectionInfo info) { try { string name = importPath.Substring(importPath.LastIndexOf("\\") + 1); // 1. 构建数据源连接对象。 //DatasourceConnectionInfo info = new DatasourceConnectionInfo(); //info.Server = sourceUDB; // 2. 构建SHP导入设置对象(ImportSettingSHP),设置数据源,设置导入数据路径。 //info.Password = "******"; ImportSettingTIF importSettingTIF = new ImportSettingTIF(); //m_workspace.Datasources.Open(info); importSettingTIF.ImportMode = ImportMode.Overwrite;//可复写 importSettingTIF.SourceFilePath = importPath; importSettingTIF.TargetDatasourceConnectionInfo = info; importSettingTIF.ImportingAsGrid = true;//栅格数据集形式 // 3. 获取导入设置对象的导入信息集合(ImportDataInfos),设置目标数据集的名字。 // ImportDataInfo dataInfos = importSettingSHP.GetTargetDataInfos(""); //importSettingSHP.SetTargetDataInfos(dataInfos); // 4. 构建数据导入类对象(DataImport),构建并设置导入设置对象集合。 //string prjRef = @"G:\移动风险监测\参考坐标\CGCS_2000.xml"; PrjCoordSys prj = new PrjCoordSys(); // prj.FromFile(prjRef, PrjFileType.SuperMap); prj.Type = PrjCoordSysType.SphereMercator; importSettingTIF.TargetPrjCoordSys = prj;//设置了参考投影,还需改变其投影转换 DataImport import1 = new DataImport(); ImportSettings settings = import1.ImportSettings; settings.Add(importSettingTIF); ImportResult dd= import1.Run(); i++; if (dd.FailedSettings.Length != 0) return "【tif数据导入】" + name + "导入失败!请检查数据是否有效。\t\n"; return null; } catch (Exception ex) { MessageBox.Show(ex.Message); return null; } }
public void ImportTIFFTest(string importPath, string sourceUDB) { try { // 1. 构建数据源连接对象。 DatasourceConnectionInfo info = new DatasourceConnectionInfo(); info.Server = sourceUDB; WorkspaceConnectionInfo ConnectionInfo = new WorkspaceConnectionInfo(sourceUDB); SuperMap.Data.Workspace wps = new SuperMap.Data.Workspace(); wps.Create(ConnectionInfo); Datasources ds = wps.Datasources; //ds.Open(info); Datasource dss = ds.Create(info); // new Datasource(); //dss.Connect(); // 2. 构建SHP导入设置对象(ImportSettingSHP),设置数据源,设置导入数据路径。 ImportSettingTIF importSettingTIF = new ImportSettingTIF(); importSettingTIF.ImportMode = ImportMode.Overwrite;//可复写 importSettingTIF.SourceFilePath = importPath; importSettingTIF.TargetDatasourceConnectionInfo = info; importSettingTIF.ImportingAsGrid = true;//栅格数据集形式 // 3. 获取导入设置对象的导入信息集合(ImportDataInfos),设置目标数据集的名字。 // ImportDataInfo dataInfos = importSettingSHP.GetTargetDataInfos(""); //importSettingSHP.SetTargetDataInfos(dataInfos); // 4. 构建数据导入类对象(DataImport),构建并设置导入设置对象集合。 PrjCoordSys prj = new PrjCoordSys(); prj.Type = PrjCoordSysType.SphereMercator; importSettingTIF.TargetPrjCoordSys = prj;//设置了参考投影,还需改变其投影转换 //prj.GeoCoordSys.FromXML(readXML()) DataImport import1 = new DataImport(); ImportSettings settings = import1.ImportSettings; settings.Add(importSettingTIF); import1.Run(); try { int m = importPath.LastIndexOf('\\'); string dsName = importPath.Substring(m + 1); int n = dsName.LastIndexOf('.'); string dsname = dsName.Substring(0, n); Datasets datasets = dss.Datasets; Dataset m_processDataset = datasets[dsname]; PrjCoordSys prj1 = new PrjCoordSys(); prj1.FromXML(readXML(@"G:\移动风险监测\参考坐标\CGCS_2000.xml")); Boolean result = CoordSysTranslator.Convert(m_processDataset, prj1, new CoordSysTransParameter(), CoordSysTransMethod.GeocentricTranslation); } catch (Exception ex) { MessageBox.Show(ex.Message); } i++; } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public override void Run() { try { //// WorkspaceConnectionInfo conInfo = new WorkspaceConnectionInfo(@"D:\Program Files (x86)\SuperMap\SuperMap iDesktop 7C\SampleData\World\World.smwu"); // WorkspaceControl workspaceControl // = SuperMap.Desktop.Application.ActiveApplication.MainForm.DockBarManager[typeof(WorkspaceControlManager)].Control as WorkspaceControl; // if (workspaceControl != null) // { // workspaceControl.ResourcesNodeVisible = false; // workspaceControl.LayoutsNodeVisible = false; // //workspaceControl.WorkspaceTree.Workspace.Open(conInfo); // WorkspaceConnectionInfo conInfo1 = new WorkspaceConnectionInfo(@"..\..\Default.smwu"); // //workspaceControl.WorkspaceTree.Workspace.Create(conInfo1); // //workspaceControl.WorkspaceTree.Workspace.Close(); // //workspaceControl.WorkspaceTree.Workspace.Dispose(); // bool dd= workspaceControl.WorkspaceTree.Workspace.Open(conInfo1); // workspaceControl.WorkspaceTree.Workspace.Datasources.Create() // //workspaceControl.Update(); // //workspaceControl.WorkspaceTree.WorkspaceNode.Nodes.Add("dafsaf"); // // workspaceControl.WorkspaceTree.Update(); // } // System.Windows.Forms.MessageBox.Show("LoadImageCtrlAction"); //IFormMap activeMapForm = Application.ActiveForm as IFormMap; //MapControl activeMap = activeMapForm.MapControl; //IFormManager dd= Application.ActiveApplication.MainForm.FormManager; //for (int i = 0; i < dd.Count; i++) //{ //} WorkspaceControl workspaceControl = SuperMap.Desktop.Application.ActiveApplication.MainForm.DockBarManager[typeof(WorkspaceControlManager)].Control as WorkspaceControl; Datasource targetDatasource; DatasourceConnectionInfo dataSourceConnectionInfo = new DatasourceConnectionInfo(); dataSourceConnectionInfo.Server = @"..\..\Default"; if (workspaceControl != null) { workspaceControl.ResourcesNodeVisible = false; workspaceControl.LayoutsNodeVisible = false; Form1 form1 = new Form1(); form1.Show(); try { bool isExist = workspaceControl.WorkspaceTree.Workspace.Datasources.Contains(dataSourceConnectionInfo.Alias); if (isExist) { targetDatasource = workspaceControl.WorkspaceTree.Workspace.Datasources[dataSourceConnectionInfo.Alias]; } else { targetDatasource = workspaceControl.WorkspaceTree.Workspace.Datasources.Open(dataSourceConnectionInfo); } } catch (Exception ex1) { targetDatasource = workspaceControl.WorkspaceTree.Workspace.Datasources.Create(dataSourceConnectionInfo); } OpenFileDialog ofd = new OpenFileDialog(); ofd.Filter = "影像文件(*.tif)|*.*"; ofd.ValidateNames = true; ofd.CheckPathExists = true; ofd.CheckFileExists = true; ofd.ShowHelp = true; //ofd.HelpRequest += ofd_HelpRequest; if (ofd.ShowDialog() == DialogResult.OK) { string strFileName = ofd.FileName; //其他代码 DataImport m_dataImport = new DataImport(); m_dataImport.ImportSettings.Clear(); //ImportSettingIMG imgSetting = new ImportSettingIMG(); //imgSetting.ImportMode = ImportMode.Overwrite; //imgSetting.SourceFilePath = @"..\..\SampleData\DataExchange\ImgImport\Multibands.img"; //imgSetting.TargetDatasource = m_desDatasource; //imgSetting.MultiBandImportMode = MultiBandImportMode.MultiBand; //m_dataImport.ImportSettings.Add(imgSetting); //m_dataImport.Run(); //DatasetImage importResult = m_desDatasource.Datasets["Multibands"] as DatasetImage; //LayerSettingImage layerSetting = new LayerSettingImage(); //layerSetting.DisplayBandIndexes = new Int32[] { 3, 2, 1 }; //layerSetting.DisplayColorSpace = ColorSpaceType.RGB; ImportSettingTIF importSetingTif = new ImportSettingTIF(); importSetingTif.ImportMode = ImportMode.Overwrite; importSetingTif.SourceFilePath = strFileName; PrjCoordSys prgCoord = importSetingTif.GetSourcePrjCoordSys(); Charset pCharset = importSetingTif.SourceFileCharset; ImportDataInfos importDataInfoTif = importSetingTif.GetTargetDataInfos(""); importSetingTif.SetTargetDataInfos(importDataInfoTif); //ImportDataInfoTIF importDataInfoTif1 = null; importSetingTif.TargetDatasource = targetDatasource; m_dataImport.ImportSettings.Add(importSetingTif); m_dataImport.Run(); } } } catch (Exception ex) { SuperMap.Desktop.Application.ActiveApplication.Output.Output(ex.StackTrace); } }