arcgis runtime sdk for wpf/silverlight中的三种常用的查询:querytask、findtask、identifytask都是继承自esri.arcgis.client.tasks,关系如下图所示:
1、querytask:是一个进行空间和属性查询的功能类,它可以在某个地图服务的某个子图层内进行查询,顺便提一下的是,querytask进行查询的地图服务并不必须加载到map中进行显示。querytask的执行需要两个先决条件:一个是需要查询的图层url、一个是进行查询的过滤条件。
下面是querytask的基本过程:
2、findtask:允许对地图中一个或多个图层的要素进行基于属性字段值的查询(search one or more layers in a map for features with attribute values that match or contain an input value)。findtask不能进行“空间查询”,因为findtask可以对多个图层进行查询,所有它的url属性需要指向所查询的地图服务的rest url,而不像querytask需要指定某个图层的url。
下面是findtask的基本过程:
3、identifytask:是一个在地图服务中识别要素(feature)的功能类。通过identifytask可以搜索地图层中与输入几何形相交的要素(search the layers in a map for features that intersect an input geometry)。因为也是在多个图层中查询,所以task的url是动态图层服务的地址。同样,返回的要素都可以作为graphic被添加到地图的graphicslayer上。
基本过程如下:
三种查询的返回结果:
querytask:返回的是一个featureset。featureset.features[i]可以加入到graphicslayer上显示,也可以通过attributes属性字段得到属性信息。
findtask:返回的是一个findresults数组, findresults[i].feature可以加入到graphicslayer上显示,也可以通过attributes属性字段得到属性信息。
identifytask:返回的是一个identifyresults数组,identifyresults[i].feature可以加入到graphicslayer上显示,也可以通过attributes属性字段得到属性信息。
参考:
<a href="http://help.arcgis.com/en/webapi/silverlight/1.2/help/index.html">http://help.arcgis.com/en/webapi/silverlight/1.2/help/index.html</a>
<a href="http://resources.arcgis.com/en/help/runtime-wpf/concepts/index.html#/querying_and_searching_overview/0170000000m4000000/">http://resources.arcgis.com/en/help/runtime-wpf/concepts/index.html#/querying_and_searching_overview/0170000000m4000000/</a>
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
http://www.cnblogs.com/luxiaoxun/p/3297654.html