zoukankan      html  css  js  c++  java
  • 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 示例截图

  • 相关阅读:
    vue.nextTick()方法简单理解
    vue中 hash和history的区别
    Set,Map一些常见的遍历方法以及转化方法
    vue中import和require的用法
    $route和 $router的区别是什么
    vue vmodel的总结
    vue router的钩子函数总结
    了解promise和async await的区别
    ZOJ 1642 Match for Bonus
    UVA 10003 Cutting Sticks
  • 原文地址:https://www.cnblogs.com/PIESat/p/10175657.html
Copyright © 2011-2022 走看看