GP工具注意事项有哪些?
发起人
相关问题
- Engine许可使用注意事项
- arcgis api for javascript 4.0版本中找不到draw工具,如何实现拉框查询、几何查询?
- 求ArcGISMXD批量导出图片工具?
- 请问如何在C# ArcEngine开发中调用GP工具处理后将数据保存到到任意位置?并读取?
- Engine调用GP工具的两种方式的用法
- 请问在ArcGIS 10.1 Desktop中,用计算字段工具对地理坐标系(经纬度)数据计算面积,算出的面积是什么面积?这个面积是怎么计算出来的?
- 为什么自定义的gp工具不自动将输出结果添加到图层里面?
- ArcGIS API for Js GP工具不能用,问题中附有代码,请大佬指导。
- Engine调用gp工具MultipleRingBuffer报“对 COM 组件的调用返回了错误 HRESULT E_FAIL”错误?
- 运行create Map Server Cache工具后,未创建任何切片
- ArcGIS for Server产品版本迁移注意事项
问题状态
- 最新活动: 2019-11-07 22:37
- 浏览: 2088
- 关注: 1 人
1 个回复
koococo
赞同来自:
直接上代码吧,先贴代码再解释。
裁剪功能:
Geoprocessor GP = new Geoprocessor();
GP.OverwriteOutput = true;
//进行裁剪运算
ESRI.ArcGIS.AnalysisTools.Clip SClip = new ESRI.ArcGIS.AnalysisTools.Clip();
SClip.clip_features = this.clipFile;
SClip.in_features = layer;
SClip.out_feature_class = this.m_outputFile;
SClip.cluster_tolerance = "#";
GP.Execute(SClip, null);
shp转gdb:
IWorkspaceFactory workspaceFactory = new FileGDBWorkspaceFactoryClass();
IWorkspaceName workspaceName = workspaceFactory.Create(System.IO.Path.GetDirectoryName(_str2), System.IO.Path.GetFileName(_str2), null, 0);
IName name = (IName)workspaceName;
IWorkspace fGDB_Wor = (IWorkspace)name.Open();
Geoprocessor GP = new Geoprocessor();
ESRI.ArcGIS.ConversionTools.FeatureClassToGeodatabase tool = new ESRI.ArcGIS.ConversionTools.FeatureClassToGeodatabase();
tool.Input_Features = _str;
tool.Output_Geodatabase = _str2;
GP.Execute(tool, null);
shp/gdb/mdb导入sde:
Geoprocessor GP = new Geoprocessor();
ESRI.ArcGIS.ConversionTools.FeatureClassToGeodatabase tool = new ESRI.ArcGIS.ConversionTools.FeatureClassToGeodatabase();
tool.Input_Features = pathname;
tool.Output_Geodatabase =Application.StartupPath + "\\intostore.sde";
IGeoProcessorResult result = (IGeoProcessorResult)GP.Execute(tool, null);
重点来啦,总结:
GP工具其实难点在input和output的路径,GP工具对路径的要求非常严格。再进行GP工具调用实现功能的时候,它会首先会对数据进行检查。那咱们接下来就具体讲讲GP工具输入路径与输出路径的格式
首先GP工具最好是绝对路径,比如in_Feature可以featurelayer但是不是很稳定有时候会转换失败。最好选择绝对路径。值得注意的是如果你想将gdb中的一个要素导入sde地理数据库中,那么这两个路径该如何写呢?这个问题应该是gp工具中第二难得。
写法如下:
input:
output:
第二个难点是:
GP工具批量导入地理数据库,AE如何实现?
有的同学说可以for循环调用GP工具,其实有坑的。因为for循环每次都要打开output地理数据库,造成内存泄漏。所以这里咱们采用得是GP工具直接封装好的批量入库方法。但是input路径是非常有讲究得。我研究了好长时间才搞出来,在这里也和大家分享下,写法如下:
path;path;path;
再具体写,咱们这里可以将入库得数据推到一个数组里中间拿;分割开,然后放到input——feature里面即可。
下篇文章咱们讲sde里面得一些坑。
我深刻明白,一个人得力量是有限的。相互分享,大家会收益翻倍,何乐而不为?
谢谢大家,码字不易,希望大家多多支持!
原文链接:https://www.jianshu.com/p/f5da0a790bc0
要回复问题请先登录或注册