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. 示例截图

  • 相关阅读:
    Hadoop整理二(Hadoop分布式存储系统HDFS)
    Hadoop整理一(初识Hadoop)
    Unalignable boolean Series provided as indexer (index of the boolean Series and of the indexed object do not match
    Oracle登录
    神经网络一(用tensorflow搭建简单的神经网络并可视化)
    Qt程序启动画面播放(gif与swf两种动画格式)
    VS2008+GDI实现多幅图像的GIF动画制作
    C++读取特定路径下文件目录及文件名称
    求助——数据处理问题
    VC6.0读取Excel文件数据
  • 原文地址:https://www.cnblogs.com/PIESat/p/10177521.html
Copyright © 2011-2022 走看看