c# 调用ArcEngine的GP工具

摘要:
IAoInitializem_AoInitialize=newAoInitialize类();esriLicenseStatusslicenseStatus=esriLicenceStatus。esriLicense不可用;licenseStatus=m_AoInitialize.Initialize(esriLicenseProductCode.esriLicensePro

           IAoInitializem_AoInitialize = newAoInitializeClass();

            esriLicenseStatuslicenseStatus = esriLicenseStatus.esriLicenseUnavailable;

            licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo);

            if (licenseStatus == esriLicenseStatus.esriLicenseCheckedOut)

            {

                GeoprocessortGp = newGeoprocessor();

                tGp.OverwriteOutput = true;

                licenseStatus = m_AoInitialize.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine,esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);

                licenseStatus = m_AoInitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);

                

                //LICenced arcengine 首先是把ASCII文件转换为Raster文件

                ESRI.ArcGIS.ConversionTools.ASCIIToRastertASC = newESRI.ArcGIS.ConversionTools.ASCIIToRaster();

                tASC.data_type = "FLOAT";

                tASC.in_ascii_file = pWorkSpacePath + @"a1.txt";

                tASC.out_raster = pWorkSpacePath + "a1.img";

                //ScrollToBottom("ASCIIToRaster");

                IGeoProcessorResulttGeoResult = (IGeoProcessorResult)tGp.Execute(tASC, null);

                if (tGeoResult.Status == ESRI.ArcGIS.esriSystem.esriJobStatus.esriJobSucceeded)

                {

                    // 然后把转好的Raster文件重新分类

                    ESRI.ArcGIS.SpatialAnalystTools.ReclassifytReclass = newESRI.ArcGIS.SpatialAnalystTools.Reclassify();

                    tReclass.in_raster = pWorkSpacePath + "a1.img";

                    tReclass.missing_values = "NODATA";

                    tReclass.out_raster = pWorkSpacePath + @"Out3.img";

                    tReclass.reclass_field = "VALUE";

                    tReclass.remap = "0 958 10;958 988 20;988 990 30;990 1000 40;1000 1100 50";

                   // ScrollToBottom("Reclassify");

                    tGeoResult = (IGeoProcessorResult)tGp.Execute(tReclass, null);

                    if (tGeoResult.Status == ESRI.ArcGIS.esriSystem.esriJobStatus.esriJobSucceeded)

                    {

                        // 把分类好的Raster文件转换为矢量文件

                        ESRI.ArcGIS.ConversionTools.RasterToPolygontRTP = newESRI.ArcGIS.ConversionTools.RasterToPolygon();

                        tRTP.in_raster = pWorkSpacePath + "Out3.img";

                        tRTP.out_polygon_features = pWorkSpacePath + "a2_shp.shp";

                        tRTP.raster_field = "VALUE";

                        tRTP.simplify = "SIMPLIFY";

                        //ScrollToBottom("RasterToPolygon");

                        tGeoResult = (IGeoProcessorResult)tGp.Execute(tRTP, null);

                        if (tGeoResult.Status == ESRI.ArcGIS.esriSystem.esriJobStatus.esriJobSucceeded)

                        {

                            licenseStatus = m_AoInitialize.CheckInExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);

                            {

                // 把生成的矢量文件进行平滑处理

                                ESRI.ArcGIS.DataManagementTools.SmoothPolygontSP = newESRI.ArcGIS.DataManagementTools.SmoothPolygon();

                                tSP.algorithm = "PAEK";

                                tSP.in_features = pWorkSpacePath + "a2_shp.shp";

                                tSP.out_feature_class = pWorkSpacePath + "a2_shp_smooth.shp";

                                tSP.tolerance = "2";

                                tSP.endpoint_option = "FIXED_ENDPOINT";

                                tSP.error_option = "FLAG_ERRORS";

                                ScrollToBottom("SmoothPolygon");

                                tGeoResult = (IGeoProcessorResult)tGp.Execute(tSP, null);

                            }

                        }

                    }

                }

                // arcengine liencesd 当使用高版本的liencesd在使用中,如果需要低版本的liencesd,需要动态签出liencesd,不然将不会执行成功!

               // writeMessage(tGp);

            }

           

            MessageBox.Show("ok");

免责声明:文章转载自《c# 调用ArcEngine的GP工具》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇gvisor virtual filesystem.JavaScript实现简单进度条下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

gp 服务的发布与javascript调用

最近在学习ArcGIS 10.1 for Server 相关的知识,其中的一个必然掌握的知识点,就是服务的发布与使用。在ArcGIS Server 10.1 支持多种服务,包括:地图服务,影像服务等,而gp服务是日常使用最为广泛的服务。 扩展阅读:Esri的server的官方帮助中的服务类型的内容 http://resources.arcgis.com/z...

基于ArcGIS API for Javascript的地图编辑工具

转自:http://www.cnblogs.com/znlgis/p/3505646.html 最近工作上需要用ArcGIS API for Javascript来开发一个浏览器上使用的地图编辑工具,分享一下一些相关的开发经验。 我开发的地图编辑工具是根据ESRI提供的例子修改而来的,参考的例子是https://developers.arcgis.com/...

ArcGIS使用Python脚本进行地理处理

文章目录 ArcPy的类 ArcPy的执行 ArcPy权限检查 ArcPy获取空间数据信息 ArcPy中游标,SQL ArcPy操作几何要素 ArcPy操作栅格数据集 Python是ArcGIS内置的脚本处理函数,可进行地图分析,数据处理,制图等功能。脚本与我们熟悉的ModelBuilder或是ArcToolbox功能很类似,但是不同的地方有:...

ArcGIS切片技巧及注意事项二之MXD文档与切片相关配置

MXD文档与缓存相关配置 在arcmap打开test服务对应的地图文档test.mxd。 1) - 地图单位的设置 右键点击左侧图层列表的根“图层”(Layers),选择“属性”->选这“常规选项卡”。如下图所示,在单位位置,两个都选择“米”(Meter),设置完点确定 2)- 设置地图的默认范围 右键点击左侧图层列表的根“图层”(Layers),...

ArcGIS for Android地图控件的5大常见操作

目录 获取/设置比例尺、分辨率、中心点、范围 关于地图显示不出来的问题 平移 缩放至指定的分辨率/比例尺和连续放大n倍 设置地图最大最小缩放级别 旋转地图 其它常用方法 手势操作 关于地图显示不出来的问题 其他常用方法 GIS的开发中,什么时候都少不了地图操作。ArcGIS for Android中,地图组件就是MapView,MapVie...

对于 using ESRI.ArcGIS.Carto; 的引用。是否缺少 using 指令或程序集引用

未能找到类型或命名空间名称“IFeatureLayer”(是否缺少 using 指令或程序集引用?) 未能找到类型或命名空间名称“ILayer”(是否缺少 using 指令或程序集引用?) 未能找到类型或命名空间名称“FeatureLayer”(是否缺少 using 指令或程序集引用?) 需要在开头 添加引用 using ESRI.ArcGIS.Carto...