PIE for NET SDK二次开发文档.docx
-
资源ID:4887676
资源大小:105.09KB
全文页数:8页
- 资源格式: DOCX
下载积分:15金币
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
PIE for NET SDK二次开发文档.docx
PIE.NET-SDK组件式二次开发文档一、PIE.Net开发环境及目录说明1. 开发环境 确保Win7系统已安装SP1 安装 Visual Studio2013 (支持 VS2010/2012/2013/2015) 安装PIESDK.exe二次开发包2. 【SDK】安装后目录说明山 Bin2017/2/151517文件表山 Config2017/2/151&:1S文仲夫Jt Data2017/2/1515:17文件夹iH Document2017/2/1515:17划供Language2017/2/1515:17文件无2017/2/15 1517 文件夫X S-ainple2017/2/1515:17文件支席 S-tyle2017/2/1515117文件关Template2017/2/1515:17文彳犊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方 法,如:全图、居中放大、前一视图等。L WinFormaa(1)swvMuslcttswindows ®#msMp 济娥哗w® 皿。济娥<SUSL#3windowswMfflMyrt.Nef Framewos-4 wHMtfrRMapManager«sol&阳约.*堂隼5-JgaF!一宿 E g 彖.防毋口 理.主 mr-i一 二弱竺IF用笙KF 孚NSa-ffF #=SMim q>X芷药: 琶 部 mvsmlAr.宇圣% OH+5 手次 1JS13E Orli-FwfsN-空IDiaw:*iM»sB JusWFs鼻寇mliQlolsnw®!必 J加§。饕翎?1 W部?1 !:L亶Qim?学土 <kuE+ Tfse.n T osmxflssw- SEt LwV LUuIC.n -TTsu-ldUJin £VL n>£3tes* 0sn_-flwaT- QOLn-E噂rE XAF L-号csiRhEl专舌hLWCFwarkROW-I- -£1占至,泛 Bofc*2E&7m-IL4kTmmphbeD昏=-:YkE 是 &RI-all®->yslia 田雷-# he 度tf-,富4#e ASF “希 T w*a-ct.Kt.=ilftl<端<¥ mf wr £<ni 罔即阑-JI 蚣一圭_言|:町通阉蜀i.s 冬吕gIH_3r 埔一r-1廿隅r1fbn* 息 0:曳UE!一 s 胡*aaJI-芸w-晶TI-PMn 男 rl-t w rs-fc R R R R 2I?(2)设置Debug和Release环境,新建选择x86平台。(3)配置 PIE.NET_SDK:在 M叩Manager.csproj 的同级目录下新建 “APPDebug应用程亨生5E生EOT牛映iEBOQi .活剥D晶11珀二J 平告(Mb 居gfi&J=文件夹,修改生成输出路径位置为./ APPDebug/Bin。引* 土 E:.晦弓拜囹径=.发布?:DEBUG 以呈1项® 戮 riy.cE san目际平§面:.KBCt苣云22技哩口允忧化代的SSflKS -巨军淌m4禁止显示警告制:.*.而回©点砖仙盛出-Si出踏程回:I APPDebugBlnJ I就知瓦i” XML亦女料|11 com M3R作注flflic;瑚溜维性国(4)代码编写A:H具箱里MapControl、TOCControl控件拖拽绑定添加窗体,初始化绑定MapControl、TOCControl控件代码: tocControll.SetBuddyControl(mapControll);窗体运行显示如下:B:选择工程引用,根据自己开发的插件功能需求进行选择,浏览本机已经安装 位置的心目录下添加类库,单击确定即可。C:调用以地图拉框放大(Too 1)和全图(Command)为例/ <summary>/拉框放大/ </summary>/ <param name="sender"></param>/ <param name="e"></param>private void too1StripButton_MapZoomIn_C1ick(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)为例naw spaceI /f/ Dno/TV </sxBWJ!Ey>i个引用ppblit C13$r Oh : b -e?c 1EH变星走义QqrTTm|.pu"bLic oveiTide void OnJiDusciDcvrLsendecj Syst cm. WindoupsFqz*sb ItoureE'i.'-cntrs-E:P?7 auMascjM,T:引用public HMJ&Om I 构造函教iQ个引用 publicveid OriCLieh以全图显示(C ommand)为例public class FullEnt ent : BaseCannand(private lAcilvbVlbw m_Active¥iev = null;/ 括山nia可/ "目ijjuvaryth姑一初f白=围瘢/ ;thia-Kane = J MaDFullEtent;I】- -忘酿迎陌this.Checked.二 false;thia-Enabled - false;/ / / / 1,<STumary>/si-LTUiaiT/<paraii nanB= " hook" ></par an?八”I庄<3iinuiary/皱僦./aiuuiaryM fl»| public avemde void iDriLlick QJ 1if i; 11 hi * Enabled) return.: lEnvelope currentExtent = n_Act Li7eViewa FullExtent.i± (currentEKtsfLt = null | | (cut:&ntExtsrit as Iteunelry) a IsVslidO 二二 false) r&tijm;n_Ad ive¥i ehj. Ext ent = cur r ent Ezl ent;iveViev. P:artialEef rash (YievDrawPhaselpe, VievALLj ;构造函数中的定义可个性化定制,控制实际的显示名称、提示和图片(m_Image),鼠 标样式放置在构造函数里设置,如鼠标事件里需要改变鼠标样式,再在鼠标事件里控制即可。(1)构造函数public ZoomIn()(this.Caption ="拉框放大"this.Name = "MapZoomln"this.ToolTip ="拉框放大地图"(Caption 属性)(名称)(提示)this.Checked = false;(插件是否选择)this.Enabled = false;(插件是否可用)(鼠标样式在构造函数)this.Cursor = new Cursor(new System.IO.MemoryStream(Properties.Resources.Zoomln);(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);