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);
            } 

     

  • 相关阅读:
    平均值的最值化
    GCJ 2008 R3 C 二分图匹配
    BZOJ 1013 高斯消元
    NOIP2015 d2T3 二分+树上前缀和
    9.7集训 总结
    BZOJ 1026
    BZOJ 3223
    NOIP前夕:codevs,关路灯
    NOIP前夕:codevs,解药还是毒药
    NOIP前夕:codevs,修剪花卉
  • 原文地址:https://www.cnblogs.com/PIESat/p/10248907.html
Copyright © 2011-2022 走看看