GIS二次开发试验教学_第1页
GIS二次开发试验教学_第2页
GIS二次开发试验教学_第3页
GIS二次开发试验教学_第4页
GIS二次开发试验教学_第5页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、GIS二次开发实验教学大纲一、实验课的性质与任务本课程实验大纲是面向地理信息系统专业学生开设的GIS二次开发实验课计划指导大纲,是依据GIS二次开发课程教学计划指导大纲编制。本课程主要讲述了利用C糊口ArcGIS的AOAE组件进行ArcGIS平台上的二次开发的基本流程,结合该课程教学计划大纲的相应内容,设计了6个单项实验和综合实验,力求提高学生的动手能力,做到理论和实践相结合。使学生在实验过程中掌握GIS二次开发的基本思想、原理,能使用C擀口ArcGIS的AOAE组件实现基于ArcGIS的程序设计。二、实验目的与要求1 .实验目的要求学生利用所学软件开发和GIS的基础知识和理论,参考有关标准,

2、结合一个小型GIS系统,进行分析设计。在具体分析设计过程中,允许适当加入一些课本中没有涉及到的知识、工具以及一些新方法,作为对课程的一种扩展。2 .实验要求通过本课程设计,应使学生了解完成一个GIS二次开发的完整过程,学习相关语言及相应的GIS组件开发技术。1)在实验中,要求学生个人独立思考,设计算法流程,编写出程序,完成上机调试,最后给出实验报告。2)在实验中更好地理解和掌握GIS设计与应用这门课程中所学的基本理论和方法,强化程序设计和二次开发GIS软件的能力。、实验项目及内容提要GIS设计与应用序号实验项目编号实验名称学时必做选做学分数实验类型内容提要基本操作验证综合设计11简单ArcEn

3、gine程序设计2VV了解和熟悉界面布局,使用ArcEngine控件进行布局设计出一个仿ArcMap的简单程序。22地图基本查询3VV熟悉ArcEngine地图的属性查询操作,掌握基本的查询接口和用法。33地图图层操作3VV掌握图层操作的基本接口和方法,实现图层的查找/增/删等操作。44地图编辑3VV掌握地图编辑的基本方法,了解并掌握地图添加点、线、面要素的操作方法。55地图元素操作2VV了解元素的使用方法,实现动态增删元素等操作66空间分析3VV使用AE接口进行空间查询和缓冲区分析77地图制图2VV实现地图专题图的操作,进行图例及渲染操作88综合实验6VV实现一个综合性的GIS二次开发程序,

4、有完整功能实现,并有软件设计说明文档。四、实验内容安排:实验一:简单ArcEngine程序设计1、目的要求了解和熟悉程序界面布局,使用ArcEngine控件进行布局设计出一个仿ArcMap的简单程序。2、实验内容:编写一个仿ArcMap布局的ArcEngine程序,有菜单、工具栏、状态栏、图层和地图控件,利用SplitContainer控件实现TocControl和MapControl在运行时自由左右拖动扩展界面的程序。3、主要仪器设备及药品Windows、Vs.Net、ArcEngine实验二:地图基本查询1、目的要求:熟悉ArcEngine地图的属性查询操作,掌握基本的查询接口和用法。2、

5、实验内容:使用ArcEngine的地图查询接口,实现地图根据属性进行查询的操作,并闪烁查询到的要素。3、主要仪器设备及药品Windows、Vs.Net、ArcEngine实验三:地图图层操作1、目的要求:掌握图层操作的基本接口和方法,实现图层的查找/增/删等操作。2、实验内容:实现通过图层名称实现图层查找的操作,实现程序运行过程中动态创建新图层,并能删除指定图层。3、主要仪器设备及药品Windows、Vs.Net、ArcEngine实验四:地图编辑1、目的要求:掌握地图编辑的基本方法,了解并掌握地图添加点、线、面要素的操作方法。2、实验内容:实现地图的编辑开始,在编辑状态中向地图添加/删除/编

6、辑点、线、面等要素并保存,最后编辑停止操作,完成一个完整的编辑操作。3、主要仪器设备及药品Windows、Vs.Net、ArcEngineAddFeaturenamespaceCustomToolAndCommand(/SummarydescriptionforAddFeature./Guid(60a34f6c-dbd1-4bb0-ba20-152cf1e7b089)ClassInterface(ClassInterfaceType.None)ProgId(CustomToolAndCommand.AddFeature)publicsealedclassAddFeature:BaseTool(

7、#regionCOMRegistrationFunction(s)ComRegisterFunction()ComVisible(false)staticvoidRegisterFunction(TyperegisterType)(/RequiredforArcGISComponentCategoryRegistrarsupportArcGISCategoryRegistration(registerType);/TODO:AddanyCOMregistrationcodehere/ComUnregisterFunction()ComVisible(false)staticvoidUnregi

8、sterFunction(TyperegisterType)(/RequiredforArcGISComponentCategoryRegistrarsupportArcGISCategoryUnregistration(registerType);/TODO:AddanyCOMunregistrationcodehere/#regionArcGISComponentCategoryRegistrargeneratedcode/RequiredmethodforArcGISComponentCategoryregistration-/Donotmodifythecontentsofthisme

9、thodwiththecodeeditor./privatestaticvoidArcGISCategoryRegistration(TyperegisterType)(stringregKey=string.Format(HKEY_CLASSES_ROOTCLSID0,registerType.GUID);MxCommandRegister(regKey);ControlsCommands.Register(regKey);)/summary/RequiredmethodforArcGISComponentCategoryunregistration-/Donotmodifytheconte

10、ntsofthismethodwiththecodeeditor./privatestaticvoidArcGISCategoryUnregistration(TyperegisterType)(stringregKey=string.Format(HKEY_CLASSES_ROOTCLSID0,registerType.GUID);MxCommand.Usnregister(regKey);ControlsCommands.Unregister(regKey);#endregion#endregionprivateIHookHelperm_hookHelper=null;privateIFe

11、atureLayerm_pCurFtrLyr=null;privateOperateMapLib.FeatureHelperClassm_pOptFtr=newOperateMapLib.FeatureHelperClass();publicAddFeature()/TODO:Definevaluesforthepublicproperties/base.m_category=CustomToolCommandy/localizabletextbase.m_caption=添加点;/localizabletextbase.m_message=ThisshouldworkinArcMap/Map

12、Control/PageLayoutControl/localizabletextbase.m_toolTip=对选中的图层进彳f点要素的添加;/localizabletextbase.m_name=CustomToolCommand_AddFeature;/uniqueid,non-localizable(e.g.MyCategory_MyTool)try/TODO:changeresourcenameifnecessary/stringbitmapResourceName=GetType().Name+.png;base.m_bitmap=newBitmap(GetType(),bitma

13、pResourceName);base.m_cursor=newSystem.Windows.Forms.Cursor(GetType(),GetType().Name+.cur);catch(Exceptionex)(System.Diagnostics.Trace.WriteLine(ex.Message,InvalidBitmap);)#regionOverriddenClassMethods/summary/Occurswhenthistooliscreated/InstanceoftheapplicationpublicoverridevoidOnCreate(objecthook)

14、(try(m_hookHelper=newHookHelperClass();m_hookHelper.Hook=hook;if(m_hookHelper.ActiveView=null)(m_hookHelper=null;)catch(m_hookHelper=null;)if(m_hookHelper=null)base.m_enabled=false;elsebase.m_enabled=true;/TODO:Addotherinitializationcode)/Occurswhenthistoolisclicked/publicoverridevoidOnClick()(/弹出对话

15、框,问是否选择已有图层还是创建新的图层asfrmAddFeatureaddFtrForm=newfrmAddFeature(this.m_hookHelper.FocusMapIMap);addFtrForm.ShowDialog();m_pCurFtrLyr=addFtrForm.m_pCurrentLayerasIFeatureLayer;if(m_pCurFtrLyr=null)/有可能选择的不是要素图层MessageBoxShow(未选择图层或图层不是要素图层,请重新选择!);publicoverridevoidOnMouseDowni(ntButton,intShift,intX,i

16、ntY)if(m_pCurFtrLyr=null)MessageBoxShow(未选择图层或图层不是要素图层,请重新选择!);return;IPointpPoint=m_hookHelper.ActiveView.ScreenDisplay.DisplayTransformation.ToMapPoint(X,Y);m_pOptFtr.CreatePointFeature(m_pCurFtrLyr,pPoint);m_hookHelper.ActiveView.Refresh();publicoverridevoidOnMouseMove(intButton,intShift,intX,int

17、Y)/TODO:AddAddFeature.OnMouseMoveimplementationpublicoverridevoidOnMouseUp(intButton,intShift,intX,intY)/TODO:AddAddFeature.OnMouseUpimplementation#endregionDeleteFeaturenamespaceCustomToolAndCommand/SummarydescriptionforDeleteFeature./Guid(bf776e6f-80ff-424f-a459-46968da7a6f3)ClassInterface(ClassIn

18、terfaceType.None)ProgId(CustomToolAndCommand.DeleteFeature)publicsealedclassDeleteFeature:BaseTool#regionCOMRegistrationFunction(s)ComRegisterFunction()ComVisible(false)staticvoidRegisterFunction(TyperegisterType)/RequiredforArcGISComponentCategoryRegistrarsupportArcGISCategoryRegistration(registerType);/TODO:AddanyCOMregistrationcodehere/ComUnregisterFunction

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论