MapControl与PageLayoutControl联动

1.编写数据拷贝函数(封装起来,便于多处调用);

     public class GeoMapLoad
    {
        public static void CopyAndOverwriteMap(AxMapControl axMapControl, AxPageLayoutControl axPageLayoutControl)
        {
            IObjectCopy objectCopy = new ObjectCopyClass();
            object toCopyMap = axMapControl.Map;
            object copiedMap = objectCopy.Copy(toCopyMap);
            object overwriteMap = axPageLayoutControl.ActiveView.FocusMap;
            objectCopy.Overwrite(toCopyMap,ref overwriteMap);
        }
    }

2.axMapControl加载的数据发生重绘时,需要联动,所以在axMapControl的OnAfterScreenDraw事件中,需添加获取axMapControl控件中当前所显示的地理范围代码,并将当前显示范围传给axPageLayoutControl控件ActiveView对象的FocusMap中,同时调用拷贝方法;

        private void axMapControl1_OnAfterScreenDraw(object sender, IMapControlEvents2_OnAfterScreenDrawEvent e)
        {
            IActiveView pAcv = axPageLayoutControl1.ActiveView.FocusMap as IActiveView;
            IDisplayTransformation displayTransformation = pAcv.ScreenDisplay.DisplayTransformation;
            displayTransformation.VisibleBounds = axMapControl1.Extent;//设置焦点地图的可视范围
            axPageLayoutControl1.ActiveView.Refresh();
            GeoMapLoad.CopyAndOverwriteMap(axMapControl1, axPageLayoutControl1);
        }

3.axMapControl加载的数据发生变化时,需要联动,所以在axMapControl的OnMapReplaced事件中需要调用数据拷贝的方法;

        private void axMapControl1_OnMapReplaced(object sender, IMapControlEvents2_OnMapReplacedEvent e)
        {
            GeoMapLoad.CopyAndOverwriteMap(axMapControl1, axPageLayoutControl1);
        }

4.axMapControl中的数据显示状况发生变化时,需要联动,所以在axMapControl的OnViewRefreshed事件中需要调用数据拷贝和图层刷新的方法;

        private void axMapControl1_OnViewRefreshed(object sender, IMapControlEvents2_OnViewRefreshedEvent e)
        {
            axTOCControl1.Update();
            GeoMapLoad.CopyAndOverwriteMap(axMapControl1, axPageLayoutControl1);
        }

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mapcontrolpagelayoutcontrol是ArcGIS Engine中的两个控件,用于在应用程序中显示地图和页面布局。mapcontrol用于显示地图数据,包括地图图层、符号、标注等,可以进行缩放、平移、选择等操作。pagelayoutcontrol用于显示地图的页面布局,包括地图元素、图例、比例尺等,可以进行编辑、导出等操作。这两个控件可以方便地将地图和页面布局集成到应用程序中,提供更好的用户体验和功能。 ### 回答2: MapControlPageLayoutControl是ArcGIS中常用的两类控件。MapControl用于显示地图图层和与地理信息相关的视图操作,而PageLayoutControl则用于在地图制作时设计地图布局、插入制图元素等。下面将从以下几方面详细阐述它们的作用和使用方法。 一、MapControl的作用和使用方法: 1、显示地图:通过MapControl控件可以将地图数据显示在地图容器中,加入添加、更新、删除地图图层等操作,实现多种地图显示效果,提高了地理信息展示的效率。 2、与地图交互:通过MapControl控件,可以实现地图的缩放、平移、旋转、标注和查询等各种操作,进一步提高了地图交互性,使得用户交互更加丰富和便捷。 3、地图数据更新:MapControl可以进行地图数据的更新和保存,并且可以将地图数据导出为多种格式,如jpeg、bmp、png等格式。 4、二次开发:MapControl还可以进行二次开发,包括自定义地图符号、添加其他控件,在地图上添加自定义元素等,提高地图制作效率。 二、PageLayoutControl的作用和使用方法: 1、地图制作:PageLayoutControl主要用于地图制作,可以通过在地图中添加制图元素、插入文字、布局等来实现地图制作目的,提高了地图设计的效率。 2、与地图交互:PageLayoutControlMapControl一样,也可以进行地图的缩放、平移、旋转、标注和查询等各种交互操作,使地图设计更加丰富、精确和便捷。 3、导出地图:PageLayoutControl可以将设计好的地图导出为多种格式,如PDF、JPEG等格式,提高了地图的应用范围。 4、二次开发:PageLayoutControl也可以进行二次开发,包括自定义地图符号、添加其他控件,在地图上添加自定义元素等,提高地图设计效率和品质。 总的来说,MapControlPageLayoutControl功能丰富、应用广泛建立在ArcGIS平台上,可以满足不同层次地理信息应用的需求。通过学习和实践,可以更好地掌握和应用这些控件,提升地理信息管理和服务质量。 ### 回答3: MapControlPageLayoutControl都是ArcGIS引擎中的控件,用于实现地图和页面的显示和交互操作。 MapControl是一个用于展示地图的控件,可以显示各种类型的地图数据,如矢量数据、栅格数据以及服务数据等。通过MapControl,可以对地图进行缩放、平移、鹰眼等常见操作,同时还可以进行显示比例尺、标注、查询、编辑等功能。 另外,MapControl也提供了一些事件,如OnMouseDown、OnMouseMove、OnMouseUp等,可以方便地处理用户交互产生的事件,实现各种复杂功能。同时,MapControl还支持与其他控件的联动,如TOC(Table of Contents)控件,通过TOC可以对地图上的各个图层进行可见性控制、图层配置等操作。 PageLayoutControl是一个用于展示地图页面的控件,可以创建和编辑地图的页面元素,如图例、文本框、标准符号和尺度条等。通过PageLayoutControl,可以控制页面的布局、大小、比例尺等信息,使其符合用户的需求。 与MapControl类似,PageLayoutControl也提供了很多常见操作的功能,如页面缩放、移动、旋转等,同时还可以进行图层显示、查询、编辑等功能。另外,PageLayoutControl也提供了一些事件,如OnMouseDown、OnMouseMove、OnMouseUp、OnKeyDown、OnKeyUp等,用于处理用户交互产生的事件。 总之,MapControlPageLayoutControl都是ArcGIS引擎中非常重要的控件,分别用于地图和页面的展示和交互操作,无论在地图制图、空间分析还是数据可视化方面都有着广泛的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值