阅读:1911回复:3
IFeatureLayer.Search报错
<P>我有个图层为点层,有字段ObjectID,Name等。我想在该图层的DataGrid表格中点击记录(比如定位ObjectID=20的要素),然后MapContrl控件闪烁显示该点,并定位到该点为Map的中心。我用FeatureLayer.Search(pQryFilter,true,pFeatCur);但执行这条语句是对点的IFeatureLayer.Search一直出错.对面层的IFeatureLayer.Search就可以成功.不知道是甚么原因.</P>
<P>用的是ArcGis Engine 9.2 ,delphi7 .最后有C#代码赐教</P> <P>var<BR> pQryFilter:IQueryFilter;<BR> pFeatCur : IFeatureCursor;<BR> pFeat : IFeature;<BR> pShape: IGeometry;<BR> pColor:IRgbColor;<BR> pFillSys:ISimpleFillSymbol;<BR> pEnv:IEnvelope;<BR> ShapType:esriGeometryType;<BR>begin<BR> try<BR> pColor:=CoRgbColor.Create as IRgbColor;<BR> pColor.Set_Red(1);<BR> pColor.Set_Green(1);<BR> pColor.Set_Blue(250);<BR> pFillSys:=CoSimpleFillSymbol.Create as ISimpleFillSymbol;<BR> pFillSys.Set_Color(pColor);</P> <P> pQryFilter:=CoQueryFilter.Create as IQueryFilter;<BR> //pQryFilter.Set_SubFields('ObjectID');<BR> pQryFilter.Set_WhereClause(sqlWhere) ;<BR> featLyr.Search(pQryFilter,true,pFeatCur);</P> <P> pFeatCur.NextFeature(pFeat);<BR> while pFeat<>nil do<BR> begin<BR> pFeat.Get_Shape(pShape);<BR> pShape.Get_Envelope(pEnv);<BR> if pShape<>nil then<BR> begin<BR> FIMap3.Extent:=pEnv;<BR> Sleep(1000);<BR> FMapCtrl.FlashShape(pShape,5,500,pFillSys);<BR> end;<BR> pFeatCur.NextFeature(pFeat);<BR> end;<BR> except<BR> end;<BR>end;</P> |
|
1楼#
发布于:2007-03-12 10:50
提示什么错误?具体错误行?<img src="images/post/smile/dvbbs/em02.gif" />
|
|
|
2楼#
发布于:2007-03-15 15:50
肯定错嘛,点怎么会用到ISimpleFillSymbol?
|
|
3楼#
发布于:2007-03-20 13:18
三楼说的对。
|
|