2

我编写了一个 python 脚本来地理处理 ArcGIS 数据,并将 python 代码中的工作空间、输入和输出参数设置为:

env.workspace = arcpy.GetParameterAsText(0)
# input feature class 
inFeatures = arcpy.GetParameterAsText(1)
# output feature class
Transect_featureclass = arcpy.GetParameterAsText(2)

由于我是在 Visual Studio 2010 中使用 c# 的 ArcObjects 新手,因此我尝试使用 ArcMap 插件将按钮添加到 ArcMap 桌面。但我不知道如何从 c# 调用这个 python 脚本,并得到类似文本框弹出窗口并询问有关输入和输出参数路径的信息。由于我直接调用了python,因此它不适GetParameterAsText用于python代码中的命令。

如果有人可以帮助解决此案,我将不胜感激。提前致谢。

4

3 回答 3

1

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 页面上详细记录,但有时很难找到 ;-)

于 2012-04-15T11:12:02.650 回答
1

ArcPy 不支持IronPython,它给出错误“无法加载库 arcgisscripting”。我认为问题在于IronPython 不支持其中包含 arcgisscripting 的 pyd 文件。

ESRI 提供以下示例以在 .net 中利用 ArcPy

于 2012-11-06T11:29:58.400 回答
0

找到了几个选项:

  1. 使用IronPython库直接从 C# 代码加载 Python 脚本和调用方法。很好的文章,其中包含示例代码和此处找到的每个步骤的详细说明。

    或者

  2. 使用Process.Start()使用 Python 可执行文件执行脚本

首选方法是选项 1。它似乎是一个更“完整”的解决方案,允许直接从 C# 调用 Python 脚本方法,同时还允许出现异常。使用选项 2,您完全依赖单独的 Python 进程进行错误处理和记录。

我犹豫是否提供选项 2,但如果您无法让arcpy模块与 IronPython 很好地配合使用,则可能需要它。

于 2012-03-28T18:31:13.210 回答