ArcGIS API for JavaScript 4.2学习笔记[31] (补充学习)Task类

时间:2021-11-13 11:56:56

Task这个东西很有用,是AJS中用于解决各种乱七八糟任务的一个类。它有很多子类,有用于空间分析的,有用于空间查询的,等等。

这篇作为补充学习的第一篇,也是进阶学习的第一篇,我就改个写法。

我将使用思维导图,更好呈现逻辑信息。

Task类的继承关系

ArcGIS API for JavaScript 4.2学习笔记[31] (补充学习)Task类

Task类继承自Accessor类,它又有17个子类。别担心,各取所需,很少能用上超过5个子类的AJS程序,除非是一个超大的AJS集成系统。

以上有我熟知的QueryTask、RouteTask、FindTask、Geoprocessor、IdentifyTask和Locator。

其中,根据名字和经验,可能还会经常用到的有:ServiceAreaTask、ClosestFacilityTask、GeometryService和ImageServiceIdentifyTask这几个,前面两个和RouteTask是同属于网络分析的。

到补充学习这段,就不再详细介绍代码了,要介绍也是提取关键代码进行剖析。

熟知的已用过的6个类

首先介绍一下熟知的这几个Task子类,分别从“有什么用”、“怎么实例化”、“配套的类”三个方面叙述,具体的用法,请查阅官方API和相关例子:

【QueryTask】【RouteTask】【FindTask】【Geoprocessor】【IdentifyTask】【Locator】(超链接到我的博客)

直接上个大表格:

类名\区分项

有什么用

怎么实例化

(ArcGIS Server服务)

配套的类 主要方法与返回值类型
QueryTask 空间查询 

FeatureServer

MapServer

Query

QueryResult

query()

QueryResult

RouteTask 路径分析   NAServer

RouteParameters

RouteResult

solve()

RouteResult

FindTask 空间查找  MapServer 

FindParameters

FindResult

execute()

FindResult

Geoprocessor

地理处理

GIS常见分析

 GPServer  ParameterValue

submitJob()

execute()

Object

IdentifyTask 识别   MapServer

IdentifyParameters

IdentifyResult

execute()

IdentifyResult[]

Locator 定位       

于是我就有点郁闷,有几个是类似的,IdentifyTask、FindTask和QueryTask。

//交流中发现:IdentifyTask单用于识别,不特长于Geometry属性表的查询;

FindTask专注于属性字段的查询;

而QueryTask则更专注于几何要素的查询(功能更强大)。

从参数类Query、FindParameters、IdentifyParameters的字段数就可以大致判别了。感谢我的导师——何津。

然后再看看其他这4个类

(未完待续)