ArcGIS Server地理处理服务使用SDE的要素类

2
分享 2019-04-29

背景

地理信息数据很多情况下是比较敏感的,出于权限控制和保密性,不会将企业级地理数据库(SDE)的数据公开出来。在ArcGIS Enterprise发布成要素图层,可以实现很好的权限控制,Web Tool 也可以使用arcpy.SignInToPortal(url,usr,pwd)方法获得加密服务的访问权限,使用arcpy.FeatureSet(url)获得服务的要素图层直接进行分析。这个方法在文章为什么升级ArcGIS Enterprise到10.6版本中已经提到过了。
至于独立ArcGIS Server的地理处理服务应如何使用非公开的地理数据进行分析,甚至保密性更高一层,数据存在SDE里,不发服务。这应该怎么办呢?以下提供一个方案,让地理处理服务或web Tool直接使用sde中的地理数据进行分析。前端只需要传递一个要素类名称即可。

步骤

1、新建一个模型,编辑,在模型中新建一个String型变量,并设置它为输入参数P。


String变量


2、设置模型的环境变量,设置临时工作空间。然后将.sde文件拷贝到这个文件夹。


scratchworkspace

3、在模型中拖入需要的工具,并设置工具的输入要素为工作空间下的sde下的要素类的名称。对接String变量参数P


设置输入要素


4、不要忘了指定分析结果为输出参数。上图绿色部分也指定为P,然后保存模型。右键这个模型,参数选项卡,检查一下参数设置。


参数设置

5、注册sde,将.sde文件导入。为地理处理服务发布后的运行做准备。


注册sde

6、打开工具,输入参数为数据库中的要素类名,执行


执行GP工具

7、发布GP服务。在Results窗口,右键这个结果发布为GP服务。添加工具各参数的描述性信息。根据需求调整最大返回记录数。点击分析 和 发布


发布GP服务

8、在REST页测试执行。输入sde里的要素类完整名称。


Submit Job


9、查看结果。执行成功,可以得到要素。


job页


job Results页

结论

通过以上操作,实现了web端利用GP服务直接使用SDE里的要素类进行分析,无需将sde里的数据发布。释放了数据库里的要素类的价值。

文章来源:http://www.jianshu.com/p/8a344dce7a11

2 个评论

纯windows可用,10.8.1 linux别这么用环境变量-临时工作空间。而是用个绝对路径当做数据位置。
新建变量类型String,重命名为Path,设置为P,其值设置为路径。 调用时%Path%/sql113.sde/%String%

要回复文章请先登录注册