ArcGIS Runtime SDK for .NET 100.0中如何执行.gpk(一)
ArcGIS Runtime 100.0 SDKs 于2016年11月发布,是ArcGIS Runtime采用全新架构下的第一个商业版本,新架构下的Runtime采用了统一的API,方便用户使用的同时也使得跨平台开发更加容易。而Local Server(只存在于Runtime for .NET的WPF端、Runtime for Java以及Runtime for Qt中,需要单独安装)是桌面端所特有的模块,我们访问、编辑本地mpk(map package),执行本地gpk(geoprocessing package)都依赖于它。最近遇到不少做过Engine开发的用户询问ArcGIS Runtime中执行GP工具的问题,比如Runtime中是否也和Engine一样使用Geoprocessor.Execute执行GP?其参数是否也是用要素类的绝对路径方式输入?答案是不一样,Runtime中执行GP工具要复杂的多,首先需要将GP或model打包成gpk;其次,参数也不像Engine那样直接使用要素类的绝对路径就行。鉴于网上关于这一块的资料少之又少,而Runtime的官方帮助中仅提供了执行在线GP Service的示例,因此,本文主要介绍下Runtime中如何执行本地的gpk,主要包括Desktop中创建gpk的流程以及ArcGIS Runtime SDK for .NET 100.0中执行gpk的方法及遇到的问题。鉴于篇幅比较长(其实是图比较多~),本文主要介绍下Desktop中创建gpk的流程以及Runtime程序的搭建,后面一篇文章中重点介绍下ArcGIS Runtime SDK for .NET 100.0中执行gpk的方法以及遇到的问题。
本文以3D Analyst工具箱中的Interpolate Shape工具为例,根据DEM影像为一条2D线内插出Z值。该工具的用法参考:工具帮助
一、 Desktop中生成.gpk
由于自定义脚本工具更容易控制输入输出的参数及其数据类型,因此我们不直接调用Interpolate Shape工具而是自定义脚本工具。
1,创建脚本工具之前需要先新建一个InterpolateShape.py文件,文件中调用InterpolateShape_3d工具并且暴露出三个参数:输入的线要素、输入的栅格数据以及输出的线要素,内容如下:
import arcpy, mathinputLine = arcpy.GetParameterAsText(0)
inputRaster = arcpy.GetParameterAsText(1)
outputLine = arcpy.GetParameterAsText(2)
rlt = arcpy.InterpolateShape_3d(inputRaster,inputLine,outputLine)
2,在ArcMap中添加脚本工具,右键.tbx选择Add->Script。
在弹出界面中输入脚本工具的Name,Label等信息,点击下一步指定该InterpolateShape.py文件所在的位置。再下一步是参数的设置(很重要),需要设置输入输出参数的Display Name以及Data Type,这里我们暴露出三个参数,第一个参数是inputLine,也就是输入的线要素,指定类型是Feature Set(这点很重要,如果类型是Feature Class,Runtime中是无法调用的),需要为该Feature Set选择一个Schema,这里可以事先新建一个与该栅格数据具有相同空间参考的线要素类;第二个参数是inputRaster,即输入的Surface表面,这里使用.tif格式的DEM数据,类型是Raster Dataset;第三个参数是输出的要素类,类型是Feature Class,点击完成即可,界面如下:
3,在ArcMap中执行该脚本工具,首先在ArcMap中添加该DEM栅格影像(以便定位),然后打开该脚本工具,输入inputLine为在Map上进行人机交互所画的线,输入的Raster为tif格式的本地DEM数据,点击确定,如下图:
4,生成.gpk。执行该脚本工具成功后,在Results界面选中刚刚执行成功的工具右键选择Share As->Geoprocessing Package。
tips:如果您的界面中没有这一选项,那么需要在ArcMap的菜单项Customize -> ArcMap Options -> Sharing选项卡 -> 勾选Enable ArcGIS Runtime Tools。
在弹出界面中指定输出.gpk的路径并且勾选Support ArcGIS Runtime复选框,如下图:
参数界面中输入参数inputLine的Input mode选择User defined value,即用户指定输入:
输入参数inputRaster选择Constant value,也就是采用默认参数,无需代码中指定。outputLine参数保持默认即可。
最后进行Share,Share之前建议先执行Analyze,这时会提示下面的错误:
我们按照提示添加Tags和Summary,点击确定即可发布成功。
二、 ArcGIS Runtime for .NET 100.0中执行.gpk
首先安装软件,需要安装ArcGIS_Runtime_SDK_DotNet_100_0_0.vsix和ArcGIS_Runtime_Local_Server_SDK_100_0_0.exe,注意Local Server 是可选的,如果不需要加载本地mpk和执行gpk,是不需要安装的(10.2.X版本中是必装的),还要注意查看下机器环境是否符合ArcGIS Runtime 100.0的系统需求。
安装完软件后就可以搭建工程了,创建模版工程,在VS的File ->New Project 界面左侧选择Classic Desktop,右侧选择ArcGIS Runtime Application (WPF),如下图:
然后右键References选择Manage NuGet Packages,弹出界面中点击Restore来修复引用,如下图:
由于执行gpk必须用到Local Server,因此需要在工程中添加LocalServices引用:
这时程序就可以直接运行成功了,如下图:
准备工作做好了,接下来就可以编写代码了。这一部分将在下一篇文章中介绍,敬请期待…
ArcGIS Runtime SDK for .NET 100.0中如何执行.gpk(一)相关推荐
- ArcGIS Runtime SDK for .NET 100.0中如何执行.gpk(二)
接上文,在编写代码之前我们先回忆一下ArcMap中执行该脚本工具的过程,首先我把一个Dem影像添加进来,然后我在该影像范围内使用人机交互的方式画了一条线,那么我们在Runtime中也可以采用该思路:即 ...
- ArcGIS Runtime SDK for Android 100使用比例尺、指北针、书签
需求: 如何在ArcGIS Runtime SDK for Android 100.x中实现比例尺.指北针.书签等功能 效果图: 例如:比例尺和指北针效果 实现思路: 使用arcgis-runtime ...
- ArcGIS Runtime SDK for .Net 100.6 如何加载本地数据
由于ArcGIS Engine的32位.部署繁重.不适应新一代Web GIS的发展等缺点,Esri推出了ArcGIS Runtime产品,该产品因其64位.部署轻便.跨平台.更好地适应新一代Web G ...
- element 点击控制expend的显示隐藏_四、ArcGIS Runtime SDK for iOS 100.X教程系列之图层控制显示隐藏...
一个图层服务上多个图层时,结合服务的链接地址访问查看详细信息进行代码编写会更方便,形如以下这个arcgis服务: http://arcgis.wuhanrt.cn:6080/arcgis/rest/s ...
- 基于Arcgis Runtime SDK 100.x 的Android GIS开发之基础配置
原始文档地址下载:传送门(密码:3jfu) API reference:传送门 本篇博客基于Android Studio, Arcgis Runtime 100.5.0, 截止博客发布时均为最新版本, ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(15)、要素绘制Drawtools3.0工具DEMO
1.前言 移动GIS项目开发中点线面的要素绘制及编辑是最常用的操作,在ArcGIS Runtime SDK for iOS 自带AGSSketchLayer类可以帮助用户快速实现要素的绘制,图形编辑. ...
- 《ArcGIS Runtime SDK for Android开发笔记》——(3)、ArcGIS Runtime SDK概述
1.前言 ArcGIS Runtime SDK是一整套用于构建原生及跨平台的地图应用程序的开发包,包括移动设备的Android.iOS.Windows Phone,针对桌面的.Net.Java.OSX ...
- ArcGIS Runtime SDK for Windows Phone 入门教程
ArcGIS Runtime SDK for Windows Phone 入门教程 基本概念 Windows Phone平台介绍 Windows Phone是微软发布的一款手机操作系统,它将微软旗下的 ...
- arcgis runtime sdk java部署和踩到的坑
环境:JKD11,arcgis-runtime-sdk-java-100.13.0 pom文件中配置如下:(另外还需要引用javafx的依赖,请自行百度) <dependency>< ...
最新文章
- makefile经验笔记
- 7种进阶方法让你快速测试端口连通性
- 斐波那契数列不用数组_兔子数列——斐波那契数列
- URL.createObjectURL图片预览
- 不提交怎么获取input中的值并存储_快速读懂innodb存储引擎
- Linux操作系统 (二)下载以及安装
- 大众点评字体_【网络爬虫实战】解决大众点评搜索页面字体加密
- python画点位变化向量图
- 特征点法光流法直接法
- Linux批量追加文件名后缀
- 手机离线地图——基于OruxMaps离线高清卫星地图制作发布
- STM32配合火焰传感器的火灾报警
- 【android】简易的登陆界面的xml设计——代码复用,节省时间
- 【图灵学院02】大型互联网技术之数据库分库分表
- 迅为iTOP-i.MX6ULL开发板I2C驱动程序实现 I2C通信
- hdu 6119(区间重合处理)(尺取
- 【20230416】
- python 静态网站生成_使用Django模板系统或静态站点生成器生成HTML文件?
- 动态磁盘恢复为基本磁盘--DiskGenius
- 火影忍者ol HTML5,火影忍者ol十大实用忍者属性和标签盘点