|
阅读:1191回复:2
使用MO选择功能的巨郁闷的事。
我想在用户单击鼠标时选择离鼠标点最近的实体。<BR>代码如下
<br> <P>ESRI.MapObjects2.Core.Point ptFind = axMapMain.ToMapPoint(e.x,e.y); //查找点坐标<BR>//按照从上到下的顺序查找所有图层。<BR>for(int i=0;i<AXMAPMAIN.LAYERS.COUNT ;i++) <BR>{<BR>try<BR>{<BR>MapLayer lyr = (MapLayer)axMapMain.Layers.Item(i);<BR>if(lyr.Visible) //只查找显示出来的图层。<BR>{<BR>if(lyr.shapeType == ShapeTypeConstants.moShapeTypePolygon)<BR>{<BR>findRecordset = lyr.SearchShape(ptFind,SearchMethodConstants.moContainedBy,"");<BR>}<BR>else<BR>{<BR>findRecordset = lyr.SearchByDistance(ptFind,axMapMain.ToMapDistance(15),"");<BR>}<BR>if(!findRecordset.EOF) //Find<BR>{<BR>object obj = findRecordset.Fields.Item("Shape").value;<BR>frmMOIndentity.LayerName = lyr.Name;<BR>axMapMain.FlashShape(obj,3);//闪烁查找到的物体3秒</P> <P>break;<BR>}//end if<BR>}//end if(lyr.Visible)<BR>}<BR>catch(Exception exp)<BR>{<BR>System.Diagnostics.Debug.WriteLine("Select error\n"+exp.ToString());<BR>}<BR>} //end for</P> <P>如果图层比较多,经常是明明鼠标点在一个区域内,有时可以选中,有时又选不中。<BR>当关闭所有其他图层,只留下一个图层时,基本上都可以选中。<BR>我跟踪过了,多个图层打开时也执行了相应图层的选择语句,也没有任何异常抛出,不只为什么多个图层选不中,单个图层就可以。<BR>不知有没有什么解决的方法?</P> |
|
|
1楼#
发布于:2005-06-01 08:35
可以的看看MOVIEW2里面的功能就可以了<img src="images/post/smile/dvbbs/em03.gif" />
|
|
|
|
2楼#
发布于:2005-06-03 09:32
<P>那有两种可能:</P>
<P>一是你的坐标没有配准;二是你的记录指针没有指到相应的图层.</P><img src="images/post/smile/dvbbs/em05.gif" /> |
|