ArcGIS Runtime SDK for .NET 100.0中如何执行.gpk(一)
来源:互联网 发布:淘宝家具安装接单平台 编辑:程序博客网 时间:2024/06/05 16:56
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(二)
- ArcGIS Runtime for .Net Quartz开发探秘(一):ArcGIS Runtime SDK for .Net简介及开发必要准备
- ArcGIS Runtime SDK for .Net介绍
- ArcGIS Runtime Sdk for .Net基本介绍
- ArcGIS Runtime for .NET
- 《ArcGIS Runtime SDK for .NET开发笔记》 --Hello Word
- 《ArcGIS Runtime SDK for .NET开发笔记》--三维功能
- 《ArcGIS Runtime SDK for .NET开发笔记》--在线编辑
- 《ArcGIS Runtime SDK for Android开发笔记》——(3)、ArcGIS Runtime SDK概述
- ArcGIS RunTime SDK For ios 10.1.1学习笔记(一)HelloMapWorld
- ArcGIS Runtime SDK for Android教程——(一)介绍以及环境搭建
- ArcGIS Runtime SDK for iOS(六) --- 空间几何分析与操作(中)
- ArcGIS Runtime SDK For Android 授权方法(去除水印)
- ArcGIS Runtime SDK For Android 授权方法(去除水印)
- ArcGIS Runtime SDK for .NET (Quartz Beta)之连接ArcGIS Portal
- ArcGIS Runtime SDK for .NET (Quartz Beta)之连接ArcGIS Portal (1)
- ArcGIS Runtime SDK for iOS 2.2发布
- DMA +串口通信
- 图书管理系统
- redis sentinel 频繁主备切换的解决方法
- MapReduce
- mapreduce,自定义分区,分组,排序实现join
- ArcGIS Runtime SDK for .NET 100.0中如何执行.gpk(一)
- 1234: Picture
- MAC python默认版本切换
- JavaScript-系统对象
- Ubuntu连接不上SSH解决办法
- 关于createjs的中心点和坐标之间的联系
- 视音频编解码技术零基础学习方法
- 工作记录
- 那些年,初学Android遇到的问题