浅析ArcGis API for Silverlight查询

一、ArcGis API for Silverlight 简介
    ArcGIS API for Silverlight是由美国Esri公司推出的,用于在Silverlight平台上开发WebGIS应用的一套编程接口。ArcGIS API for Silverlight通过REST接口访问ArcGIS Server发布的地图服务、影像服务、几何服务、地理处理服务、要素服务、网络服务等,还可以访问OGC标准的WMS、WFS、WCS等服务,也可以访问Bing地图服务。主要功能有:
1、 空间数据展示:加载地图服务或影像服务,展示服务数据;
2、 客户端Mashup:将来自不同服务器、不同类型的服务在客户端聚合后统一呈现给客户。
3、 查询检索:基于属性和空间位置进行查询,支持关联查询。
4、 地理处理:调用ArcGIS Server发布的地理处理服务(GP服务),执行空间分析、地理处理或其他需要服务器端执行的工具、模型、运算等。
5、 地图输出:提供多种地图图片导出功能。

二、常用查询功能
    ArcGIS API for Silverlight中的三种常用的查询:QueryTask、FindTask、IdentifyTask都是继承自ESRI.ArcGIS.Client.Tasks,关系如下图所示:

1、QueryTask:是一个进行空间和属性查询的功能类,它可以在某个地图服务的某个子图层内进行查询,顺便提一下的是,QueryTask进行查询的地图服务并不必须加载到Map中进行显示。QueryTask的执行需要两个先决条件:一个是需要查询的图层URL、一个是进行查询的过滤条件。查询结束返回的是一个FeatureSet。Featureset.features[i]可以加入到GraphicsLayer上显示,也可以通过Attributes属性字段得到属性信息。


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。查询成功返回的是一个FindResults数组, FindResults[i].feature可以加入到GraphicsLayer上显示,也可以通过Attributes属性字段得到属性信息。


3、IdentifyTask:是一个在地图服务中识别要素(Feature)的功能类。通过IdentifyTask可以搜索地图层中与输入几何形相交的要素(search the layers in a map for features that intersect an input geometry)。因为也是在多个图层中查询,所以Task的URL是动态图层服务的地址。同样,返回的要素都可以作为Graphic被添加到地图的GraphicsLayer上。查询成功返回的是一个IdentifyResults数组,IdentifyResults[i].feature可以加入到GraphicsLayer上显示,也可以通过Attributes属性字段得到属性信息。

三、小结
    ArcGis API for Silverlight 可以助你轻松构建富Internet应用,在应用中可以利用上述查询功能轻松实现定制的查询统计功能以及定位服务等。总而言之,利用合适的查询功能,可以让开发变得更方便。

原文地址:http://www.cpiso.cn/jsyj/ghxx/2015/7/9/553.shtml

原文地址:https://www.cnblogs.com/norma/p/4671723.html