ArcEngine连接Arcgis Server地图服务之查询
对加载到ArcEngine里的Arcgis Server地图服务的漫游、缩放等地图浏览操作,与对本地地图一样不过,然而查询时,由于数据不再本地,所以不能用查询本地地图的那些代码,需要另外编码,但是查询的步骤还是大体类似,都需要设置查询条件,只是本地数据用IFeatureLayer.Search方法而地图服务数据则用IMapServer.QueryFeatureData,具体步骤如下。
1、获取IMapServer对象
在“ArcEngine获取ArcGIS
Server上的地图服务”一文中已经详细介绍了怎样获取IMapServer对象,这里就不赘述了,只直接定义一对象表示已经实例化
IMapServer mapserver;
2、设置查询条件
设置查询条件方式与查询本地数据一样,都是通过社SpatialFilter对象属性实现
SpatialFilter filter = new SpatialFilter();
filter.Geometry
= geo;//图形查询方式,设置查询图形
filter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;//空间查询关系
filter.WhereClause=strSql;//设置属性条件查询SQL语句
3、执行查询
IRecordSet rcdset=mapserver.QueryFeatureData(mapname, lyrId, filter);//查询结果保存在IRecordSet对象中,mapname表示地图服务地图的名称,lyrId表示要查询的地图服务子图层的I的号,通常为图层序号
完整代码如下:
Code
转载自:https://blog.csdn.net/u011193665/article/details/9263851