




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ArcGISEngine基础介绍,Esri西安分公司姚啸,介绍内容,ArcGISEngine简介创建第一个ArcGISEngine程序练习DEMO,ArcGISEngeine简介,ArcGISEngineDeveloperKit,开发包是组件,APIs和工具的集合开发人员可以用来创建高级的GIS应用组件Engine库制图、绘制、选择、编辑等Control库地图控件、布局控件、工具条等APIsCOM、.NET、Java、C+工具文档、开发工具,ArcGISEngine功能框架,基本服务应用层需要用到的ArcObjects核心对象几何图形的操作与显示数据访问地理数据集,矢量,栅格数据地图分析属性、空间查询,地理数据处理地图显示渲染、标注、制图表达开发组件各种应用层面上的Control及Commandslayer.ShowTips=true;,ToolTiptootip1=newToolTip;tootip1.SetToolTip(axMapControl1,这是一个提示);,PageLayoutControl控件,PageLayoutControl封装PageLayoutcoclass绘制地图元素创建版面视图打印设置当前工具加载地图文档库PageLayoutControl.ocx,PageLayoutControl控件,使用PageLayout来访问其它对象Elements(例子代码MapElements)FrameElementsMapFrameMapSurroundFrameGraphicElementsPictureElements,使用elements,关于elements有很多高级的成员函数IPageLayoutControlAddElementFindElementByNameLocateFrontElementGraphicsContainer,地图上显示查询结果element,查询结果的渲染,ISimpleMarkerSymbolsimpleMarkerSymbol=newSimpleMarkerSymbolClass();simpleMarkerSymbol.Color=rgb;simpleMarkerSymbol.Size=30;IMarkerElementmarkerElement=newMarkerElementClass();markerElement.Symbol=simpleMarkerSymbol;element=(IElement)markerElement;element.Geometry=point;graphicsContainer=(IGraphicsContainer)map;graphicsContainer.AddElement(element,0);,使用地图文档,MXD文件是结构化的存储文档(保存路径)通常由ArcMap创建包含持久对象Maps,Layers,PageLayout,MapDocument使以下成为可能读取mxd,lyr,mxt,andpmffiles写新的mxdfiles访问mapdocument的内容,IMapDocument与mxd,读取和写地图文档的成员函数Open:打开已经存在的地图文档(mxd,mxt,lyr,pmf)SaveAs:保存当前文档到新的文件CheckMxFile:检查mxd是否存在LoadMxFile:加载mxd文档ReadMxMaps:读mxd文档New:新建mxd文档Save:保存mxd文档,加载mxd,LoadMxFile,if(openFileDialog2.ShowDialog()=DialogResult.OK)stringFilePath=openFileDialog2.FileName;if(axMapControl1.CheckMxFile(FilePath)axMapControl1.MousePointer=ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerHourglass;axMapControl1.LoadMxFile(FilePath,0,Type.Missing);axMapControl1.MousePointer=ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;elseMessageBox.Show(FilePath+isnotavaildArcMapdocument);return;,访问地图文档中的对象,控件可以直接引用对象(MapandPageLayout)或访问自己的拷贝Reference直接Copy使用ObjectCopy避免共享引用深度复制,IMapDocumentmapdoc=newMapDocument();axMapControl1.Map=mapdoc.get_Map(0);,IObjectCopyobjectcopy=newObjectCopyClass();IPageLayoutpagelayout=objectcopy.Copy(mapdoc.PageLayout)asIPageLayout;,框架控件,ToolbarControl和TOCControl被设计成和其它控件协同工作通过一个buddy控件自动捆绑在一起根据彼此的状态通信和同步例子:activetool,layervisibility,BuddyControl,Toolbar,TOC,命令和工具,提供超过100个工具和命令,TocControl,显示所有的图层和符号Simplesymbols,renderersGrouplayers控制图层可视性必须调用SetBuddyControl库TOCControl.ocx,ToolbarControl,自定义commands,tools和menus的容器允许命令和以下控件对象进行交互Map,PageLayout,Scene,和Globe必须调用SetBuddyControl库ToolbarControl.ocx,制图控件命令,系统提供的控件命令,工具,工具条,和菜单命令和工具漫游,缩放,打开地图,图形绘制,工具条要素选择,绘图,地图导航,和pagelayout菜单要素选择和地图浏览库esriCommandControls.olb参考对象模型图或技术文档,创建第一个ArcGISEngeine应用程序,创建一个控件应用程序使用控件成员使用工具条和TOC控件加载MXD文档保存mxd文档打开shp,开发环境,COMVisualStudio6.0(VB、VC+)、DelphiArcGISEngine10不再支持VB6.0.NETVisualStudio.NET(VB.NET、C#、VC+.NET)ArcGISEngine10.1不支持VS2008C+VisualStudio6.0、BorlandC+Builder、C+JavaJBuilder、Eclipse、JDK,开发环境,安装VS2012安装ArcGISSDKDeveloperKitreturn;,打开mxd,if(openFileDialog2.ShowDialog()=DialogResult.OK)stringFilePath=openFileDialog2.FileName;if(axMapControl1.CheckMxFile(FilePath)axMapControl1.MousePointer=ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerHourglass;axMapControl1.LoadMxFile(FilePath,0,Type.Missing);axMapControl1.MousePointer=ESRI.ArcGIS.Controls.esriControlsMousePointer.esriPointerDefault;elseMessageBox.Show(FilePath+isnotavaildArcMapdocument);return;,打开shp,打开shp/axMapControl1.Map.ClearLayers();IWorkspaceFactorypWorkspaceFactory;IFeatureWorkspacepFeatureWorkspace;IFeatureLayerpFeatureLayer;this.openFileDialog1.Filter=shp文件|*.shp;if(this.openFileDialog1.ShowDialog()=DialogResult.OK)this.textBox1.Text=this.openFileDialog1.FileName.ToString();stringstrFullPath=openFileDialog1.FileName;if(strFullPath=)return;intIndex=strFullPath.LastIndexOf();stringfilePath=strFullPath.Substring(0,Index);stringfileName=strFullPath.Substring(Index+1);/打开工作空间并添加shp文件pWorkspaceFactory=newShapefileWorkspaceFactoryClass();/创建工作空间pFeatureWorkspace=(IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(filePath,0);/打开矢量数据所在的空间pFeatureLayer=newFeatureLayerClass();/创建一个要素图层pFeatureLayer.FeatureClass=pFeatureWorkspace.OpenFeatureClass(fileName);/将要素类加如到要素图层pFeatureLayer.Name=pFeatureLayer.FeatureClass.AliasName;/将要素类的名称赋值给要素图层axMapControl1.Map.AddLayer(pFeatureLayer);/将图层加到地图控件axMapControl1.ActiveView.Refresh();/刷新地图,保存mxd,IMapDocumentmapDoc4=newMapDocumentClass();mapDoc4.New(F:/teuu5.mxd);IMxdContentsmxdContents=axMapControl1.MapasIMxdContents;mapDoc4.ReplaceContents(mxdContents);mapDoc4.Save(false,true);mapDoc4.Close();,练习DEMO,打开数据源,打开gdbIWorkspaceFactoryworkspaceFactory=newFileGDBWorkspaceFactoryClass();workspace=workspaceFactory.OpenFromFile(“D:/data.gdb”,0);IFeatureWorkspacepFeatWorkspace=workspaceasIFeatureWorkspace;IFeatureClasspFeatureClass=pFeatWorkspace.OpenFeatureClass(Water),打开sdeIPropertySetpropertySet=newPropertySetClass();propertySet.SetProperty(SERVER,server);propertySet.SetProperty(INSTANCE,instance);propertySet.SetProperty(DATABASE,database);propertySet.SetProperty(USER,user);propertySet.SetProperty(PASSWORD,password);propertySet.SetProperty(VERSION,version);IWorkspaceFactoryworkspaceFactory=newSdeWorkspaceFactoryClass();workspace=workspaceFactory.Open(propertySet,0);,属性查询,ILayerlayer=axMapControl1.get_Layer(0);IFeatureLayerfeatureLayer=layerasIFeatureLayer;/获取featureLayer的featureClassIFeatureClassfeatureClass=featureLayer.FeatureClass;IQueryFilterqueryFilter=newQueryFilterClass();IFeatureCursorfeatureCusor;stringfilter=DLMC=旱地;queryFilter.WhereClause=filter;featureCusor=featureClass.Search(queryFilter,true);if(featureCusor!=null)IFeaturefea=featureCusor.NextFeature();while(fea!=null)if(featureCusor=null)return;IGeometrygeom=fea.Shape;IPolygonpolygon=geomasIPolygon;Common.renderPolygon(polygon,axMapControl1.ActiveView,axMapControl1.Map);fea=featureCusor.NextFeature();,查询所有旱地,绘制多边形,IFillShapeElementpPolygonElement;ISimpleFillSymbolpSimpleFillSymbol=newSimpleFillSymbolClass();IPolygonpPolygon=newPolygonClass();IRubberBandpRubberBand=newRubberPolygonClass();ISimpleLineSymbolpSimpleLineSymbol=newSimpleLineSymbolClass();pPolygonElement=newPolygonElementClass();if(e.button=1)pPolygon=(IPolygon)pRubberBand.TrackNew(axMapControl1.ActiveView.ScreenDisplay,null);pSimpleLineSymbol.Width=2;pSimpleLineSymbol.Style=esriSimpleLineStyle.esriSLSSolid;pSimpleLineSymbol.Color=Common.GetRGBColor(46,24,63);pSimpleFillSymbol.Color=Common.GetRGBColor(11,200,145);pSimpleFillSymbol.Outline=pSimpleLineSymbol;IElementpElement=(IElement)pPolygonElement;pElement.Geometry=pPolygon;pPolygonElement.Symbol=pSimpleFillSymbol;IGraphicsContainerpGraphicsContainer=(IGraphicsContainer)axMapControl1.Map;pGraphicsContainer.AddElement(IElement)pPolygonElement,0);axMapControl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年无人机驾驶员职业技能考核试卷及答案(含实操模拟题)
- 腔镜规范化操作理论试题及答案
- 足球知识面试题库大全及答案
- 总行机关招聘面试题库及答案
- 高炉煤气合同模板(3篇)
- 安考易起重安全考试题库及答案
- 全国离婚标准协议样本与财产分割及子女抚养执行
- 垫资借款合同书(科技研发中心)
- 公园内特色商业区租赁与运营管理合同
- 二级园林专业试题及答案
- 脑科生理病理图谱解读
- 足球教练员的职业素养与道德规范
- 产地证培训讲义
- 《南京理工大学化工》课件
- 养殖场远程视频监控解决方案
- 二手车转让免责协议书范本
- 化粪池及隔油池清洁服务方案
- 骨科患者辅助器具选择与使用
- 电力电缆工程施工组织设计
- 劳动课种植教学方案
- 小学数学《分数除法》50道计算题包含答案
评论
0/150
提交评论