『公告』 预祝您龙年大吉,万事如意, 过节期间, 大家如需数据服务,请拨打400 或直接添加客服微信,再祝大家龙年,心想事成。
关注我们 新浪 腾讯

ArcGIS Engine 10 开发手册(3-12)IMap接口

ArcGIS Engine 10 开发手册(3-12)IMap接口
该接口主要用于管理 Map 对象中的图层对象,要素选择集和空间参考等对象,IMap 接口也往往是我 们一个任务的起点。

      该接口主要用于管理 Map 对象中的图层对象,要素选择集和空间参考等对象,IMap 接口也往往是我 们一个任务的起点。使用 IMap 接口,我们可以获取这个 Map 对象中的图层的个数,可以添加图层,删除 图层,还可以利用 IMap 实现查询的高亮显示。IMap 接口提供了两个和查询相关的方法 IMap.SelectByShape 方法和 IMap.SelectFeature 方法。

 

     IMap.SelectFeature 方法可以将在 Map 中获得的一个要素放到这个要素的图层选择集中,这个方法有一 个很重要的用途就是这个方法能使获取的要素高亮显示

 

     使用IMap.SelectByShape方法对地图中的要素进行查询

public void SelectByShape (

  IGeometry Shape,

  ISelectionEnvironment env,

  bool justOne

);

     IMap.SelectByShape 方法将会在 Map 中的所有图层中进行查询,这个方法需要三个参数,第一个参数 是一个 Geomtry 对象,IMap.SelectByShape 在查询的时候凡是和我们输入进去的这个几何对象相交的要素 都会查询出来,但是这有一个前提就是每一个要素图层的 Selectable 属性是 true

 

     第二个参数 ISelectionEnvironmentISelectionEnvironment 参数控制着构造选择集的结果和显示的方法等。

 

     第三个参数是一个 bool 值。

 

     我们在 MapControl’控件中画一个多边形的面,查找出和我们这个多边形面相交的所有图层中的要素

 

IGeometry pGeo =axMapControl1.TrackPolygon();

axMapControl1.Map.SelectByShape(pGeo, null, false);

axMapControl1.ActiveView.Refresh();

     效果如下:

 

 

 

     使用IMap.SelectFeature方法对地图中的要素进行查询

public void SelectFeature (

  ILayer Layer,

  IFeature Feature

);

 

void SearchHightlight (IMap_pMap, IFeatureLayer_pFeatureLayer, IQueryFilter_pQuery, bool_Bool)

{

  IFeatureCursor pFtCursor = _pFeatureLayer.Search (_pQuery,_Bool);

  IFeature pFt = pFtCursor.NextFeature ();

  while (pFt != null)

  {

    _pMap.SelectFeature (_pFeatureLayer as ILayer, pFt);

    pFt = pFtCursor.NextFeature ();

  }

}

     效果如下:

 

      京ICP备08100627号-22 京公网安备 11010802030428号