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(一)相关推荐

  1. ArcGIS Runtime SDK for .NET 100.0中如何执行.gpk(二)

    接上文,在编写代码之前我们先回忆一下ArcMap中执行该脚本工具的过程,首先我把一个Dem影像添加进来,然后我在该影像范围内使用人机交互的方式画了一条线,那么我们在Runtime中也可以采用该思路:即 ...

  2. ArcGIS Runtime SDK for Android 100使用比例尺、指北针、书签

    需求: 如何在ArcGIS Runtime SDK for Android 100.x中实现比例尺.指北针.书签等功能 效果图: 例如:比例尺和指北针效果 实现思路: 使用arcgis-runtime ...

  3. ArcGIS Runtime SDK for .Net 100.6 如何加载本地数据

    由于ArcGIS Engine的32位.部署繁重.不适应新一代Web GIS的发展等缺点,Esri推出了ArcGIS Runtime产品,该产品因其64位.部署轻便.跨平台.更好地适应新一代Web G ...

  4. element 点击控制expend的显示隐藏_四、ArcGIS Runtime SDK for iOS 100.X教程系列之图层控制显示隐藏...

    一个图层服务上多个图层时,结合服务的链接地址访问查看详细信息进行代码编写会更方便,形如以下这个arcgis服务: http://arcgis.wuhanrt.cn:6080/arcgis/rest/s ...

  5. 基于Arcgis Runtime SDK 100.x 的Android GIS开发之基础配置

    原始文档地址下载:传送门(密码:3jfu) API reference:传送门 本篇博客基于Android Studio, Arcgis Runtime 100.5.0, 截止博客发布时均为最新版本, ...

  6. 《ArcGIS Runtime SDK for Android开发笔记》——(15)、要素绘制Drawtools3.0工具DEMO

    1.前言 移动GIS项目开发中点线面的要素绘制及编辑是最常用的操作,在ArcGIS Runtime SDK for iOS 自带AGSSketchLayer类可以帮助用户快速实现要素的绘制,图形编辑. ...

  7. 《ArcGIS Runtime SDK for Android开发笔记》——(3)、ArcGIS Runtime SDK概述

    1.前言 ArcGIS Runtime SDK是一整套用于构建原生及跨平台的地图应用程序的开发包,包括移动设备的Android.iOS.Windows Phone,针对桌面的.Net.Java.OSX ...

  8. ArcGIS Runtime SDK for Windows Phone 入门教程

    ArcGIS Runtime SDK for Windows Phone 入门教程 基本概念 Windows Phone平台介绍 Windows Phone是微软发布的一款手机操作系统,它将微软旗下的 ...

  9. arcgis runtime sdk java部署和踩到的坑

    环境:JKD11,arcgis-runtime-sdk-java-100.13.0 pom文件中配置如下:(另外还需要引用javafx的依赖,请自行百度) <dependency>< ...

最新文章

  1. makefile经验笔记
  2. 7种进阶方法让你快速测试端口连通性
  3. 斐波那契数列不用数组_兔子数列——斐波那契数列
  4. URL.createObjectURL图片预览
  5. 不提交怎么获取input中的值并存储_快速读懂innodb存储引擎
  6. Linux操作系统 (二)下载以及安装
  7. 大众点评字体_【网络爬虫实战】解决大众点评搜索页面字体加密
  8. python画点位变化向量图
  9. 特征点法光流法直接法
  10. Linux批量追加文件名后缀
  11. 手机离线地图——基于OruxMaps离线高清卫星地图制作发布
  12. STM32配合火焰传感器的火灾报警
  13. 【android】简易的登陆界面的xml设计——代码复用,节省时间
  14. 【图灵学院02】大型互联网技术之数据库分库分表
  15. 迅为iTOP-i.MX6ULL开发板I2C驱动程序实现 I2C通信
  16. hdu 6119(区间重合处理)(尺取
  17. 【20230416】
  18. python 静态网站生成_使用Django模板系统或静态站点生成器生成HTML文件?
  19. 动态磁盘恢复为基本磁盘--DiskGenius
  20. 火影忍者ol HTML5,火影忍者ol十大实用忍者属性和标签盘点

热门文章

  1. B-实时测评系统算分
  2. Python实现“鸟脸识别”系统,看看什么鸟最贪吃~ 初学者也能学会
  3. iPad开发基础知识
  4. PyQt5随笔:PyQt5 官方网站文档、一些基础教程网站和书籍推荐
  5. 万顿思电商:亚马逊listing没有自然流量词怎么办?
  6. 德卡t10社保卡类型_德卡T10读卡器 读取身份证号码和身份证UID
  7. 高斯脉冲流绘制(python)
  8. 不到30行代码获取额温计测温结果
  9. 【译】感谢你的Code Review
  10. 图像上的算术运算 | 十一