重要的事情说三遍:网上找的资料,网上找的资料,网上找的资料。 不知道原地址了,没法转载,只能设置为原创
以下案例以裁剪clip工具为例。
1. 输入要素数据源是.shp文件
1.1 ArcMap中建立模型
首先在ArcMap中建立模型,添加clip工具,右键clip工具选择“获取变量”->“从参数”,将工具中所有的参数全部添加。具体建模过程本文档不做介绍。如下图所示要素clip工具所需的3个参数:
根据需要设置模型参数。根据我的应用场景,我不会在GP服务中暴露数据源位置,但是用户可以指定要分析数据的名称。所以我在前期建模过程中采用常量+变量的形式,即具体路径是常量,要素名称为变量。(具体场景在GP访问段落会看到效果)。
1.2 发布GP服务
在发布GP服务之前,需首先运行模型,在catalog中双击model运行,然后在“地理处理”菜单中,选择“结果”,会弹出结果窗口,点击“当前窗口”,找到刚才运行成功的模型,右键“共享为”,完成GP服务的发布,如下图所示:
在发布GP服务时需注意一下几点:
- “Model”页下的参数描述,必须填写,如下图:
- 根据实际数据量,在“参数”页修改“服务器返回最大记录数”,如下图:
- 在“参数”页选择执行模式,有同步、异步两种,异步更容易查看错误日志。
全部配置好后,点击“分析”,“发布”,完成输入要素源为服务器指定位置的.shp文件的GP裁剪服务。
1.3 访问GP服务
浏览器rest访问页面截图如下:
桌面客户端访问页面截图如下:
2. 输入要素数据源是.sde文件
2.1 ArcMap中建立模型
其他步骤同1.1,唯一不同是“输入要素”由以前的.shp文件修改为.sde连接,sde下有数据集,数据集下有数据类,尝试过很多种方法,遇到过桌面模型运行没问题,一旦发布成GP服务,便读取不到sde里的要素类。最终,以下面的方式实现:
设置“输入要素”需设置3个标量,这3个变量分别用来记录.sde文件所在位置,.sde文件里的要素集名称,.sde要素集下的要素类名称。.sde的名称需明确列出(此处需敲黑板,尝试过很多中写法,只有这样可以)。如下图:
2.2 发布GP服务
同1.2.
2.3 访问GP服务
浏览器rest访问页面截图如下:
桌面客户端访问页面截图如下:
3. 裁剪要素为客户端本地文件
3.1 ArcMap中建立模型
步骤同1.1,不同的是裁剪要素允许使用者指定位置,所以在建立模型时,不指定参数的位置,将“裁剪要素”参数设置为“模型参数”即P。如下图所示:
3.2 发布GP服务
同1.2。
3.3 访问GP服务
浏览器rest访问页面截图如下图,因直接将“输入要素”设为P值,所以页面中显示json串显示。
此处也可以在模型中添加字符串变量以%%赋值给“输入要素”,这样在rest页面中可输入客户端地址:\\10.1.9.47\datas,需要共享客户端文件夹,且赋予该文件夹服务器arcgis用户的完全控制权限。理论上这样可以执行,但在实际操作中并没有成功,因为将客户端文件夹共享于服务器,添加共享文件夹的用户权限时,只能搜索客户端的用户,没法搜索服务器端的用户,如下图所示:
桌面客户端访问页面截图如下:裁剪要素可选择客户端本地文件。
4. 裁剪要素为服务器本地文件且以下拉列表供客户端选择
4.1 ArcMap中建立模型
步骤同1.1,区别在于建立模型时,事先将希望在下拉列表中显示的要素添加到ArcMap的内容列表中,然后将“裁剪要素”设P。如下图所示:
4.2 发布GP服务
步骤同1.2。
4.3 访问GP服务
浏览器rest访问未实现下拉列表形式,只默认选择下拉列表中的第一个要素。 如下图所示:
桌面客户端访问可以实现下拉列表形式,页面截图如下:
【附录】
欢迎大家关注我的收费课程《ArcGIS Pro 2.6和ArcGIS Enterprise学习》,共8小时,有理论有实操:https://edu.csdn.net/course/detail/31690
课程主要包含:
- ArcGIS Pro2.6学习
①GIS中的数据
②GIS中的坐标系
③企业级地理数据库(SDE)设置
④数据编辑及拓扑检查
⑤简单制图
⑥空间分析
2.ArcGIS Enterprise学习
①环境部署
②二三维服务发布(矢量切片、要素服务、地图切片、地形服务、三维服务等)
③使用及运维(详细介绍如何确定enterprise部署架构,简单介绍相应的运维工具)
3.开发体系梳理