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

  • 相关阅读:
    CentOS 6的服务器后执行yum后发现出现Error: Cannot find a valid baseurl for repo: base解决办法
    C# 8字节byte数组转int
    Unity Packages 介绍
    开发笔记:服务端返回三/多级菜单数据的几种不同实现
    Grafana Azure Data Explorer Plug-In 中国区 ADX 支持
    Redash 连接中国区 Azure Data Explorer
    爆竹声中贺新年-- KEDA(Kubernetes Event-driven Autoscaling) 带你烟火秀
    生产随机码包含数字+字母
    关于串口通信发送组合键方法
    python 正则匹配一串字符串的负数和正数,合并两个列表为字典
  • 原文地址:https://www.cnblogs.com/PIESat/p/10177521.html
Copyright © 2011-2022 走看看