我已经编写了一个python脚本来处理ArcGIS数据,并在python代码中设置工作区、输入和输出参数如下:
env.workspace = arcpy.GetParameterAsText(0)
# input feature class
inFeatures = arcpy.GetParameterAsText(1)
# output feature class
Transect_featureclass = arcpy.GetParameterAsText(2)
由于我不熟悉在VisualStudio2010中使用c#的ArcObjects,所以我尝试使用ArcMap插件将按钮添加到ArcMap桌面。但是我不知道如何从c#调用这个python脚本,然后获得类似文本框弹出窗口的内容,并询问有关输入和输出参数路径的信息。因为我直接调用python,所以它不能与python代码中的GetParameterAsText
命令一起工作。在
如果有人能帮上忙,我非常感激。提前谢谢。在
ArcPy不支持IronPython,它给出错误“cannot load library arcgisscripting”。我相信问题是IronPython does not support pyd files其中包含了arcgisscripting。在
ESRI为leveraging ArcPy in .net提供以下示例
找到了几个选择:
使用IronPython库加载Python脚本并直接从C代码调用方法。这篇文章很好,包含示例代码和找到的每个步骤的详细说明here。在
或
使用Process.Start()使用Python可执行文件执行脚本
首选方法为方案1。它似乎是一个更“完整”的解决方案,它允许Python脚本方法直接从C#调用,同时也允许异常冒泡。对于选项2,您完全依赖于用于错误处理和日志记录的单独的Python进程。在
我犹豫是否提供选项2,但是如果您不能让
arcpy
模块很好地使用IronPython,那么它可能是必需的。在在Esri页面的.NET开发人员帮助中有一个示例: http://help.arcgis.com/en/sdk/10.0/arcobjects_net/conceptualhelp/index.html#/Walkthrough_Consuming_a_geoprocessing_model_tool_in_NET/0001000001sw000000/
通过它,您应该已经学会了如何从ArcMap调用地理处理工具。你必须做一个包含python脚本的工具箱。这可以用.NET代码调用(请参阅演练)。在
Esri的基本内容有时很难找到;)
相关问题 更多 >
编程相关推荐