默认头像
路人甲
路人甲
  • 注册日期2005-03-26
  • 发帖数94
  • QQ
  • 铜币578枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2308回复:4

请教关于ISpatialFilter的问题

楼主#
更多 发布于:2007-01-12 17:38

请教关于ISpatialFilter的问题

 

 

第一个是三个多边形要素

第二个是第一个图中的三个多边形要素总外轮廓生成的多边形要素

第一个和第二个图分别处于两个要素图层中,

我想用第二个作为查询要素

第一个作为被查询要素

通过以下语句来获得第一个图中三个多边形要素的指针

Dim pSpatialFilter As ISpatialFilter

       pSpatialFilter = New SpatialFilter

       With pSpatialFilter

           .Geometry = pPolygon

           .GeometryField = "shape"

           .SpatialRel = esriSpatialRelEnum.esriSpatialRelRelation(contains也用过)

           .SpatialRelDescription = "TFT**TFFT"

       End With

       pCursor = pSelectedClass.Search(pSpatialFilter, False)

我最终要得到的结果

第一个图中的三个要素都被选中

但是没有成功,程序一个要素也没选中,请问是哪里出了毛病啊?

多谢!!

喜欢0 评分0
默认头像
路人甲
路人甲
  • 注册日期2005-09-14
  • 发帖数47
  • QQ
  • 铜币277枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2007-05-22 17:45

我也想知道这个问题的答案,哪位高人指点一下

先谢谢了

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2004-04-30
  • 发帖数33
  • QQ
  • 铜币50枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-05-22 21:03
建议把pPolygon做个小点的缓冲区。
我爱绿色百合!
举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2005-08-29
  • 发帖数21
  • QQ
  • 铜币206枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-05-24 17:09

用.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects

esriSpatialRelEnum.esriSpatialRelEnvelopeIntersects试试

举报 回复(0) 喜欢(0)     评分
默认头像
路人甲
路人甲
  • 注册日期2005-09-14
  • 发帖数47
  • QQ
  • 铜币277枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2007-05-27 11:50

你的geometry和geometryfield定义说的不清楚。这两个是关键阿。geometry要用总的轮廓

举报 回复(0) 喜欢(0)     评分
默认头像

返回顶部