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的用法,代码如下: <! ...
随机推荐
- c#使用PortableDeviceApiLib读取便携式设备(WPD:Windows Portable Devices)信息
相关名词解释: WPD( Windows Portable Devices) 译作Windows 便携设备 (WPD) 是一种驱动程序技术,可支持广泛的可移动设备,比如移动电话.数码相机和便携媒体播放 ...
- 关于SpringBoot bean无法注入的问题(与文件包位置有关)改变自动扫描的包
原因:同事在写demo时出现bean加了@component后却无法被spring扫描到(在编译的时候IDEA就提示拿不到对应的bean)的问题. 后来经过研究是跟文件包的位置有关的. springb ...
- RandomAccessFile多线程下载、复制文件、超大文件读写
最近在准备面试,翻了翻自己以前写的Demo,发现自己写了不少的工具包,今天整理了一下,分享给大家. 本文包含以下Demo: 1.常用方法测试 2.在文件中间插入一段新的数据 3.多线程下载文件 4.多 ...
- Bone Collector-HDU
Many years ago , in Teddy’s hometown there was a man who was called “Bone Collector”. This man like ...
- 4.2 例题: 统计字符数 poj2247
问题描述 判断一个由 a-z 这 26 个字符组成的字符串中哪个字符出现的次数最多 输入:第 1 行是测试数据的组数 n,每组测试数据占 1 行,是一个由 a-z 这 26 个字符组 成的字符串,每组 ...
- 75、django之ORM补充
本篇导航: QuerySet 中介模型 查询优化 一.QuerySet 1.可切片 使用Python 的切片语法来限制查询集记录的数目 .它等同于SQL 的LIMIT 和OFFSET 子句. > ...
- Mybatis(四)关联映射
一. Mybatis关联映射 1 讲数据库中关联关系,主键表与外键表 一对多,多对一,主键表表示一 与外键表表示多 学生与学校的关系,工人与工厂,人员与部门的关系,.... 多 一 ...
- js的学习(window对象的使用)
open方法: //语法:var winObj = window.open([url][,name][,options]); //参数:url:准备在新窗口中显示那个文件.url可以为空字符串,表示 ...
- SQL Count(*)函数,GROUP_By,Having的联合使用
COUNT(*) 函数返回在给定的选择中被选的行数. 语法:SELECT COUNT(*) FROM table 使用:现在有一个表,名叫app_category,从Navicat中可以看到表中 ...
- js限制日期选择范围是两个月
$(".dateInputClass input:eq(0)").bind("click", function(){WdatePicker({dateFmt:' ...