阅读:1935回复:2
用c#怎么实现空间操作,比如Intersect
<P>空间操作返回的是Object对象,在VB中可以定义,可是在c#中好像不能定义MO下的Object,所以空间操作返回不了结果</P>
<P>请高手帮忙,谢谢</P><img src="images/post/smile/dvbbs/em12.gif" /> |
|
1楼#
发布于:2007-11-02 17:25
<P>这里一定要定义公共变量,而且还必须在定义时就new出来,不然画第二个Polygon的时候,shp1就没了</P><img src="images/post/smile/dvbbs/em03.gif" />
|
|
2楼#
发布于:2007-11-02 17:23
<P>已经解决,代码如下,呵呵</P>
<P>公共变量定义:</P> <P> private bool shape1=true;<BR> private Polygon shp1 = new PolygonClass();<BR> private Polygon shp2 = new PolygonClass();</P> <P>在axMap1_MouseDownEvent中添加如下代码:<BR>Symbol sym = axMap1.TrackingLayer.get_Symbol(0);<BR>sym.SymbolType = SymbolTypeConstants.moFillSymbol;<BR>sym.Style = (short)MarkerStyleConstants.moCircleMarker;<BR>sym.Color = Convert.ToUInt32(ColorConstants.moOrange);<BR>if (shape1)<BR>{<BR> shp1 = axMap1.TrackPolygon();<BR> //axMap1.TrackingLayer.AddEvent(shp1, 0);<BR> shape1 = false;<BR>}<BR>else<BR>{<BR> shp2 = axMap1.TrackPolygon();<BR> //axMap1.TrackingLayer.AddEvent(shp2, 0);<BR> shape1 = true;<BR> Object res = new Object();<BR> res = shp1.Intersect(shp2,axMap1.Extent);<BR> axMap1.TrackingLayer.AddEvent(res, 0); <BR>}</P><img src="images/post/smile/dvbbs/em08.gif" /> |
|