版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录1 实现基础12 实习目的13 系统总体设计13.1 设计思路13.2 主要实现功能24 实现过程24.1 地图加载、保存24.2 地图地图放大、缩小34.3 数据查询与选择34.4 绘制地图45 功能实现的代码66 总结与体会13参 考 文 献141 实现基础1 arcgis engine 9.3开发平台2 visual studio.net3 c#语言2 实习目的 本次实习题目为空间数据读取与显示功能实现,旨在对上学期学习过的arcgis engine开发的进一步深化与理解。本次实习的总体思路为:在对arcgis engine体系结构以及arcgis engine的类库了解的基础上,
2、在vs中使用arcgis engine的控件等的实际运用于操作进行进一步的强化,将理论知识运用与实践。3 系统总体设计3.1 设计思路1 启动visual studio.net,从“新建项目”对话框中创建一个新的visual c# “windows 应用程序”项目;2 将项目命名为“myproject”,并选择“位置”保存该项目;3 在“工具箱”空白处单击鼠标右键,在弹出的快捷菜单中选择“添加选项卡”,人后在新增选项卡上输入“esri”作为选项卡标签;4 在“工具箱”的“esri”标签上单击鼠标右键,在弹出的“选择工具箱项”对话框选择“.net framework 组件”选项卡,选中“axma
3、pcontrol”、“axpagelayoutcontrol”、“axtoccontrol”和“axtoolbarcontrol”等复选框,单击“确定”按钮,将所选择的控件添加到工具栏上;5 在“项目”菜单中选择“添加引用”,在弹出的“添加引用”对话框中,双击“esri.arcgis.carto”、“esri.arcgis.display”、“esri.arcgis.geometry”、“esri.arcgis.system”、“esri.arcgis.systemui”和“esri.arcgis.utility”等选项,单击“确定”按钮;6 打开.net窗体,双击“工具箱”中“esri”标签
4、栏中的axmapcontrol控件,将mapcontrol加入到窗体上,再将axtoolbarcontrol也添加到窗体上;7 在窗体上双击显示窗体代码窗口,加载图层到mapcontrol中,在form_load事件中添加地图文档加载代码;8 设置toolbarcontrol.与mapcontrol控件关联;9 在做好基本界面以后在此基础上加以相应的功能并予以实现。3.2 主要实现功能1 地图加载、保存;2 图层操作(放大、缩小、漫游、全图);3 数据查询与选择;4 绘制图形;4 实现过程4.1 地图加载、保存1 在vs中创建一个windows应用程序项目,命名为myproject,开发语言选
5、择c#。在左边的工具箱中选择“licensecontrol”控件,拖放到默认的“form1”窗体上,用同样的方法在窗体上添加“mapcontrol1”、“mapcontrol2”和toccontrol,以及一个按钮控件“button1”,将按钮控件文本修改后如下图:图1 框图图2 地图加载4.2 地图地图放大、缩小2 在窗体上放置2个按钮控件“button7”、“button8”,修改控件的文本后如下图:图3 放大图4 缩小4.3 数据查询与选择3 在窗体上放置5个按钮控件“button2”、“button3”、“button4”、“button5”、“button6”,修改控件的文本如下图:
6、图5 点选图6 圆选4.4 绘制地图4 在窗体上放置4个按钮控件“button9”、“button10”、“button11”、“button12”,修改控件的文本如下图:图7 画圆对象图8 画矩形对象图9 画多边形对象5 功能实现的代码namespace myproject public partial class form1 : form public form1() initializecomponent(); private void form1_load(object sender, eventargs e) loadmapdocument(); private void butto
7、n1_click(object sender, eventargs e) loadmapdocument(); private void loadmapdocument() system.windows.forms.openfiledialog openfiledialog; openfiledialog = new openfiledialog(); openfiledialog.title = 打开地图文档; openfiledialog.filter = map documents(*.mxd)|*.mxd; openfiledialog.showdialog(); string fil
8、epath = openfiledialog.filename; if (axmapcontrol1.checkmxfile(filepath) axmapcontrol1.mousepointer = esricontrolsmousepointer.esripointerhourglass;axmapcontrol1.loadmxfile(filepath, 0, type.missing);axmapcontrol1.mousepointer = esricontrolsmousepointer.esripointerdefault; private void loadeagleeyed
9、ocument() system.windows.forms.openfiledialog openfiledialog; openfiledialog = new openfiledialog(); openfiledialog.title = 打开鹰眼地图文档; openfiledialog.filter = map documents(*.mxd)|*.mxd; openfiledialog.showdialog(); string filepath = openfiledialog.filename; if (axmapcontrol2.checkmxfile(filepath) ax
10、mapcontrol2.mousepointer = esricontrolsmousepointer.esripointerhourglass;axmapcontrol2.loadmxfile(filepath, 0, type.missing);axmapcontrol2.mousepointer = esricontrolsmousepointer.esripointerdefault; private void axmapcontrol1_onmapreplaced(object sender, esri.arcgis.controls.imapcontrolevents2_onmap
11、replacedevent e) loadeagleeyedocument(); private void axmapcontrol1_onmousedown(object sender, imapcontrolevents2_onmousedownevent e) axmapcontrol1.mousepointer = esricontrolsmousepointer.esripointercrosshair; igeometry geometry = null; switch (flag) case 2:esri.arcgis.geometry.point point = new esr
12、i.arcgis.geometry.pointclass();point.x = e.mapx; point.y = e.mapy; geometry = point as igeometry; break; case 3: geometry = axmapcontrol1.trackcircle(); break; case 4: geometry = axmapcontrol1.trackrectangle(); break; case 5: geometry = axmapcontrol1.trackpolygon(); break; esri.arcgis.geometry.ienve
13、lope ipenv; if (flag = 7) ipenv = axmapcontrol1.trackrectangle(); axmapcontrol1.extent = ipenv; else if (flag = 8) /ipenv = axmapcontrol1.trackrectangle(); ipenv = axmapcontrol1.extent; ipenv.expand(2, 2, true); axmapcontrol1.extent = ipenv; else if (flag = 9) geometry = axmapcontrol1.trackcircle();
14、 else if (flag = 10) geometry = axmapcontrol1.trackrectangle(); else if (flag = 11) geometry = axmapcontrol1.trackpolygon(); else if (flag = 12) ipoint point = new pointclass(); point.x = e.x; point.y = e.y; geometry = point as igeometry; axmapcontrol1.map.selectbyshape(geometry, null, false);axmapc
15、ontrol1.refresh(esriviewdrawphase.esriviewgeoselection, null, null); private void axmapcontrol1_onextentupdated(object sender, imapcontrolevents2_onextentupdatedevent e) ienvelope envelope = (ienvelope)e.newenvelope; igraphicscontainer graphicscontainer = axmapcontrol2.map as igraphicscontainer; iac
16、tiveview activeview = graphicscontainer as iactiveview; graphicscontainer.deleteallelements (); ielement element = new rectangleelementclass(); element.geometry = envelope ; ilinesymbol outlinesymbol = new simplelinesymbolclass(); outlinesymbol.width = 2; outlinesymbol.color = getcolor(255, 0, 0, 25
17、5); ifillsymbol fillsymbol = new simplefillsymbolclass(); fillsymbol.color = getcolor(9, 0, 0, 0); fillsymbol.outline = outlinesymbol ; ifillshapeelement fillshapeelement = element as ifillshapeelement; fillshapeelement.symbol = fillsymbol; graphicscontainer.addelement(ielement)fillshapeelement , 0)
18、; activeview.partialrefresh(esriviewdrawphase.esriviewgraphics, null, null); private irgbcolor getcolor(int r, int g, int b, int t) irgbcolor rgbcolor = new rgbcolorclass(); rgbcolor.red = r; rgbcolor.green = g; rgbcolor.blue = b; rgbcolor.transparency = (byte)t; return rgbcolor; private void axmapc
19、ontrol2_onmousedown_1(object sender, imapcontrolevents2_onmousedownevent e) ipoint point = new pointclass(); point.putcoords(e.mapx, e.mapy); axmapcontrol1.centerat(point); int flag = 0; private void button2_click(object sender, eventargs e) flag = 2; private void button3_click(object sender, eventa
20、rgs e) flag = 3; private void button4_click(object sender, eventargs e) flag = 4; private void button5_click(object sender, eventargs e) flag = 5; private void button6_click(object sender, eventargs e) iactiveview pactiveview = (iactiveview)(axmapcontrol1.map); pactiveview.partialrefresh(esriviewdra
21、wphase.esriviewgeoselection, axmapcontrol1.get_layer(0), null); axmapcontrol1.map.clearselection(); pactiveview.partialrefresh(esriviewdrawphase.esriviewgeoselection, axmapcontrol1.get_layer(0), null); private void button7_click(object sender, eventargs e) axmapcontrol1.mousepointer = esricontrolsmo
22、usepointer.esripointerzoomin; flag = 7; private void button8_click(object sender, eventargs e) axmapcontrol1.mousepointer = esricontrolsmousepointer.esripointerzoomout; flag =8; private void button9_click(object sender, eventargs e) flag = 9; private void button10_click(object sender, eventargs e) f
23、lag = 10; private void button11_click(object sender, eventargs e) flag = 11; private void button12_click(object sender, eventargs e) flag = 12; private void drawmaptext(igeometry geometry) irgbcolor color = new rgbcolorclass(); color.red = 255; color.blue = 0; color.green = 0; itextsymbol txtsystem = new textsymbolclass(); txtsystem.color = color; /txtsystem.text = 测试drawtext; object symbol = txtsystem; axmapcontrol1.drawtext(geometry, 测试drawtext, ref symbol); private void drawmapshape(igeometry pgeom) irgbcolor pcolor; pcolor = new rgbcolorclass();
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《肺栓塞诊疗及护理》课件
- 【创新设计】2021届高考化学(广东专用)一轮总复习限时训练:第四章-课时1-碳、硅及其化合物
- 【创新设计】2022年高三生物(人教版)一轮复习-基础课时案33-种群的特征和数量变化-考点探究
- 【同步备课】2020年高中物理教学设计(新人教必修二)7.4《重力势能》2
- 【名师一号】2020-2021学年新课标B版高中数学必修5-第一章-解三角形-测试题
- 【名师课堂-备课包】2013-2020学年高一下学期化学人教版必修2教案-第三章第1节
- 【同步课堂】2020年化学人教版选修5教案:1-1-有机化合物的分类
- 《创新心理学》课件
- 小学五年级下册科学教学计划:启发创造的思维能力
- 《从语言的适切性》课件
- 培养学生深度思考的能力
- 中医医院运营方案
- 【瑞幸咖啡财务分析报告(附财务报表)5300字(论文)】
- 过敏性鼻炎-疾病研究白皮书
- 乌头碱中毒急诊科培训课件-
- 三轴水泥搅拌桩施工质量措施
- 贵州茅台2023审计报告
- 幼儿园学前教育五以内的数字比大小练习题
- 高速铁路沉降观测与评估
- IT项目周报模板
- 地脉动测试原理及应用
评论
0/150
提交评论