hmind
路人甲
路人甲
  • 注册日期2007-08-04
  • 发帖数6
  • QQ
  • 铜币120枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1934回复:2

用c#怎么实现空间操作,比如Intersect

楼主#
更多 发布于:2007-11-02 11:33
<P>空间操作返回的是Object对象,在VB中可以定义,可是在c#中好像不能定义MO下的Object,所以空间操作返回不了结果</P>

<P>请高手帮忙,谢谢</P><img src="images/post/smile/dvbbs/em12.gif" />
喜欢0 评分0
hmind
路人甲
路人甲
  • 注册日期2007-08-04
  • 发帖数6
  • QQ
  • 铜币120枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于: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" />
举报 回复(0) 喜欢(0)     评分
hmind
路人甲
路人甲
  • 注册日期2007-08-04
  • 发帖数6
  • QQ
  • 铜币120枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-11-02 17:25
<P>这里一定要定义公共变量,而且还必须在定义时就new出来,不然画第二个Polygon的时候,shp1就没了</P><img src="images/post/smile/dvbbs/em03.gif" />
举报 回复(0) 喜欢(0)     评分
游客

返回顶部