ESRI GPDataFile作为GP Toolbox的输入参数

问题描述 投票:2回答:1

我正在使用一个PHP脚本POST到一个GPService工具箱(用python编写),第一个参数应该是一个GPDataFile。从文档中,我看起来可以将此参数的值设置为json格式的字符串文字{“url”,“http://localhost/export/1234567890.kml”},并且arcpy.GetParameter(0)应该正确处理此对象。

不幸的是我收到一个错误,说'请检查你的参数',工具箱上有两个其他参数但它们只是字符串并且工作正常。我在ArcGIS 10.0中工作。

这种交互的总体目标是从我们的SWF / ActionScript向PHP发送一个KML文件,它将KML保存到我们的数据库,然后将其发送到GPService,将其转换为GDB,然后转换为存储的各个shapefile对象。在数据库中用于渲染回SWF / Actionscript。

我们非常感谢有关如何让Toolbox接受JSON结构的任何帮助,我希望避免将KML内容作为字符串对象发送到工具箱。

geospatial arcgis esri arcmap arcgis-server
1个回答
0
投票

答案可以是maniksundaram在ESRI论坛(https://community.esri.com/thread/107738)中写的:

ArcGIS服务器不支持直接GPDataFile上传。您必须使用上传任务上传文件,并为GP服务提供项目ID。

以下是让它适用于需要文件上传的任何GP服务的高级想法,

- 使用上传选项发布地理处理服务

参考:ArcGIS帮助(10.2,10.2.1和10.2.2)

允许的操作:上载:此功能控制客户端是否可以将文件上载到GIS服务器,地理处理服务中的任务最终将使用该文件。上载操作主要由需要一种方法将文件发送到服务器进行处理的Web客户端使用。上载操作在上载完成后返回文件的唯一ID,Web应用程序可将其传递给地理处理服务。您可能需要修改最大文件大小和超时,具体取决于您希望服务器接受的上载量。检查ArcGIS Server计算机上安装的本地REST SDK文档,以获取有关将上载文件与地理处理服务一起使用的信息。默认情况下,此选项处于关闭状允许上传到您的服务可能会带来安全风险。只有在需要时才打开它。

- 使用地理处理服务中生成的上传URL上传文件。它将为您提供上传文件的itemID作为响应。

      http://<servername>:6080/arcgis/rest/services/GP/ConvertKMLToLayer/GPServer/uploads/upload

回应Json:

{ “成功”:真正的 “项目”:{ “项目Id”: “ie84b9b8a-5007-4337-8b6f-2477c79cde58”, “ITEMNAME”: “SStation.csv”, “说明”:空, “日期”:1409942441508, “承诺”:真正}}

- 使用项目ID作为GPDataFile输入来调用地理处理服务,

 For Ex: KMLInput value would be  {"itemID":"ie84b9b8a-5007-4337-8b6f-2477c79cde58"}

- 如果您已在地图服务中配置了GP结果,则结果将添加到具有作业ID的地图服务中。或者您可以在返回时阅读响应。

© www.soinside.com 2019 - 2024. All rights reserved.