PIE.NET-SDK插件式二次开发文档
一 PIE.Net开发环境部署
1. 开发环境部署
- 确保Win7系统已安装SP1
- 安装Visual Studio2013(支持VS2010/2012/2013/2015)
- 安装PIESDK.exe二次开发包的A版本
2.【SDK】安装后目录说明
1) Bin>>开发包
2) Config>>配置文件
3) Data>>坐标系投影及数据映射表
4) Document>帮助文件
5) Language>>语言国际化
6) Res>>按钮图标及鼠标Cursor样式
7) Sample>>实例文件
8) Style>>符号库文件
9) Template>>制图模板
检验PIEApplication.exe是否可用!
二 PIE.Net-SDK插件式开发步骤
1. 新建工程
1.1 新建项目
图2-1:新建项目
图2-2: 新建项目
注意项目框架选择.NET Framework 4,按上图红色框选择新建项目。
2. 项目属性配置,保持与SDK开发包一致
2.1 程序应用平台配置
图2-3: 配置管理器
点击下拉箭头选择配置管理器按钮。
图2-4: 配置管理器
图2-5: 配置管理器
按如图2-4、图2-5所示,分别配置debug/release的活动解决方案平台为x86;
2.2 应用程序目标框架及生成路径配置
图2-6: 项目属性
图2-7: 配置目标框架
如图2-6、2-7所示,右键打开项目属性,在【应用程序】选项卡中确定目标框架.Net Framework4,输出类型为类库。
图2-8: 配置输出路径
3. 功能实现
3.1 添加项目引用
图2-9: 添加引用
展开项目目录树,右键点击【引用】选择【添加引用】菜单项。
在弹出的引用管理器中 点击【程序集】的【扩展】项下拉选择。
图2-10: 添加引用
浏览添加上图红色框选中的类库,单击确定即可。
注意:引用项可以根据自己开发的插件功能需求进行选择。
3.2 以加载矢量数据为例新建Command命令
图2-11: 新建类
图2-12: 新建加载矢量命令
图2-13: 代码实现
通过重载OnCreate和OnClick,实现命令对象的创建,和事件里具体内容的实现。
注意:Tool(工具插件):适用于与地图或制图组件有交互的插件,只需继承自BaseTool(继承自BaseCommand),根据功能需要可重写OnMouseDown、OnMouseMove等方法,如:拉框放大、探针、画多边形等。
Command(命令插件):与地图无交互,只需继承自BaseCommand,重写OnClick方法,如:全图、居中放大、前一视图等。弹出窗体的Command继承至DesktopCommand,如空间量测工具,而这里的加载矢量数据Command继承至BaseCommand。
图2-14:初始化
在构造函数里初始化 界面按钮的样式:
m_Image为按钮背景图片;
注意:主程序首先通过配置文件查找图片,若配置文件中的图片不存在则使用工程中定义的图片。
Caption 为按钮名称;
Name 为命令对象的名称;
ToolTip 为按钮提示内容;
Checked 表示初始化时按钮是否为选中状态;
Enabled 设置初始化时按钮的可用性
图2-15:创建插件对象
通过OnCreate方法传递hook对象,也就是MapControl对象,赋值给Command对象的m_Hook和m_HookHelper
图2-16:实现加载矢量数据方法
通过以上步骤,矢量数据加载命令即创建完毕。
3.3 在主程序中调用插件
3.3.1 设置启动宿主程序PIEApplication.exe
右键项目在调试选项中,选择启动外部程序,路径为安装路径目录下\Bin\PIEApplication.exe;
图2-17: 启动宿主程序PIEApplication.exe
3.3.2 配置文件设置
图2-18:修改配置文件
在配置文件中新增Item项,设置控件类型(Type)为button,
library为插件类名,即PIE.ControlsTest.dll(带后缀的全称)
caption为控件在界面显示的名称
identity为唯一标识,格式为类库名称+命令对象名称,即PIE.ControlsTest.VectorCommand,代码中通过identity找到对应命令控件
Image 为插件的背景图片名称,图片放置位置为安装路径目录下的【Res】文件夹下
图2-19:插件控件背景图片设置
其中标签项page、group、item对应界面上的控件如下所示
图2-20:界面与配置文件对应关系
3.3.3 效果展示
图2-21:效果展示
PIE.NET-SDK插件式二次开发文档的更多相关文章
- PIE.NET-SDK组件式二次开发文档
一.PIE.Net开发环境及目录说明 1. 开发环境 确保Win7系统已安装SP1 安装Visual Studio2013(支持VS2010/2012/2013/2015) 安装PIESDK.ex ...
- ECSHOP二次开发文档【文件结构说明和数据库表分析】
最近公司又把之前的ecshop进行二次开发,之前看过一些ecshop的东西,但是都过了很久差不多都忘完了,现在得把之前的重新捡回来,特此搜到这些文档,接下来的开发工作中会方便不少. Ecshop文件结 ...
- ECSHOP 2.5.1 二次开发文档【文件结构说明和数据库表分析】
ecshop文件架构说明 /* ECShop 2.5.1 的结构图及各文件相应功能介绍 ECShop2.5.1_Beta upload 的目录 ┣ activity.php 活动列表 ┣ affich ...
- 【以前弄的老东西】DLLspy超犀利后门 (源代码+程序+使用手册+二次开发文档)
这个玩意儿是很久之前的整的.一直没有做完,但是基本功能和框架都做好了,现在发出来,希望有能力的家伙一起完成.DLLspy,绝对免杀,隐藏,HTTP请求劫持,居家旅行,杀人放火必备良药.有时间我会继续开 ...
- Typecho 二次开发文档链接
快速入门模板入门 模板制作快速入门推荐目录结构 Typecho模板的推荐页面构成模板文件说明 Typecho主题制作文件结构 页面制作制作functions文件: Typecho的functions. ...
- Android App签名打包 与 SDK开发文档
Android App签名打包签名的意义1.为了保证每个程序开发者的合法权益2.放置部分人通过使用相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改3.保证我们每次发布的版本 ...
- [翻译]开发文档:android Bitmap的高效使用
内容概述 本文内容来自开发文档"Traning > Displaying Bitmaps Efficiently",包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存 ...
- Web图片编辑控件开发文档-Xproer.ImageEditor
版权所有 2009-2014 荆门泽优软件有限公司 保留所有权利 官方网站:http://www.ncmem.com 产品首页:http://www.ncmem.com/webplug/image-e ...
- 【原创】Odoo开发文档学习之:构建接口扩展(Building Interface Extensions)(边Google翻译边学习)
构建接口扩展(Building Interface Extensions) 本指南是关于为Odoo的web客户创建模块. 要创建有Odoo的网站,请参见建立网站;要添加业务功能或扩展Odoo的现有业务 ...
随机推荐
- 《the art of software testing》第四章 测试用例的设计
白盒测试 逻辑覆盖测试: 逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术.它属白盒测试.白盒测试的测试方法有代码检查法.静态结构分析法.静态质量度量法.逻辑覆盖法.基本路径测试法.域测试.符 ...
- URAL 1133 Fibonacci Sequence(数论)
题目链接 题意 :给你第 i 项的值fi,第 j 项的值是 fj 让你求第n项的值,这个数列满足斐波那契的性质,每一项的值是前两项的值得和. 思路 :知道了第 i 项第j项,而且还知道了每个数的范围, ...
- linux 下运行 tomcat
一开始找不到表名,原来mysql 表名区分大小写. 修改参数 lower_case_table_names=1 成功运行后不能通过浏览器访问! 开启8080端口 一.关闭防火墙 firewall-cm ...
- [算法基础]Big O Notation时间复杂度计算方法
首先一点就是无视任何常量 从最简单的开始 statement; 这段时间复杂度为常数1,所以O(1). 然后 ; i < N; i++ ) statement; 这一段是线性的,则时间复杂度为N ...
- Invoke()的使用
(最近在看协程) Invoke()方法是一种委托机制 Invoke ( "SendMsg", 3 ), 意思是3秒之后调用 SendMsg() 方法 使用时应该注意以下几点: 1. ...
- git中文乱码问题
控制台中输入:git config --global core.quotepath false
- 基于redis的分布式锁的分析与实践
前言:在分布式环境中,我们经常使用锁来进行并发控制,锁可分为乐观锁和悲观锁,基于数据库版本戳的实现是乐观锁,基于redis或zookeeper的实现可认为是悲观锁了.乐观锁和悲观锁最根本的区别在于 ...
- myeclipse2014 安装maven3.3.9和maven配置本地仓库 及错误修改
结合网上的知识梳理以及自己安装的经验 myeclipse2014 安装maven3.3.9和maven配置本地仓库 及犯的错误修改 成功搞定maven 1,安装 Maven 之前要求先确定你的 J ...
- ASP.NET Core 一个Json返回类
很多时候(如Ajax)我们需要从Web应用中得到标准的反馈以便进行数据分析. 为此,我将各类返回标准化封装,客户端将统一得到 JSON:[{"status":200,"m ...
- 安装 CentOs 系统 及 Python 及 Scrapy 框架
1: 先安装Centos 系统: 为什么选择CentOs系统,而不选择Ubuntu ? 我在Ubuntu上尝试了三次安装 python 和 Scrapy ,结果都没成功,在运维老王的建议下 使用Cen ...