1.    功能简介

专题图是突出且较完备的表示一种或几种自然或社会经济现象,从而使地图起到专门化的作用。与普通地图不同,专题图的表示内容丰富多彩,多种多样。在实际业务应用中经常会用同一张地图出很多个专题图,为此PIESDK提供了不同模板之间切换的功能。

2. 功能实现说明

2.1.切换模板

切换模板最主要的就是地图的克隆,以及地图文档的释放与加载。

2.2. 实现思路及原理说明

第一步

选择模板文件

第二步

创建一个mapDocument,并打开模板文件

第三步

克隆当前视图中的Map,并获取模板的PageLayout

第四步

调用IPageLayout的ReplaceMaps方法替换为当前地图

第五步

将IPageLayoutControl.PageLayout属性替换为新的PageLayout

第六步

释放原来的地图文档

第七步

刷新视图

2.3 . 核心接口与方法

接口/类

方法

说明

IMapDocument

Save ()

保存地图文档

IPageLayout

ReplaceMaps()

替换地图

2.4. 示例代码

项目路径

百度云盘地址下/PIE示例程序/09.专题制图//04切换模板

代码位置

FormPagelayoutDemo. barButtonItem_change_ItemClick方法

视频位置

百度云盘地址下/PIE示例程序/09.专题制图/04切换模板.avi

示例代码

          /// <summary>
/// 切换模板
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void barButtonItem_change_ItemClick(object sender, ItemClickEventArgs e)
{
//1.选择模板文件
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Title = "请选择要打开的模板:";
openFileDialog.Multiselect = false;
openFileDialog.Filter = "pmd|*.pmd|All Files|*.*";
if (openFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) return; string filePath = openFileDialog.FileName;
string fileName = System.IO.Path.GetFileNameWithoutExtension(filePath);
//2.打开模板
IMapDocument mapDocument = new MapDocument();
if (!mapDocument.Open(filePath)) return; //克隆map;
IMap map = m_pageLayoutControl.FocusMap.Clone();
IList<IMap> listMap = new List<IMap>();
listMap.Add(map);
//替换地图
mapDocument.GetPageLayout().ReplaceMaps(listMap);
m_pageLayoutControl.PageLayout = mapDocument.GetPageLayout();
//释放地图文档
((m_pageLayoutControl as Control).Tag as IDisposable).Dispose();
(m_pageLayoutControl as Control).Tag = mapDocument; m_pageLayoutControl.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
}

2.5. 示例截图

PIE SDK专题制图切换模板的更多相关文章

  1. PIE SDK专题制图打开模板

    1.    功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用时只需要打开该模板,加载相应数据,就可以直接出图了,省去了重复制作图幅的麻烦,方 ...

  2. PIE SDK专题制图保存模板

    1.    功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用模板时只需要打开该模板,加载相应数据,就可以直接出图,省去了重复制作图幅的麻烦, ...

  3. PIE SDK专题制图另存模板

    1.功能简介 在PIE SDK中,所有的制图元素.视图范围以及排版等都可以保存成一个模板,以供多次重复使用.使用模板时只需要打开该模板,加载相应数据,就可以直接出图,省去了重复制作图幅的麻烦,方便快捷 ...

  4. PIE SDK专题制图下地图的的操作

    1.    功能简介 制图模式和地图模式下用的地图是同一份地图,那么在制图模式下如果需要对地图进行操作(例如地图的拉框放大,缩小),那么该如何操作呢,地图范围视图变化在制图模式下该如何监听呢,下面主要 ...

  5. PIE SDK专题制图下屏幕坐标转地图坐标

    1.    功能简介 PIESDK提供了专题制图下鼠标屏幕坐标转地图坐标功能. 2. 功能实现说明 2.1屏幕坐标转地图坐标 此功能用到了IPageLayout.ToMapPoint()方法,它的主要 ...

  6. PIE SDK 文章目录索引

    1.PIE SDK介绍 1.1.  PIE软件介绍 1.2.  PIE SDK介绍 1.3.  PIE支持项目介绍 1.4.  PIE.NET-SDK插件式二次开发介绍 1.5.  PIE.NET-S ...

  7. PIE SDK Command&&Tool工具命令一览表

    PIE SDK Command&&Tool工具命令一览表 编号 模板 名称(中文) Command&Tool 程序集 备注 1 数据管理 加载栅格数据 PIE.Controls ...

  8. PIE SDK导出图片

    1. 功能简介 导出图片功能可以将制图模板以及视图.绘制元素.制图元素等保存为图片.本示例程序实现了专题制图下导出图片功能. 2. 功能实现说明 2.1导出图片 2.2 实现思路及原理说明 调用IPa ...

  9. PIE SDK组件式开发综合运用示例

    1. 功能概述 关于PIE SDK的功能开发,在我们的博客上已经分门别类的进行了展示,点击PIESat博客就可以访问,为了初学者入门,本章节将对从PIE SDK组件式二次开发如何搭建界面.如何综合开发 ...

随机推荐

  1. 几个SQL小知识(转)

    出处:http://www.cnblogs.com/wuguanglei/p/4205976.html 写在前面的话:之前做的一个项目,数据库及系统整体构架设计完成之后,和弟兄们经过一段时间的编码,系 ...

  2. HDU 3729 I'm Telling the Truth (二分匹配)

    题意:给定 n 个人成绩排名区间,然后问你最多有多少人成绩是真实的. 析:真是没想到二分匹配,....后来看到,一下子就明白了,原来是水题,二分匹配,只要把每个人和他对应的区间连起来就好,跑一次二分匹 ...

  3. OkHttp3的简单使用(二)

    OkHttp3的简单封装 public class OkHttpUtil { public static final String TAG="OkHttpUtil"; privat ...

  4. C# - dynamic 特性

    dynamic是FrameWork4.0的新特性.dynamic的出现让C#具有了弱语言类型的特性.编译器在编译的时候不再对类型进行检查,编译期默认dynamic对象支持你想要的任何特性. 比如,即使 ...

  5. 【C#】MVC+EF+LINQ 综合小项目

    第一,创建数据库 create table category(id int primary key,name nvarchar(20)) create table news(id int primar ...

  6. 【SQL】- 基础知识梳理(一) - 数据库

    一.引言 知识分享这个事情在公司会议上被提出过几次,可一直因各种事情耽搁下来,“我不如地狱,谁入地狱”,怀着这样一种心态,写下了 数据库系列知识分享. 本文将一步步通过循序渐进的方式带你去了解数据库. ...

  7. C#中的Linq使用

    First()与FirstOrDefault() 如何结合Expression 如何拼接以避免复杂的switch语句

  8. 打开Word 2010 老提示安装 Office single image 2010

    解决办法: WScript.Echo "Try to repair registry key..."  'verify Office version  Set objshell = ...

  9. js实现深拷贝

    type函数 首先我们要实现一个getType函数对元素进行类型判断,直接调用Object.prototype.toString 方法. function getType(obj){ //tostri ...

  10. 【转】C#使用Oracle.ManagedDataAccess.dll

    源地址:https://www.cnblogs.com/goldenbridge/p/7812081.html