zoukankan      html  css  js  c++  java
  • PIE.NET-SDK组件式二次开发文档

     

    一、PIE.Net开发环境及目录说明

    1.   开发环境

    •  确保Win7系统已安装SP1
    •  安装Visual Studio2013(支持VS2010/2012/2013/2015)
    •  安装PIESDK.exe二次开发包

    2. 【SDK】安装后目录说明

     

    1)        Bin>>开发包

    2)        Config>>配置文件

    3)        Data>>坐标系投影及数据映射表

    4)        Document>>帮助文件

    5)        Language>>语言国际化

    6)        Res>>按钮图标及鼠标Cursor样式

    7)        Sample>>实例文件

    8)        Style>>符号库文件

    9)        Template>>制图模板

    二、PIE.NET_SDK二次开发实例

         Tool(工具插件):适用于与地图或制图组件有交互的插件,只需继承自BaseTool(继承自BaseCommand),根据功能需要可重写OnMouseDown、OnMouseMove等方法,如:拉框放大、探针、画多边形等。

        Command(命令插件):与地图无交互,只需继承自BaseCommand,重写OnClick方法,如:全图、居中放大、前一视图等。

    1. WinForm插件调用

      (1)新建Visual C#的Windows 窗体应用程序,选择新建→项目,选择Visual C #的Windows窗体应用程序,设置.Net Framework4以及工程名称“MapManager”和位置。

     

      (2)设置Debug和Release环境,新建选择x86平台。

     

      (3)配置PIE.NET_SDK:在MapManager.csproj的同级目录下新建“APPDebug”文件夹,修改生成输出路径位置为../ APPDebug/Bin。

     

      (4)代码编写

    A:工具箱里MapControl、TOCControl控件拖拽绑定

    添加窗体,初始化绑定MapControl、TOCControl控件代码:

    tocControl1.SetBuddyControl(mapControl1);

    窗体运行显示如下:

     

    B:选择工程引用,根据自己开发的插件功能需求进行选择, 浏览本机已经安装位置的【Bin】目录下添加类库,单击确定即可。
    C:调用

    以地图拉框放大(Tool)和全图(Command)为例

            /// <summary>
            /// 拉框放大
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void toolStripButton_MapZoomIn_Click(object sender, EventArgs e)
            {
                ITool tool = new MapZoomInTool();
                ICommand command = tool as ICommand;
                command.OnCreate(mapControl1);
                mapControl1.CurrentTool = tool;
            }
            /// <summary>
            /// 全图
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void toolStripButton_FullExtent_Click(object sender, EventArgs e)
            {
                ICommand cmd = new FullExtentCommand();
                cmd.OnCreate(mapControl1);
                cmd.OnClick();
            }

    2. 插件代码实现

        新建插件.cs类

    以地图拉框放大(Tool)为例

    以全图显示(Command)为例

     

    构造函数中的定义可个性化定制,控制实际的显示名称、提示和图片(m_Image),鼠标样式放置在构造函数里设置,如鼠标事件里需要改变鼠标样式,再在鼠标事件里控制即可。

    设置Cursor符号cur样式

     

      (1)构造函数

      public ZoomIn()
            {
                this.Caption = "拉框放大";              (Caption属性)
                this.Name = "MapZoomIn";               (名称)
                this.ToolTip = "拉框放大地图";           (提示)
                this.Checked = false;                  (插件是否选择)
                this.Enabled = false;                  (插件是否可用)    (鼠标样式在构造函数)
                this.Cursor = new Cursor(new System.IO.MemoryStream(Properties.Resources.ZoomIn));   
            }

      (2)创建插件对象

        public override void OnCreate(object hook) 
            {
                base.OnCreate(hook);
                m_ActiveView = m_HookHelper.ActiveView;      (当前激活视图获取)
            }

      (3)单击方法

       public override void OnClick()
            {
                if (!this.Enabled) return;
            }

      (4)鼠标事件

        以拉框放大为例:鼠标按下时获取拉框,并给地图设置范围变化、刷新。

             /// <summary>
            /// 鼠标按下
            /// </summary>
            /// <param name="sender">触发对象</param>  
            /// <param name="e">鼠标事件参数</param>
        public override void OnMouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
            {
                if (e.Button != System.Windows.Forms.MouseButtons.Left) return;   //判断左键
                m_ActiveView.Extent = (m_HookHelper.GetContent() as IMapControl).TrackRectangle();
                m_ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
            } 

     

  • 相关阅读:
    智慧养老民政监管平台建设方案
    CF600E Lomsat gelral dsu on tree
    dsu on tree详解
    【Spring 从0开始】Spring5 新功能,整合日志框架 Log4j2
    【Spring 从0开始】JdbcTemplate 数据库事务管理
    【Spring 从0开始】JdbcTemplate 数据库事务参数
    【Spring 从0开始】JdbcTemplate 数据库事务管理
    【Spring 从0开始】JdbcTemplate 操作数据库
    【Spring 从0开始】AOP 操作
    【Spring 从0开始】AOP 操作中的相关术语、环境准备
  • 原文地址:https://www.cnblogs.com/PIESat/p/10248907.html
Copyright © 2011-2022 走看看