1.FindTask
这是一个很简洁的Task,它的功能主要是通过关键字来搜索要素的某些字段,如果符合则返回查找到的要素。你可以参考Sample的“FindTask.mxml”,下面是对Task定义的一些代码:

2.GeometryService
这是对几何对象进行处理的一个Task,可是它是以Service结尾,这代表它并不简单地给你execute一下的,它提供了处理多种任务的能力。比如缓冲(buffer)、量测(lengths)等等。让我们打开Sample的“BufferSample.mxml”看看,这是一个缓冲的例子。
我们可以看到,处理的过程和其它Task也没什么区别,只不过没有了execute(有你也不知道到底执行什么命令),取代它的是明确的任务名称,比如要进行缓冲,那就是用buffer方法:
myGeometryService.buffer( bufferParameters );
好,那么随之而来的一个问题就是执行完了怎么办,怎么区分不同命令返回的结果?事实上,你只要监听不同的时间好了,比如你执行buffer命令,那么你就监听BUFFER_COMPLETE事件(mxml中:bufferComplete="..."),好了,只要你的方法监听到这个事件,你就可以在buffer完成后进行后续的处理了。
3.Geoprocessor
这是GP服务对应的Task。GP服务很灵活,因此你在设置Geoprocessor任务参数(Object对象)的时候,需要给予更多的注意。在用法上它并没有很多新意,具体可以参考一下Sample的“GeoprocessorMessageInABottle.mxml”。
4.IdentifyTask
识别要素,老朋友了,具体参考上一节。
5.Locator
从地址获得要素或者从要素获得地址的Task。让我们打开Sample的“LocatorTask.mxml”看一下,下面是执行命令的代码:
locateTask.addressToLocations(addy, null, new AsyncResponder(onResult, onFault));
Locator主要提供两个命令:addressToLocations()和locationToAddress()。它的参数也是Object对象,因此提供了灵活的参数设置和更多出错的机会。
6.QueryTask
查询要素。FindTask是搜索某些字段文本的命令,而QueryTask则提供了文本查询和空间查询的能力。sample中的“QueryTaskOnMap.mxml”是一个文本查询的例子。让我们对它进行一些修改以进行空间查询:
执行查询的命令是queryTask.execute( query, new AsyncResponder( onResult, onFault ));
让我们在它之前加上:
query.geometry = map.extent;
query.spatialRelationship = Query.SPATIAL_REL_INTERSECTS;
上面的map是Map组件的id(自己添加),同时,把query原先定义的text属性删除。让我们运行以后再点击查询,拖动一下地图,是不是看到只有原先视口中的要素被高亮了出来?这就是空间查询的结果,因为上面执行的查询是以当前地图范围为过滤条件的。

上一节 下一节
没有评论:
发表评论