现在是这样的,我在AE开发中遇到了两个棘手的问题:
1、我想在主窗体的MapControl1中的整张地图上选择一块区域,按下按钮后,出来一个子窗体,上面有一个MapControl2,我想让MapControl2中仅仅显示我在MapControl1中选中的区域。要是附带着能把选中区域的其他信息(例如名称,面积之类)也显示出来就更好了。
2、如何点击“村镇区域统计”按钮后,便可以在图层上划出一个多边形范围,以双击鼠标左键结束事件。之后弹出一个子窗体,上面连接一个DataGridView,显示出范围内所有的村镇信息。
一共两问,每问20分,只要哪位帮我弄出来,立即结贴放分!
------解决方案--------------------
你选择的时候应该可以得到一个 extent 或者 envelop吧。吧mapcontrol2的现实范围设置成 这个envelop不行吗?
------解决方案--------------------
第一个:跟一楼差不多,你选择区域的时候,可以得到区域的最小包围盒(Extent),然后设置MapControl2的Extent属性就行了
第二个:画多边形,然后双击鼠标结束就不说了,这个网上很容易找到的。画完多边形后你存储为PolygonClass,在将PolygonClass转为IRelationalOperator接口,利用其中的
public bool Disjoint (
IGeometry other
);
函数,将此多边形与地图中每个图形要素(村镇)比较,看他们是否相交,如果相交,读取属性,写入数据表。
这样说得够清楚了吧。。。
------解决方案--------------------
使用ITopologicalOperator .clip能达到你要的裁剪的效果