Example #1
0
        internal static ImportResult ImportShpToDatasource(string filePath, Datasource datasource, string targetTableName)
        {
            ImportSettingSHP importSettingSHP = new ImportSettingSHP();

            importSettingSHP.IsAttributeIgnored = false;
            importSettingSHP.IsImportAs3D       = false;
            //设置当同名数据集存在时导入的模式,如果存在名字冲突,则覆盖(Overwrite)
            importSettingSHP.ImportMode = ImportMode.Overwrite;
            //设置需要导入的数据路径信息
            importSettingSHP.SourceFilePath = filePath;
            //设置需要导入的数据编码类型,因为有中文字段,所以用ASCII编码
            importSettingSHP.SourceFileCharset = Charset.ANSI;
            //设置要导入的目标数据源
            importSettingSHP.TargetDatasource = datasource;
            //设置目标数据集名称
            importSettingSHP.TargetDatasetName = targetTableName;
            importSettingSHP.TargetEncodeType  = EncodeType.None;
            DataImport importer = new DataImport();

            importer.ImportSettings.Add(importSettingSHP);
            //数据导入mysql数据库
            ImportResult result = importer.Run();

            return(result);
        }
Example #2
0
 /// <summary>
 ///udb中导入shp
 /// </summary>
 /// <param name="importPath"></param>
 public string  ImportShp(string importPath, DatasourceConnectionInfo info)
 {
     try
     {
         string name = importPath.Substring(importPath.LastIndexOf("\\")+1);
         //wks.Datasources.Open(info);
         // 1. 构建数据源连接对象。 // info.Database = @"G:\数据转换\测试数据\Test\text.udb";数据库型
         //DatasourceConnectionInfo info = new DatasourceConnectionInfo();
         //info.Server = sourceUDB;//如@"G:\数据转换\测试数据\Test\text.udb";
         ImportSettingSHP importSettingSHP = new ImportSettingSHP();
         importSettingSHP.ImportMode = ImportMode.Overwrite;//可复写
         importSettingSHP.SourceFilePath = importPath;
         importSettingSHP.TargetDatasourceConnectionInfo = info;
         //importSettingSHP.IsAttributeIgnored = false;
         // 3. 获取导入设置对象的导入信息集合(ImportDataInfos),设置目标数据集的名字。默认为原名
         //ImportDataInfo dataInfos = importSettingSHP.GetTargetDataInfos("");
         //importSettingSHP.SetTargetDataInfos(dataInfos);
         // 4. 构建数据导入类对象(DataImport),构建并设置导入设置对象集合。
         DataImport import1 = new DataImport();
         ImportSettings settings = import1.ImportSettings;
         settings.Add(importSettingSHP);
         ImportResult dd = import1.Run();
         i++;
         if (dd.FailedSettings.Length != 0)
             return "【shp数据导入】" + name + "导入失败!请检查数据是否含有有效记录。\t\n";
         return null;
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
         return null;
     }
 }
Example #3
0
        private void ImportShpDirectly(string filePath)
        {
            Workspace workspace           = new Workspace();
            DatasourceConnectionInfo info = new DatasourceConnectionInfo();

            //mysql数据源
            //设置数据源连接的引擎类型
            info.EngineType = EngineType.MySQL;
            //设置数据库连接字符串
            info.Server        = server;
            info.Database      = database;
            info.User          = userName;
            info.Password      = password;
            info.Driver        = driver;
            info.IsAutoConnect = true;
            info.Alias         = "MySQL"; //不能为空
                                          // 打开数据库数据源
                                          //超图sdk不能直接连接空数据库,需要使用Create方法新建数据库,才有超图“系统表”
            Datasource datasource = workspace.Datasources.Open(info);

            if (datasource != null)
            {
                ImportSettingSHP importSettingSHP = new ImportSettingSHP();
                importSettingSHP.IsAttributeIgnored = false;
                importSettingSHP.IsImportAs3D       = false;
                //设置当同名数据集存在时导入的模式,如果存在名字冲突,则覆盖(Overwrite)
                importSettingSHP.ImportMode = ImportMode.Overwrite;
                //设置需要导入的数据路径信息
                importSettingSHP.SourceFilePath = filePath;
                //设置需要导入的数据编码类型,因为有中文字段,所以用ASCII编码
                importSettingSHP.SourceFileCharset = Charset.ANSI;
                //设置要导入的目标数据源
                importSettingSHP.TargetDatasource = datasource;
                //设置目标数据集名称
                importSettingSHP.TargetDatasetName = targetTableName;
                importSettingSHP.TargetEncodeType  = EncodeType.None;
                DataImport importer = new DataImport();
                importer.ImportSettings.Add(importSettingSHP);
                //数据导入mysql数据库
                ImportResult result = importer.Run();
                if (result.FailedSettings.Length == 0)
                {
                    Console.WriteLine($"导入{filePath}成功!");
                }
                else
                {
                    Console.WriteLine($"导入{filePath}失败!");
                }
            }


            // 释放工作空间资源
            info.Dispose();
            workspace.Dispose();
        }
Example #4
0
        public void LoadShp(string _shpFilePath)
        {
            SuperMap.Data.Conversion.DataImport m_dataImport = new SuperMap.Data.Conversion.DataImport();
            m_dataImport.ImportSettings.Clear();
            ImportSettingSHP imgSetting = new ImportSettingSHP();

            imgSetting.ImportMode         = ImportMode.Overwrite;
            imgSetting.SourceFilePath     = _shpFilePath;
            imgSetting.TargetDatasource   = UCEarthGlobal.m_MainSceneControl.Scene.Workspace.Datasources["Default"];
            imgSetting.IsAttributeIgnored = false;
            m_dataImport.ImportSettings.Add(imgSetting);
            m_dataImport.Run();
            IEnumerable <DatasetVector> dataimgList = UCEarthGlobal.m_MainSceneControl.Scene.Workspace.Datasources["Default"].Datasets.OfType <DatasetVector>();
            DatasetVector importResult = dataimgList.ToList().Find(v => v.Name == System.IO.Path.GetFileNameWithoutExtension(_shpFilePath)) as DatasetVector;
        }
Example #5
0
        /// <summary>
        /// 导入为shp
        /// </summary>
        public void ImportToShp()
        {
            //-------------数据库打开工作空间
            workspace1 = new SuperMap.Data.Workspace();

            /* WorkspaceconnectionInfo workspaceconnectionInfo = new WorkspaceconnectionInfo();
             * workspaceconnectionInfo.Type = WorkspaceType.Oracle;
             * workspaceconnectionInfo.Server = "ORCL";
             * workspaceconnectionInfo.Database = "";
             * workspaceconnectionInfo.Name = "workspace";
             * workspaceconnectionInfo.User = "******";
             * workspaceconnectionInfo.Password = "******";
             * workspace1.Open(workspaceconnectionInfo);*/
            workspace1.Open(gkfqd.Common.Tool.GetConnectionInfo());
            importDatasource = workspace1.Datasources[gkfqd.Common.Tool.GetWorkspaceDataDatasources()];
            dataImport       = new DataImport();

            try
            {
                dataImport.ImportSettings.Clear();
                ImportSettingSHP shpSetting = new ImportSettingSHP();
                shpSetting.ImportMode = ImportMode.Overwrite;
                string str = System.IO.Directory.GetCurrentDirectory();
                //复制选择文件到临时文件夹,目的是重命名文件,导入到数据库指定文件中
                String targetPath = str + "\\tempFolder\\temp_gkfqd.shp";
                shpSetting.SourceFilePath   = targetPath;
                shpSetting.TargetDatasource = importDatasource;
                dataImport.ImportSettings.Add(shpSetting);
                dataImport.Run();

                importResultShp           = importDatasource.Datasets["temp_gkfqd"] as DatasetVector;
                mapControl1.Map.Workspace = workspace1;
                mapControl1.Map.Layers.Clear();
                mapControl1.Map.Layers.Add(importResultShp, true);
                mapControl1.Map.ViewEntire();
                mapControl1.Map.Refresh();
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
                MessageBox.Show(ex.Message);
            }
            RefreshDataGridView();
        }