zoukankan      html  css  js  c++  java
  • arcgis engine create featureclass , gp工具

                var mdbTemp = this.txtSavePath.Text;
                var temp_wsp = Acropolis.Library.ArcObjects.WorkspaceUtility.CreateAccessWorkspace(mdbTemp);
                if (temp_wsp == null)
                {
                    throw new Exception("创建临时结果文件失败");
                }
                //
                IGeoProcessorResult result = null;
                foreach (var input in this.m_SelectedLayers)
                {
                    var GP = new Geoprocessor();
                    var pCreator = new ESRI.ArcGIS.DataManagementTools.CreateFeatureclass();
                    try
                    {
                        var shp = input.Obj.DataSourceType == "Shapefile 要素类" || input.Obj.DataSourceType == "Shapefile Feature Class" ? ".shp" : "";
                        var f1 = input.Obj.FeatureClass.FeatureDataset == null ?
                            (input.Obj.FeatureClass as IDataset).Workspace.PathName + "\" + (input.Obj.FeatureClass as IDataset).Name + shp :
                            input.Obj.FeatureClass.FeatureDataset.Workspace.PathName + "\" + input.Obj.FeatureClass.FeatureDataset.Name + "\" + (input.Obj.FeatureClass as IDataset).Name;
    
                        var geotype = "";
                        switch(input.Obj.FeatureClass.ShapeType)
                        {
                            case esriGeometryType.esriGeometryPoint: geotype = "POINT"; break;
                                case esriGeometryType.esriGeometryPolygon: geotype = "POLYGON"; break;
                                case esriGeometryType.esriGeometryPolyline: geotype = "POLYLINE"; break;
                        }
                        pCreator.template = f1;
                        pCreator.out_name = input.LayerName;
                        pCreator.geometry_type = geotype;
                        pCreator.out_path = temp_wsp;
    
                        GP.OverwriteOutput = true;
                        GP.TemporaryMapLayers = false;
                        result = (IGeoProcessorResult)GP.Execute(pCreator, null);
                        object sev = 2;
                        string messages = GP.GetMessages(ref sev);
                    }
                    catch
                    {
                        string str = ReturnMessages(GP);
                        MessageBox.Show("分析失败。" + Environment.NewLine + str);
                    }
                    finally
                    {
                        pCreator = null;
                        result = null;
                        GP = null;
                        GC.Collect();
                        GC.WaitForFullGCComplete();
                    }
                }
    
    
            private static string ReturnMessages(Geoprocessor gp)
            {
                string ms = "";
                if (gp.MessageCount > 0)
                {
                    for (int Count = 0; Count <= gp.MessageCount - 1; Count++)
                    {
                        ms += "$" + gp.GetMessage(Count) + "
    
    ";
                    }
                }
                if (ms.Contains("Succeeded") || ms.Contains("成功"))
                {
                    return "";
                }
                return ms;
            }
  • 相关阅读:
    CSS样式—绝对定位(absolute)与相对定位(relative)的区别(图示)
    firefox与IE透明度(opacity)设置区别
    nopCommerce学习之架构(三)
    nopCommerce学习之程序包(四)
    Hadoop 部署
    nopCommerce学习之汉化(二)
    PetShop 首页
    nopCommerce学习之安装配置(一)
    C# 中ToString()的用法
    对象的当前状态使该操作无效
  • 原文地址:https://www.cnblogs.com/yansc/p/14077040.html
Copyright © 2011-2022 走看看