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);
}
转载于:https://www.cnblogs.com/Giser5945/p/3309374.html
MapControl与PageLayoutControl联动相关推荐
- 《ArcGIS Engine+C#实例开发教程》第三讲 MapControl与PageLayoutControl同步
<ArcGIS Engine+C#实例开发教程>第三讲 MapControl与PageLayoutControl同步 原文:<ArcGIS Engine+C#实例开发教程>第三 ...
- PageLayoutControl的基本操作
整理了下对PageLayoutControl的基本功能操作 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 2 ...
- 基于C#的AE二次开发之主界面设计
上篇文章介绍了AE的安装与配置,下面介绍在VS2012中AE的简单主界面设计方法. 一.项目创建 1.打开VS2012建立项目 在打开界面后,点击新建项目,在弹出的界面中选择Visual C#--Ar ...
- ae编程语言as_AE开发 入门教程
此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方法和步骤. 你可以在下面的目录下找到相应的样例程序: /DeveloperKit/Samples/D ...
- PIE SDK图层树伙伴控件示例
1. 功能简介 TocControl控件的主要作用是显示当前加载的图层有哪些.采用什么样的符号等,目的是使用户对当前加载的数据和结构有一个总体的把握.与之相关联的伙伴控件有MapControl,Pa ...
- arcgis开发常用源码
arcgis开发常用源码 1.点上生成面的代码 if (m_pFeatureLayer.FeatureClass.ShapeType == esriGeometryType.esriGeometryP ...
- 《ArcGIS Engine+C#实例开发教程》第一讲桌面GIS应用程序框架的建立
原文:<ArcGIS Engine+C#实例开发教程>第一讲桌面GIS应用程序框架的建立 摘要:本讲主要是使用MapControl.PageLayoutControl.ToolbarCon ...
- 利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用
Dixon 原文 用ArcGIS Engine.VS .NET和Windows控件开发GIS应用 此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方 ...
- 《ArcGIS Engine+C#实例开发教程》第七讲 图层符号选择器的实现2
<ArcGIS Engine+C#实例开发教程>第七讲 图层符号选择器的实现2 原文:<ArcGIS Engine+C#实例开发教程>第七讲 图层符号选择器的实现2 摘要:在第 ...
- ArcGIS Engine开发之旅02--ArcGIS Engine中的类库
原文 ArcGIS Engine开发之旅02--ArcGIS Engine中的类库 System类库 System类库是ArcGIS体系结构中最底层的类库.System类库包含给构成ArcGIS的其他 ...
最新文章
- mysql命令技巧_Mysql命令行技巧汇总
- debian清除无用的库文件(清理系统,洁癖专用)
- proto 指定字段json名_比json快5倍的protobuf了解一下
- 不要再问我三次握手和四次挥手
- Oracle自定义函数(不断更新)
- 如何优化网站服务器来提高吞吐量并减少延迟时间
- 基于JAVA+SSH+MYSQL的工资管理系统
- 最小可用ID(4种方法,详细讲解)
- 解决安装Xcode后无法在终端执行gcc的问题
- SqlSessionFactory和SqlSessionTemplate
- wpe手机中文汉化版下载_wpe中文版
- [系统修复]Win XP中Winsock2系统文件破坏导致无法上网
- windows下icns转png或ico
- 计算机英语新词的认知语义阐释论文,英语新词的认知语义分析
- EMV规范(九)——持卡人验证(CVM)三
- 亚马逊服务器 购买 流程_亚马逊环如何使我们对购买的每种产品都抱有偏执
- mysql 查询view_MySQL之视图(VIEW)
- JeeSite4 一些前端资料 - 来自作者ThinkGem
- 【Blender批量合并fbx动画到单个gltf】
- 培训班H5宣传单怎么做?快进来拿方案~
热门文章
- mysql 0000-00-00无效_mysql0000-00-00日期异常及解决方法
- 【2019徐州网络赛:G】Colorful String(回文树+二进制统计回文串内不同字母数技巧)
- 【2017西安邀请赛:A】XOR(区间异或最大值多次查询---线段树+线性基合并)
- 【2019南昌邀请赛网络赛I:】Max Answer(st表+单调栈(新模版)+分析)
- 感悟:决定一个系统走势是多因素构成,而非单一因素决定
- 0字符串 if mapper test_降龙-第20章:Mapper解析
- 机器学习- 吴恩达Andrew Ng Week11 知识总结 Photo OCR
- 计算机博弈军旗程序,军棋机器人UCT算法及计算机博弈行为研究
- Java反射机制--反射概述
- 学qt的都干什么工作_【板绘前景】学板绘可以干什么工作?学多久才可以工作?好学吗?...