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 void CreateWorkspace(string wpsPath, string sources, string symbol) { // 创建工作空间,弹出 “关于”对话框 SuperMap.Data.Workspace workspace = new SuperMap.Data.Workspace(); WorkspaceConnectionInfo workspaceConnectionInfo = new WorkspaceConnectionInfo(); workspaceConnectionInfo.Type = WorkspaceType.SMWU; workspaceConnectionInfo.Name = "MapResult"; workspaceConnectionInfo.Password = "******"; String file = wpsPath; workspaceConnectionInfo.Server = file; if (workspace.Create(workspaceConnectionInfo)) { //MessageBox.Show("创建工作空间成功"); workspace.Caption = "MapResult"; workspace.Save(); DirectoryInfo di = new DirectoryInfo(symbol); foreach (FileInfo fill in di.GetFiles("*.bru")) { File.Copy(fill.FullName, sources + "//" + fill.Name, true); SymbolFillLibrary sf = workspace.Resources.FillLibrary; sf.FromFile(sources + "//" + fill.Name); workspace.Save(); } foreach (FileInfo point in di.GetFiles("*.sym")) { File.Copy(point.FullName, sources + "//" + point.Name, true); SymbolMarkerLibrary sf = workspace.Resources.MarkerLibrary; sf.FromFile(sources + "//" + point.Name); workspace.Save(); } foreach (FileInfo Line in di.GetFiles("*.lsl")) { File.Copy(Line.FullName, sources + "//" + Line.Name, true); SymbolLineLibrary sf = workspace.Resources.LineLibrary; sf.FromFile(sources + "//" + Line.Name); workspace.Save(); } di = new DirectoryInfo(sources); FileInfo[] fl = di.GetFiles("*.udb"); for (int s = 0; s < fl.Length; s++) { DatasourceConnectionInfo ds = new DatasourceConnectionInfo(); ds.Alias = fl[s].Name.Substring(0, fl[s].Name.Length - 4); ds.Password = "******"; ds.Server = sources + "\\" + fl[s].ToString(); //ds.Password = "******"; Datasource datasource = workspace.Datasources.Open(ds); if (ds.Alias.Substring(0, 4) == "ymgc") { ProjectConverTest(@"G:\移动风险监测\参考坐标\CGCS_2000.xml", datasource); System.Threading.Thread.Sleep(100); } //= "ymgc1"; if (datasource == null) { MessageBox.Show("打开数据源失败"); } else { //MessageBox.Show(fl[s].Name+"数据源打开成功!"); } workspace.Save(); } workspace.Close(); workspace.Dispose(); workspaceConnectionInfo.Dispose(); } }
public void CreateWorkspace(string wpsPath, string sources, string symbol) { // 创建工作空间,弹出 “关于”对话框 Msg("正在创建工作空间···"); SuperMap.Data.Workspace workspace = new SuperMap.Data.Workspace(); WorkspaceConnectionInfo workspaceConnectionInfo = new WorkspaceConnectionInfo(); workspaceConnectionInfo.Type = WorkspaceType.SMWU; workspaceConnectionInfo.Name = "MapResult"; workspaceConnectionInfo.Password = set.passWod; String file = wpsPath; workspaceConnectionInfo.Server = file; if (workspace.Create(workspaceConnectionInfo)) { //MessageBox.Show("创建工作空间成功"); workspace.Caption = "MapResult"; workspace.Save(); Msg("工作空间创建成功:" + workspace.Caption); //System.Threading.Thread.Sleep(500); Msg("正在导入符号库···"); DirectoryInfo di = new DirectoryInfo(symbol); foreach (FileInfo fill in di.GetFiles("*.bru")) { File.Copy(fill.FullName, sources + "//" + fill.Name, true); SymbolFillLibrary sf = workspace.Resources.FillLibrary; sf.FromFile(sources + "//" + fill.Name); workspace.Save(); } foreach (FileInfo point in di.GetFiles("*.sym")) { File.Copy(point.FullName, sources + "//" + point.Name, true); SymbolMarkerLibrary sf = workspace.Resources.MarkerLibrary; sf.FromFile(sources + "//" + point.Name); workspace.Save(); } foreach (FileInfo Line in di.GetFiles("*.lsl")) { File.Copy(Line.FullName, sources + "//" + Line.Name, true); SymbolLineLibrary sf = workspace.Resources.LineLibrary; sf.FromFile(sources + "//" + Line.Name); workspace.Save(); } Msg("符号库导入成功"); System.Threading.Thread.Sleep(500); di = new DirectoryInfo(sources); FileInfo[] fl = di.GetFiles("*.udb"); for (int s = 0; s < fl.Length; s++) { DatasourceConnectionInfo ds = new DatasourceConnectionInfo(); ds.Alias = fl[s].Name.Substring(0, fl[s].Name.Length - 4); Msg( "添加数据源:" + ds.Alias); ds.Server = sources + "\\" + fl[s].ToString(); ds.Password = set.passWod; Datasource datasource = workspace.Datasources.Open(ds); if (datasource == null) { MessageBox.Show("打开数据源失败"); } else { //MessageBox.Show(fl[s].Name+"数据源打开成功!"); } workspace.Save(); } workspace.Close(); workspace.Dispose(); workspaceConnectionInfo.Dispose(); } }