|
阅读:1769回复:3
请教在c#中做ao的点击查询
<P>我用的是c#+ao8.3版,想在里面实现点击查询地物属性的功能(即在地图上点击,出现被选特征的属性数据),我参照vb的代码写的,但有些不会转换;
<I></I> <I></I> <I></I> 1。set<I></I> variable<I></I> =<I></I> object.identify<I></I> (pgeom,<I></I> ptrackcancel<I></I> )<I></I> <I></I> <I></I> 请问pgeom这个参数用ipoint类行吗?<I></I> ptrackcancel<I></I> 这个参数代表什么意思,看不明白。。。。我这样定义:(1)iarray<I></I> pidarray=pid.identify(ipipoint,nothing)<I></I> as<I></I> iarray;(2)iarray<I></I> pidarray=<I></I> pid.identify(ipipoint),,,(其中iidentify2<I></I> <I></I> pid;ipoint<I></I> ipipoint);不知为什么出错啊<I></I> ? </P> <P><I></I> <I></I> <I></I> <I></I> 2。collections<I></I> pselected;<I></I> <I></I> <I></I> <I></I> 我想用pselected<I></I> 存放被选中的特征,但在c#中不知如何定义: <I></I> <I></I> <I></I> <I></I> 3。<I></I> field的值怎么被获得;</P> |
|
|
1楼#
发布于:2004-07-24 20:44
<P>我大概写了一下代码,高手帮我看看 </P><P> for (int i=0 ;i<ipMapControl.LayerCount;i++)
if(ipMapControl.get_Layer(i).Name=="A001LN0") { ILayer pLayer; pLayer=ipMapControl.get_Layer(i); IGeoFeatureLayer pGeoLayer=pLayer as IGeoFeatureLayer ; IIdentify pID=pGeoLayer as IIdentify; IPoint ipIPoint; ipIPoint=ipMapControl.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(e.X,e.Y);</P><P> IGeometry ipGeom=ipIPoint as IPoint; IArray pIDArray=pID.Identify(ipGeom) as IArray; //为什么出错。。。。。 if (pIDArray.Count==0) { return; } for (int j=0; j<pIDArray.Count;j++) { IFeatureIdentifyObj ipFeatIdObj=pIDArray.get_Element(j) as IFeatureIdentifyObj; IRowIdentifyObject pRowObj=ipFeatIdObj as IRowIdentifyObject; IFeature pFeature=pRowObj.Row as IFeature; IRow ipRow=pFeature;</P><P> if(ipRow != null) { string strValue=""; IRowBuffer ipRowBuffer = ipRow; for(i=0;i<ipRowBuffer.Fields.FieldCount;i++) { strValue ="->"+ ipRowBuffer.get_Value(i).ToString(); } MessageBox.Show(strValue); } } }</P> |
|
|
2楼#
发布于:2004-07-28 10:47
问题已解决啦!!!!!!!!<img src="images/post/smile/dvbbs/em08.gif" />
|
|
|
3楼#
发布于:2004-07-29 11:13
<P>大家看看这个参数怎么解决(菜鸟)
MapControl.FlashShape(1,2,3,4) 1、IGeometry 2、闪烁的次数 3、闪烁的时间间隔 4、闪烁时所用的符号 //怎么定义一个符号啊 , ISymbol ipSymbol;怎么给这个 ipSymbol 赋值。。。。。。</P> |
|