想实现在axMapControl上绘制多种图形,然后裁剪shp文件(就是框选裁剪shp文件),找到有两种方法,用的时候都遇到了麻烦

现在的问题是绘制图形时遇到了麻烦.  axMapControl在主窗体,点击主窗体的控件弹出新窗体,新窗体的内容就是选择任意面,矩形,圆形,
TIM截图20180126133922.png

我现在有两种思路:第一种用IGeometry polygon = axMapControl1.TrackPolygon();来实现画面,但是这种方法要把代码放到button下面,绘制面的起点就是button.....如果把代码放到axmapcontrol点击事件里面,要设置一个flag,传到新窗体,点击绘制图形类型的控件时改变flag值,然后再传回主窗体
  if (flag == 1)
            {
                IGeometry polygon = AxMapControl1.TrackPolygon();
            }
            if (flag == 2)
            {
                IGeometry polygon = AxMapControl1.TrackPolygon();
            }
            if (flag == 3)
            {
                IGeometry polygon = AxMapControl1.TrackPolygon();
            }
 传到新窗体简单,但是传回去没有实现,并且感觉这样子有点乱.
 
第二种方法用了自带的工具,主窗体调用新窗体,把axmapcontrol1传到新窗体中,然后用
ControlsNewPolygonTool Cmd = new ControlsNewPolygonTool();
            Cmd.OnCreate(AxMapControl1.Object);
            AxMapControl1.CurrentTool = Cmd as ITool;
可以画出图形,
但是这种方法画完之后不知道如何获取画完后的图形对象!!!
 
求帮助啊
已邀请:

朱新颖

赞同来自:

第二种画完之后应该是Polygon Element是选中状态,可以通过IGraphicsContainerSelect.SelectedElement获取IElement,进而获取到Polygon;
自己画的话可以使用IDisplayFeedback或者IRubberBand2.TrackNew
 

柚子 - ArcGIS/WebAPI

赞同来自:

画图的时候会这样:起点就是button控件:

TIM截图20180129132705.png

 

要回复问题请先登录注册