ArcGIS Engine 10 开发手册(3-12)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。

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

第三个参数是一个 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 ();
  }
}

效果如下:

ArcGIS Engine 10 开发手册全集

ArcGIS Engine 10 开发手册全集: ArcGIS Engine 10 开发手册

如您有疑问,可在文末留言,或到QQ群提问。

本站QQ群:291616564 麻辣GIS

微信公众号:malagis,扫描右边二维码直接关注。

微信捐助麻辣GIS 支付宝捐助麻辣GIS

如果本文对您有所帮助,欢迎对我们团队进行打赏捐助,让我们在传播3S的路上可以走得更远。


作者:,GIS爱好者。
分享本文,请您带上本文链接

发表评论