• PIE SDK专题制图切换模板


     

    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

    示例代码

     1          /// <summary>
     2         /// 切换模板
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>       
     6         private void barButtonItem_change_ItemClick(object sender, ItemClickEventArgs e)
     7         {
     8              //1.选择模板文件
     9             OpenFileDialog openFileDialog = new OpenFileDialog();
    10             openFileDialog.Title = "请选择要打开的模板:";
    11             openFileDialog.Multiselect = false;
    12             openFileDialog.Filter = "pmd|*.pmd|All Files|*.*";
    13             if (openFileDialog.ShowDialog() != System.Windows.Forms.DialogResult.OK) return;
    14 
    15             string filePath = openFileDialog.FileName;
    16             string fileName = System.IO.Path.GetFileNameWithoutExtension(filePath);
    17             //2.打开模板
    18             IMapDocument mapDocument = new MapDocument();
    19             if (!mapDocument.Open(filePath)) return;
    20  
    21             //克隆map;
    22             IMap map = m_pageLayoutControl.FocusMap.Clone();
    23             IList<IMap> listMap = new List<IMap>();
    24             listMap.Add(map);
    25             //替换地图
    26             mapDocument.GetPageLayout().ReplaceMaps(listMap);
    27             m_pageLayoutControl.PageLayout = mapDocument.GetPageLayout();
    28             //释放地图文档
    29             ((m_pageLayoutControl as Control).Tag as IDisposable).Dispose();
    30             (m_pageLayoutControl as Control).Tag = mapDocument;           m_pageLayoutControl.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
    31         }
    View Code

    2.5. 示例截图

  • 相关阅读:
    许多其他C++的class样本
    cocos2d-x 3.2 它 2048 —— 第三
    hdu 4035 可能性DP 成都网络游戏
    OpenWrt 主的发展版本号trunk MT7620N 无线驱动程序bug
    [leetcode]Permutation Sequence
    Java Swing编程接口(30)---列表框:JList
    [创新工场]2014创新工场校园招聘回文字符串维修
    FFmpeg来源简单分析:结构会员管理系统-AVClass
    [Angular 2] Component relative paths
    [TypeScript] Reflection and Decorator Metadata
  • 原文地址:https://www.cnblogs.com/PIESat/p/10177521.html
Copyright © 2020-2023  润新知