Task(任务):
比如我们在日常生活中,要在 Word 做一个打印的操作,这个打印操作就是一个Task。在做打印的时候,我们首先要有打印机,这个是肯定的,然后在打印的时候,我们要设置打印的参数,比如纸张的大小,打印的份数,是否彩色打印等等,将参数设置完毕后,打印机将按照这些参数进行打印,最后我们从打印机中获取要门所要打印的文档。
如果将这个过程抽象出来,我们可以抽象为这三个部分:打印机,参数,执行结果,其中打印机是执行对象,它是根据设置的打印参数来执行,最后给出我们一个反馈结果。
在 ArcGIS API for Javascript 中的任务跟这个过程类似,不同的任务都会有一个执行对象,还有一个对象的参数设置对象,执行对象在整个执行过程还可能返回一些状态信息,在执行结束后将告诉我们这个任务是否执行成功,如果成功的话,那么我们就可以得到结果了,失败的话,可以通过检查任务失败的错误提示信息进行检查。
通过上面的介绍,我们可以得出一个任务操作所需要的步骤:
1、 实例化一个执行对象;
2、 设置执行对象的参数对象;
3、 设置执行成功和失败的处理函数,这两个函数的本质其实就是回调函数,执行
对象分别有运行失败和成功的事件,当这两个事件被触发,系统自动回调相应
的函数,并传入相关信息;
4、 如果失败,根据错误信息,对程序进行排错处理;
5、 如果成功,从返回结果中得到我们想要的信息。
查询任务:
1.Class: QueryTask
Executes a query operation on a layer resource of a map service exposed by the ArcGIS Server REST API.//进行空间和属性查询的类,输入服务图层url和query参数。QueryTask 以 Query 为执行参数,空间查询和属性查询的设置都是在 Query 对象上进行,QueryTask 的过滤条件除了属性过滤,同时还支持空间过滤。
queryTask.execute(parameters, callback?, errback?)//执行查询
Class: Query
Query for input to the QueryTask. Not all query properties are required to execute a QueryTask. The query definition requires one of the following properties: queryGeometry, text, or where. Optional properties include outFields, outSpatialReference, and returnGeometry.//是QueryTask的执行参数
2.Class: FindTask
Search a map service exposed by the ArcGIS Server REST API based on a string value. The search can be conducted on a single field of a single layer, on many fields of a layer, or on many fields of many layers.//FindTask 是在某个地图服务中进行属性查询的功能类,FindTask 以 FindParameters 对象作为参数,能查询同一个地图服务的一个或者多个图层,并且可以在多个字段中进行查询,FindTask 仅仅用于属性信息的查询
Class: FindParameters
This data object is used as the findParameters argument to FindTask.execute method. It specifies the search criteria for a find operation.
3.Class: IdentifyTask
IdentifyTask 以 IdentifyParameters 对象作为参数,能查询同一个地图服务的一个或者多个图层, IdentifyTask 仅仅用于空间信息查询。
Class: IdentifyParameters
This data object is used as the identifyParameters argument to IdentifyTask.execute method. It specifies the criteria used to identify the features.