10楼#
发布于:2006-08-18 11:33
就是啊,如果没选中的话if (feat == null)return;这里就退出方法了!20的单位是米!<BR> <BR>
|
|
11楼#
发布于:2006-08-18 11:38
<P>IQueryFilter filter = (IQueryFilter)spatFilter;<BR> IFeatureCursor featCursor = editLayer.Search(filter, false);</P>
<P>为什么不直接用 SpatialQueryFilter,还转成IQueryFilter?我用过这个,没有问题的。</P> |
|
12楼#
发布于:2006-08-18 11:38
<P>晕,do<BR> {<BR> mapView .FocusMap.SelectFeature((ILayer)editLayer, feat);<BR> feat = featCursor.NextFeature();<BR> }<BR> while (feat != null);</P>
<P>该为while(feat!=null)</P> <P>{</P> <P> mapView .FocusMap.SelectFeature((ILayer)editLayer, feat);<BR> feat = featCursor.NextFeature();</P> <P>}</P> <P>因为do..while是先执行,在判断,而while()是先判断再执行</P> <P>这样的话你可能点的点根本就没选到要素,你跟跟看<BR></P><img src="images/post/smile/dvbbs/em01.gif" /> |
|
|
13楼#
发布于:2006-08-18 11:42
<P> IFeature feat = featCursor.NextFeature();</P>
<P> while (feat != null);<BR><BR> {<BR> m_map.Map.SelectFeature((ILayer)editLayer, feat);<BR> feat = featCursor.NextFeature();<BR> }<BR> IActiveView mapView = m_map.ActiveView;<BR> mapView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null);<BR></P> |
|
14楼#
发布于:2006-08-18 11:45
<P> ISpatialFilter pSpatialFilter = new SpatialFilterClass();<BR> pSpatialFilter.Geometry = hGeometry;<BR> switch (m_FeatureLayer.FeatureClass.ShapeType)<BR> {<BR> case esriGeometryType.esriGeometryPoint:<BR> pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelContains;<BR> break;<BR> case esriGeometryType.esriGeometryPolyline:<BR> pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;<BR> break;<BR> case esriGeometryType.esriGeometryPolygon:<BR> pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;<BR> break;<BR> }<BR> <BR> pSpatialFilter.GeometryField = m_FeatureLayer.FeatureClass.ShapeFieldName;<BR> IQueryFilter pFilter = pSpatialFilter as IQueryFilter;<BR> IFeatureCursor pCursor = m_FeatureLayer.Search(pFilter, false);<BR> IFeature pFeature= pCursor.NextFeature();<BR> while ( pFeature!=null)<BR> {<BR> m_ActiveView.FocusMap.SelectFeature(m_FeatureLayer, pFeature);<BR> pFeature = pCursor.NextFeature();<BR> } </P>
<P> m_ActiveView 是全局变量 m_ActiveView = MapControl1.ActiveView ;我的一点问题都没有的</P> |
|
|
15楼#
发布于:2006-08-18 11:48
换了楼上的循环,结果还是一样,循环里的方法都经过了,执行了selectfeature,但imap的selectiontcount还是为0,各位,救救我啊!!!!!!
|
|
16楼#
发布于:2006-08-18 11:48
<P>有可能是你的IActiveView mapView = m_map.ActiveView;定义的位置不对,你把它放在全局上!用 m_ActiveView.FocusMap.SelectFeature(m_FeatureLayer, pFeature);来选择<BR><BR></P><img src="images/post/smile/dvbbs/em01.gif" />
|
|
|
17楼#
发布于:2006-08-18 11:59
谢谢各位,可以了,图层调用那里错了!!呵呵!!!感谢感谢!!!!
|
|
18楼#
发布于:2006-08-20 11:34
<P>your selected Count is 0 .May be your Grid Size of your map is too small ,you can use the ArcGis desktop to try it ,if it can't select too ,you can change the Grid Size of your map,</P>
|
|
19楼#
发布于:2006-10-10 13:49
我用了上面的方法怎么选不到点要素啊?
|
|
上一页
下一页