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的号,通常为图层序号

完整代码如下:

 View
Code

 

转载自:https://blog.csdn.net/u011193665/article/details/9263851

You may also like...

退出移动版