/// <summary>
        /// 追加要素
        /// </summary>
        /// <param name="inputFC"></param>
        /// <param name="outputFC"></param>
        /// <param name="fieldPair"></param>
        /// <param name="msgLog"></param>
        /// <returns></returns>
        public static bool GPAppend(ESRI.ArcGIS.Geodatabase.IFeatureClass inputFC, ESRI.ArcGIS.Geodatabase.IFeatureClass outputFC, string fieldPair, out string msgLog)
        {
            msgLog = string.Empty;

            try
            {
                ESRI.ArcGIS.DataManagementTools.Append pAppend = new ESRI.ArcGIS.DataManagementTools.Append();
                gp.OverwriteOutput    = false;
                pAppend.inputs        = inputFC;
                pAppend.target        = outputFC;
                pAppend.schema_type   = "NO_TEST";
                pAppend.field_mapping = GetGPFieldMapping(inputFC, outputFC, fieldPair);
                gp.Execute(pAppend, null);
                if (!ReturnErrMessage(gp, ref msgLog))
                {
                    return(false);
                }
            }
            catch (Exception)
            {
                ReturnErrMessage(gp, ref msgLog);
                return(false);
            }

            msgLog = "";
            return(true);
        }
예제 #2
0
파일: GAppend.cs 프로젝트: truonghinh/TnX
        public void Excute(object inputFeatureClass, object targetFeatureClass)
        {
            try
            {
                Geoprocessor gp = new Geoprocessor();
                ESRI.ArcGIS.DataManagementTools.Append appendTool = new ESRI.ArcGIS.DataManagementTools.Append();
                //IVariantArray param = new VarArrayClass();
                gp.SetEnvironmentValue("workspace", this._environment);
                appendTool.inputs = inputFeatureClass;
                appendTool.target = targetFeatureClass;
                //appendTool.out_feature_class = string.Format("{0}{1}", this._temFullPath, out_feature);//"C:\\tayninh\\temp\\tempmdb.mdb\\" + out_feature;

                runTool(gp, appendTool, null);
            }
            catch (Exception err) { MessageBox.Show("loi append: " + err.ToString()); }
        }
예제 #3
0
        /// <summary>
        /// SHP合并append
        /// </summary>
        /// <param name="sSHPPath"></param>
        /// <param name="sOutPutFolder"></param>
        public static void DoSHPAppend(string sSHPPath, string sOutPutFolder)
        {
            RichTextBox rtb = Application.OpenForms["FrmSHPAppend"].Controls["richTxt_message"] as RichTextBox;
            rtb.Text = "正在处理中,请稍候……\n";
            //frm.richTxt_message.AppendText("开始处理……");
            //获取所有KML文件
            List<string> list = FileManage.getAllFileNameFromFolder(sSHPPath, ".shp");

            int nInput = list.Count;
            string sInputSHPs="";

            for (int i = 1; i < nInput-1; i++)
            {
                sInputSHPs += list[i] + ";";
            }

            //初始化地理处理类
            Geoprocessor gp = new Geoprocessor();
            //设置可覆盖
            gp.OverwriteOutput = true;
            rtb.AppendText("\n开始合并……\n");
            ESRI.ArcGIS.DataManagementTools.Append append = new ESRI.ArcGIS.DataManagementTools.Append();
            append.inputs = sInputSHPs;
            append.target = list[0];
            append.schema_type = "TEST";
            RunTool(gp,append,null);

            rtb.AppendText("完成……\n");
            rtb.AppendText("合并后的数据名称为输出文件夹第一个SHP文件即:"+Path.GetFileName(list[0]));

            #region 删除除合并后的SHP之外的其他SHP,此处需要用SHP文件命名空间要素删除来执行,因为一个SHP文件由6个文件构成
            //List<string> deleteList = new List<string>();

            ////重新构建list,不包括合并后的SHP
            //foreach (var item in list)
            //{
            //    if (!item.Equals(list[0]))
            //    {
            //        deleteList.Add(item);
            //    }
            //}
            ////文件删除
            //FileManage.DeteleFiles(deleteList);

            #endregion
        }