• PIE SDK专题制图打开模板


     

    1.    功能简介

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

         每个地图模板都是一个地图文档(PmdContents),它被保存为*.pmd文件。

          

           [模板文件]                   [植被指数模板]

         

    2. 功能实现说明

    2.1打开模板

           在PIE中,每个显示的地图都是一个地图文档(PmdContents),它可以保存为*.pmd文件。用IMapDocument接口的Open方法可以直接打开地图文档。另外我们还可以从地图文档中获得制图对象。

    2.2 实现思路及原理说明

    第一步

    选择模板文件

    第二步

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

    第三步

    调用IPageLayoutControl的LoadPmdFile方法

    第四步

    刷新视图

    2.3 核心接口与方法

    接口/类

    方法

    说明

    MapDocument

    Open ()

    打开一个地图文档

    IPageLayoutControl

    LoadPmdFile()

    加载地图文档

    2.4示例代码

          项目路径

    百度云盘地址下/PIE示例程序/09.专题制图/01打开模板

    代码位置

    FormPagelayoutDemo. barButtonItem_Open_ItemClick方法

    视频路径

    百度云盘地址下/PIE视频教程/09.专题制图/01打开模板.avi

    示例代码

     1 /// <summary>
     2 /// 打开地图工程
     3 /// </summary>
     4 private void OpenPmd()
     5 {
     6     //获取模板路径
     7     OpenFileDialog openFileDialog = new OpenFileDialog();
     8     openFileDialog.Title = "请选择要打开的地图文档:";
     9     openFileDialog.Multiselect = false;
    10     openFileDialog.Filter = "PMD|*.pmd";
    11     if (openFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
    12     string pmdNewFilePath = openFileDialog.FileName;
    13     if (string.IsNullOrEmpty(pmdNewFilePath)) return;
    14 
    15     //打开模板
    16     IMapDocument newMapDocument = new MapDocument();
    17     newMapDocument.Open(pmdNewFilePath);
    18 
    19     // 为PageLayoutControl设置PageLayout
    20     IPageLayout newPageLayout = newMapDocument.GetPageLayout();
    21     pageLayoutControl1.PageLayout = newPageLayout;
    22 
    23     // 为MapControl设置Map
    24     IMap newMap = (newPageLayout as IActiveView).FocusMap;
    25     mapControl1.FocusMap = newMap;
    26 
    27     //将mapDocument对象存入tag属性中,以备后续使用
    28     (pageLayoutControl1 as Control).Tag = newMapDocument;
    29 
    30     // 激活并刷新控件
    31     if (tabControlMain.SelectedIndex == 0)
    32     {
    33         pageLayoutControl1.DeActivate();
    34         mapControl1.Activate();
    35         mapControl1.PartialRefresh(ViewDrawPhaseType.ViewAll);
    36     }
    37     else
    38     {
    39         mapControl1.DeActivate();
    40         pageLayoutControl1.Activate();
    41         pageLayoutControl1.PartialRefresh(ViewDrawPhaseType.ViewAll);
    42     }
    43 }
    View Code

    2.5 示例截图

  • 相关阅读:
    时间相关概念
    如何查询Oracle EBS接口表
    生成随机数
    web.config/app.config敏感数据加/解密的二种方法
    浅谈.NET下的多线程和并行计算
    禁用浏览中的Tab键
    主从表关联,判断子表全部符合条件后主有才有效
    windows xp 中的administrator帐户不在用户登录内怎么解决?
    WebResourceCompression压缩模块以及.Net 程序脱离.net framework框架运行
    使用架构(XSD)验证XML文件
  • 原文地址:https://www.cnblogs.com/PIESat/p/10175657.html
Copyright © 2020-2023  润新知