麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

ArcGIS Engine 10 开发手册(4-20)空间查询

什么是空间查询

空间查询可以说是两步过滤,属性过滤和空间过滤,既然有空间过滤, 空间查询体 现 在 ISpatialFilter.Geometry 和 ISpatialFilter.SpatialRel 上,那么这个接口的 Geometry 和 spatialrel 属 性是必须的。众所周知 ArcMap 的空间查询是非常丰富的,而 ArcGIS Engine 可以毫无保留的实现 ArcMap 所能提供的全部空间查询,对于 ArcGIS Engine 来说这些空间查询只是 ISpatialFilter 的参数,而这些参 数都是常量,如下表所示:

查询矩形范围内的点要素(示例)

public ESRI.ArcGIS.Geodatabase.IFeatureCursor GetAllFeaturesFromPointSearchInGeoFeatureLayer (ESRI.ArcGIS.Geometry.IEnvelope pEnvelope, IPoint pPoint, IFeatureClass pFeatureClass)
{
  if (pPoint == null || pFeatureClass == null)
  {
    return null;
  }

  //ITopologicalOperator pTopo = pPoint as ITopologicalOperator;

  //IGeometry pGeo = pTopo.Buffer(pSearchTolerance);

  System.String pShapeFieldName = pFeatureClass.ShapeFieldName;
  ESRI.ArcGIS.Geodatabase.ISpatialFilter pSpatialFilter = new ESRI.ArcGIS.Geodatabase.SpatialFilterClass ();
  pSpatialFilter.Geometry = pEnvelope;

  pSpatialFilter.SpatialRel = ESRI.ArcGIS.Geodatabase.esriSpatialRelEnum.esriSpatialRelEnvelopeIntersects;

  pSpatialFilter.GeometryField = pShapeFieldName;

  ESRI.ArcGIS.Geodatabase.IFeatureCursor pFeatureCursor = pFeatureClass.Search (pSpatialFilter, false);

  return pFeatureCursor;
}

IMap map = this.axMapControl1.Map;
ISelection selection = map.FeatureSelection;

IEnumFeatureSetup pEnumFeatureSetup = (IEnumFeatureSetup) selection;
pEnumFeatureSetup.AllFields = true;

IEnumFeature pEnumFeature = (IEnumFeature) selection;
IFeature feature = pEnumFeature.Next ();

while (feature != null)
{
  string a = Convert.ToString (feature.get_Value (feature.Fields.FindField ("dfd")));
  feature = pEnumFeature.Next ();
}

ArcGIS Engine 10 开发手册全集

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


麻辣GIS-Sailor
作者:
GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

3.如果本文对您有所帮助,请您对我们团队进行 打赏捐助让我们在传播3S的路上可以走得更远,不胜感激。PS:如果你是学生党,请优先把经费用于购买学习资料 以及 与小哥哥/小姐姐约会上:-)

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

本站QQ群(一):291616564 加入QQ群

本站QQ群(二):166408035 加入QQ群

本站QQ群(三):627853279 加入QQ群

本站QQ群(四):436386604 加入QQ群

本站QQ群(五):606176554 加入QQ群

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

发表评论