阅读:1324回复:0
属性查询的问题
<P>以下代码有错误 当程序运行到IMap imap=new MapClass();<BR> imap =axMapControl1.Map;</P>
<P> 时就过不去?请问大家问题在哪?谢谢!<BR></P> <P> private void button1_Click(object sender, EventArgs e)<BR> {<BR> string QueryStr;<BR> QueryStr = textBox1.Text;<BR> <BR> <BR> IQueryFilter iQueryFilter = new QueryFilterClass();<BR> iQueryFilter.WhereClause = QueryStr;<BR> </P> <P> IMap imap=new MapClass();<BR> imap =axMapControl1.Map;<BR> ILayer ilayer;<BR> ilayer = imap.get_Layer(0);<BR> <BR> IFeatureLayer ifealay = (IFeatureLayer)ilayer;<BR> <BR> IFeatureSelection ifeasel = (IFeatureSelection)ifealay; <BR> <BR> //通过过滤器来选择特征要素<BR> ifeasel.SelectFeatures(iQueryFilter, esriSelectionResultEnum.esriSelectionResultNew, false);<BR> <BR> ISelectionSet iselset;<BR> //得到选择集<BR> iselset = ifeasel.SelectionSet; <BR> <BR> <BR> ICursor icur;<BR> IFeatureCursor ifeacur;</P> <P> //通过过滤器到选择集中查找<BR> iselset.Search(null, true, out icur);<BR> ifeacur = (IFeatureCursor)icur;</P> <P> IFeature ifea;<BR> IEnvelope ienvres = new EnvelopeClass();<BR> //从ifeacur得到地物要素<BR> ifea = ifeacur.NextFeature();<BR> <BR> //求出地物要素的范围<BR> if (ifea!=null)<BR> {<BR> IGeometry igeo;<BR> IEnvelope ifeaenv = new EnvelopeClass();</P> <P> igeo = ifea.Shape;<BR> ifeaenv = igeo.Envelope;<BR> ienvres.Union(ifeaenv);<BR> ifea = ifeacur.NextFeature();<BR> }</P> <P> if (ienvres != null)<BR> {<BR> ienvres = axMapControl1.Extent;<BR> IActiveView iav = (IActiveView)axMapControl1.Map;<BR> iav.Refresh();<BR> }<BR> else<BR> {<BR> MessageBox.Show("输入的查询语句有错误");</P> <P> }<BR> <BR> }<BR> }</P> |
|