ArcGIS API for JavaScript 中的数据类型【vs】GPServer的数据类型
熟悉GPServer的同学肯定知道,GPServer在10.1的ArcMap后需要执行成功一次才能发布。
发布GPServer,可以是ArcMap的工具箱的工具,也可以是自己写的模型。
不管是ArcMap的工具还是自己写的模型,肯定有许多个输入与输出的参数。
ParameterValue的value属性类型(取决于ParameterValue的类型)
这些参数总有类型,那么这些参数对应ArcGIS API for JavaScript 4或者3这两个版本中,分别对应着JavaScript的什么数据类型呢?
还好这方面的资源很多,官方API中就有,其实就是ParameterValue类的Value属性的帮助文档:
推荐使用3.X的表格,因为3.X的表格的GPServer参数类型与ArcGIS for Server上的参数类型名称一模一样。
上表的意思是,如果ParameterValue的类型是“Data Type”中的某一个,那么value属性的类型就是“JavaScript Type”中的某一个。
举例说明
例如,在官方的Viewshed这个Task服务中,有如下的参数:
参数列表:
Input_Observation_Point(GPFeatureRecordSetLayer类型的输入参数)
Viewshed_Distance(GPLinearUnit类型的参数)
Viewshed_Result(GPFeatureRecordSetLayer类型的输出参数)
在前端代码中,就变成了这样:
function computeViewshed(event) {
graphicsLayer.removeAll(); var featureSet = new FeatureSet();
//...featureSet的属性设置代码被我省略 var vsDistance = new LinearUnit();
//...vsDistance的属性设置代码被我省略 var params = {
"Input_Observation_Point": featureSet,
"Viewshed_Distance": vsDistance
};
//两个输入参数就被设置成了FeatureSet类型与LinearUnit类型
//与上表一致 gp.execute(params).then(drawResultData);
}
在drawResultData方法中,获取结果参数的代码如下:
function drawResultData(result) {
//从execute()方法的返回值result(本方法的参数)中获取
//ParameterValue[]的第一个元素的value中的features
var resultFeatures = result.results[0].value.features; var viewshedGraphics = resultFeatures.map(...);//处理结果 graphicsLayer.addMany(viewshedGraphics); view.goTo({
target: viewshedGraphics,
tilt: 0
});
}
什么类型的ParameterValue的value属性拥有features属性呢?
没错,当value是AJS中的FeatureSet时,value的features属性才能与之对应。
这又印证了ParameterValue若为GPFeatureRecordSetLayer类型(与GPServer的参数类型一致),则其value的数据类型必为FeatureSet了。
多说一句,ParameterValue类的实例用在哪里?
ParameterValue类没有构造器,也就是说这个类用户不能自己实例化。
这个类的实例是GPTask(Geoprocessor的实例)execute方法的返回值之一:
execute()方法接受一个Object参数对象,返回一个Object结果对象。
其中接受的Object对象就是输入参数;
返回的Object对象如上图,其results属性就是ParameterValue[]类型。
在execute().then(回调函数)的回调函数中,回调函数的参数result就是execute()的返回值——Object对象。
我们可以这样取得results中的ParameterValue:
var paramterValue = result.results[0];
取数组的第一个元素,GPServer中返回的参数有多少个,那么这个返回的Object对象的results属性的数组就有多少个元素,一般简单的GPServer结果参数都只有一个。
ArcGIS API for JavaScript 中的数据类型【vs】GPServer的数据类型的更多相关文章
- 关于ArcGIS API for JavaScript中basemap的总结介绍(一)
实际上basemap这个概念并不只在arcgis中才有,在Python中有一个matplotlib basemap toolkit(https://pypi.python.org/pypi/basem ...
- arcgis api for javascript中使用proxy.jsp
当我们使用arcgis api for javascript 查询arcgis服务时,如果查询的参数很长时,通过get方式提交会查询不到结果,因为get方式提交的参数有长度限制,需要通过代理的方式使用 ...
- ArcGIS API for javascript中搜索框的使用问题
我们在开发中常常需要用搜索框去搜索地图上的某个数据,然后在地图上显示出来.这个时候我们要用到esri.dijit.Search().在设置里面的sources的时候,需要注意一点:必须要使用在线的fe ...
- 本人arcgis api for javascript中常见错误总结
1. 2.对象不支持"replace"属性或方法 解决办法:一般在ie中执行js会报这样的错误,基本问题就是你引用了某个对象中不存在的方法,可能是这个方法本来存在而你写错了,或者调 ...
- ArcGIS API for JavaScript介绍
ArcGIS API for JavaScript中的类是按照模块组织的,主要包含esri.esri/geometry.esri/renderers.esri/symbols.esri/symbols ...
- ArcGIS API for JavaScript:Layer之间那点儿事
先来看一个模型: |–TiledMapServiceLayer | |–ArcGISTiledMapServiceLayer |–DynamicLayer | |–Dyn ...
- arcgis api for JavaScript _跨域请求
arcgis api for JavaScript 中出现跨域请求是常见问题, 通常出现类似如下错误消息类似: XMLHttpRequest cannot load http://10.32.2.7 ...
- ArcGIS API for JavaScript Bookmarks(书签)
说明:本篇博文介绍的是ArcGIS API for JavaScript中的 Bookmarks(书签) ,书签的作用是,把地图放大到一个地方 添加书签,书签名称可以和地图名称一直,单击标签 地图会定 ...
- arcgis api for javascript 学习(四) 地图的基本操作
1.文章讲解的为地图的平移.放大.缩小.前视图.后视图以及全景视图的基本功能操作 2.主要用到的是arcgis api for javascript中Navigation的用法,代码如下: <! ...
随机推荐
- Flash真的老了,HTML5将取代其地位
简单讲一些网页开发的趋势吧! Flash老了 Flash是一个落后于时代的技术,靠对客户端的高资源占用率来获取传输过程的低带宽占用. Flash不再安全 Flash是一个落后于时代的技术,靠对客户端的 ...
- wamp环境下如何安装redis扩展
Redis安装 wamp环境安装redis扩展 首先在自己本地项目中phpinfo(); 查看php版本; (php版本是5.5, ts-vcll表示MSVC11 (Visual C++ 2012), ...
- 安装memcached
简介 memcached是免费和开放源代码的高性能分布式内存对象缓存系统,旨在通过减轻数据库负载来加速动态Web应用程序.其有以下特点: 基于简单的文本行协议 全部数据按照k/v形式存放在内存中,无持 ...
- layer,Jquery,validate实现表单验证,刷新页面,关闭子页面
1.表单验证 //获取父层 var index = parent.layer.getFrameIndex(window.name); //刷新父层 parent.location.reload(); ...
- thinkphp 使用插件异步上传图片或者文件
使用tp做一些上传的功能,的确挺方便.但是在一些特殊情况下无法单独的使用tp的上传功能, 或者需要做一些比较酷炫的上传效果,这里就需要用到框架了. 我在这里使用的是uploadify上传插件. 首先需 ...
- 在Eclipse中写web工程 发现import javax.servlet.http.HttpSession无法引入
解决方法 得加入tomcat的jar包,右击项目->build path-add libraries->server Runtime->选择要导入的tomcat 就可以了,如果没有选 ...
- 实践作业3DAY1
今天,老师又布置了新的学习任务,关于白盒测试.感觉黑盒测试,我们用的比较多,白盒测试就相对陌生了.上课的时候老师虽然也进行了一定的点拨,外加我们学习了SPOC视频,但是并没有看到什么具体的项目,所以实 ...
- 实践作业1:测试管理工具实践 Day1
1.熟悉课程平台2.选取小组作业工具并分工3.申请博客4.提交<高级软件测试技术SPOC2017年秋学生博客地址汇总>问卷5.着手熟悉Testlink
- 《Linux命令行与shell脚本编程大全》第二十六章 一些有意思的脚本
26.1 发送消息 26.1.1 功能分析 1.确定系统中都有谁 $who 给出的信息包括用户名 用户所在终端 用户登入系统的时间 2.启用消息功能 用户可以禁止别人给我发消息,所以需要先检查一下是否 ...
- nginx的基础应用(续)
nginx的基础应用(续) 一.简介 上一篇文章我们介绍了nginx的基础应用,其中讲到了nginx作为代理服务器的使用,但是漏了一个重要的,也是使用非常普遍的特性--负载均衡.今天,我们将这段内容补 ...