欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    ArcGISEngine基础实战.ppt

    • 资源ID:78976484       资源大小:5.82MB        全文页数:67页
    • 资源格式: PPT        下载积分:11.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要11.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    ArcGISEngine基础实战.ppt

    ArcGIS Engine基础介绍Esri西安分公司西安分公司 姚啸姚啸介绍内容ArcGIS Engine简介介创建第一个建第一个ArcGIS Engine程序程序练习DEMOArcGIS Engeine简介ArcGIS Engine Developer Kit开发包是组件,APIs 和工具的集合p开发人员可以用来创建高级的 GIS 应用p组件Engine 库 制图、绘制、选择、编辑等Control 库 地图控件、布局控件、工具条等pAPIsCOM、.NET、Java、C+p工具文档、开发工具ArcGIS Engine功能框架p基本服务应用层需要用到的 ArcObjects 核心对象几何图形的操作与显示p数据访问地理数据集,矢量,栅格数据p地图分析属性、空间查询,地理数据处理p地图显示渲染、标注、制图表达p开发组件各种应用层面上的 Control 及 Commands&ToolsEngine库组件库ArcGIS Engine核心组件库System SystemUICartoControlsGeometryDisplayGeoprocessingGeoprossorGlobeCoreOutputGeodatabaseDataSourcesGDBDataSourcesFileDataSourcesOleDBDataSourcesRasterGeoDatabaseDistributedServer、GISClient扩展模块常用名词uDocumentuMapuLayeruFeaturerLayeruFeatureClassuCursoruRowuGeometryuFeatureuElement主要类库介绍System&SystemUIpSystem System 库是 ArcGIS Engine框架中最底层的一个库,它包含了一些被其他库使用的一些组件。AoInitialize、Array、EnvironmentManager、FileStream、JSONReader、ObjectCopy、PropertySet、Time、UIDpSystemUI SystemUI 库定义了一些在 ArcGIS 中被用户界面组件使用的类型。象 ICommand 和 ITool 这样的接口就在这里定义。IArcGISSingleSignon、ICommand、IOperationStack、ITool主要类库介绍CartopCarto Carto 库包含了为数据显示服务的对象。PageLayout 和 Map对象在这个库中,以及支持各种数据类型的图层,渲染。主要包括 Element、Renderer、Layer、Symbol 的具体实现。AnnotationFeature、BasemapLayer、CacheInfo、CadLayer、FeatureLayer、GraphicFeature、GroupLayer、Legend、Map、MapDocument、MapImage、MapServer、MosaicLayer、Page、PageLayout、RasterLayer、RelateInfo、TerrainLayer、TinLayer、WCSLayer、WMSLayerCarto库的Map、PageLayout、ElementCarto库的LayerCarto库的Render主要类库介绍ControlpControls控件库包含了应用程序开发中用到的控件,包括在控件中使用的命令和工具。CommandPool、ControlsEditingEditTool、ControlsEditingToolbar、CustomizeDialog、EngineEditor、EngineFeatureSnap、GlobeControl、HookHelper、LicenseControl、MapControl、PageLayoutControl、SceneControl、Snapping、Symbology、TOCControl、ToolbarControl、ToolbarItem、主要类库介绍DisplaypDisplay 显示库包含了支持在输出设备上显示图形的组件,屏幕显示,符号,颜色等都在这个库中定义。BalloonCallout、ScreenDisplay绘图跟踪器:EngineRotateTracker、EnvelopeTracker、字体、颜色:RgbColor、CmykColor点、线、面符号样式:简单符号、图片符号、专题符号制图表达:RepresentationRule、符号库:ServerStyleGallery、ServerStyleGalleryItem主要类库介绍GeometrypGeometry 几何库包含了核心的几何对象,比如点,线,面等。在几何库中还定义和实现了空间参考的对象,包括投影坐标系和几何坐标系。单位:AngularUnit、LinearUnit、几何体:点、多点、线、曲线、圆弧、椭圆弧、多边形、矩形、多面空间参考:Datum、GeographicCoordinateSystem、Projection、ProjectedCoordinateSystem、Spheroid、ITransform2D、ITransform3D、ITransformation、主要类库介绍GeodataBasepGeoDatabase GeoDatabase 包含了所有相关数据组织的定义类型。要素,表,网络,TIN 都在这个库中定义。其中一些类型的实现在各自的数据来源的库中。IArchivableClass、IAttachment、IDataStatistics、IFeature、IFeatureClass、IFeatureCursor、IFeatureDataset、IFeatureWorkspace、IField、IGeometricNetwork、INetwork、INetworkDataset、IPixelBlock、IQueryFilter、IRaster、IRasterCursor、IRasterDataset、IRelationship、IReplica、ISelectionSet、ISurface、ITin、ITopology、IVersion、主要类库介绍GeodataBasepDataSourcesFile 包含了为支持的矢量数据格式提供的工作空间工厂和工作空间。ICoverageFeatureClass、ICadDrawingLayers、IGPLayer、ArcInfoWorkspaceFactory、CadWorkspaceFactory、SDCWorkspaceFactory、ShapefileWorkspaceFactory、TinWorkspaceFactory、VpfWorkspaceFactorypDataSourcesRasterDataSourcesRaster 包含了为基于文件方式的栅格数据提供的工作空间工厂和工作空间。栅格函数、MosaicFunction、PixelBlock、RasterBand、RasterStatistics、RasterWorkspace主要类库介绍GeodataBasepDataSourcesGDB包含了为存储在数据库中的矢量和栅格数据提供的工作空间工厂和工作空间。AccessWorkspaceFactory、FileGDBWorkspaceFactory、SdeWorkspaceFactory、SqlWorkspaceFactorypDataSourcesOleDB为通过 OleDB 方式提供的数据提供空组空间。ExcelWorkspaceFactory、FdoAdoConnection、OLEDBWorkspaceFactory、TextFileWorkspaceFactorypGeoDatabaseDistributed包含了需要执行的离线编辑的 GeoDatabase 对象。ICheckIn、ICheckOut、IDataChanges、IReplicationAgent、IReplicaDataChangesControl库组件库开发控件pArcGIS Engine 中提供了丰富的开发控件 LicenseControl MapControl PageLayoutControl TOCControl ToolbarControl SymbologyControl GlobeControl SceneControl MapControluMapControl u封装Map coclassu绘制单Data Frameu用来分析和浏览u暴露鼠标和绘制事件u装载地图文档和其它文件u设置当前工具u库uMapControl.ocxMapControl数据的访问 IMapControl3/IPageLayoutControl2uCheckMxFileuLoadMxFileuReadMxMapsu关联map对象事件IMapControlEvents/IPageLayoutControlEventsuOnAfterDraw,OnBeforeScreenDraw,OnAfterScreenDraw,OnExtentUpdated,OnMouseDown/Up/Move,OnKeyDown/Up,OnOleDrop,OnViewRefreshed,OnMap/PageReplacedMapControl对象通过Map你可以访问所有的对象LayersRenderersSymbolsFeatureClassesWorkspaces使用map和layers属性提供直接访问Map和Layer对象的方法属性IMapControl3AddLayerFromFile,AddShapeFile,AddLayer,DeleteLayer,MoveLayerTo,Layer,Map设置地图的可视化区域控制显示的可视区域可以设置多种shapes(geometries)IMapControl3VisibleRegion axMapControl1.VisibleRegion=extent在地图上显示提示可以为图层设置提示步骤1.设置ILayer:ShowTips2.在鼠标移动时显示提示文本使用ToolTip控件来显示提示文本ILayer layer=axMapControl1.get_Layer(0);layer.ShowTips=true;ToolTip tootip1=new ToolTip;tootip1.SetToolTip(axMapControl1,这是一个提示);PageLayoutControl控件uPageLayoutControl u封装PageLayout coclassu绘制地图元素u创建版面视图 u打印u设置当前工具u加载地图文档u库uPageLayoutControl.ocxPageLayoutControl控件使用PageLayout 来访问其它对象Elements(例子代码 MapElements)FrameElementsMapFrameMapSurroundFrameGraphicElementsPictureElements使用elements关于elements有很多高级的成员函数IPageLayoutControlAddElementFindElementByNameLocateFrontElementGraphicsContainer地图上显示查询结果element查询结果的渲染 ISimpleMarkerSymbol simpleMarkerSymbol=new SimpleMarkerSymbolClass();simpleMarkerSymbol.Color=rgb;simpleMarkerSymbol.Size=30;IMarkerElement markerElement=new MarkerElementClass();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,and pmf files写新的 mxd files 访问map document的内容 IMapDocument与mxd读取和写地图文档的成员函数Open:打开已经存在的地图文档(mxd,mxt,lyr,pmf)SaveAs:保存当前文档到新的文件CheckMxFile:检查mxd是否存在LoadMxFile:加载mxd文档ReadMxMaps:读mxd文档New:新建mxd文档Save:保存mxd文档加载mxdLoadMxFile if(openFileDialog2.ShowDialog()=DialogResult.OK)string FilePath=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;else MessageBox.Show(FilePath+is not a vaild ArcMap document);return;访问地图文档中的对象控件可以直接引用对象(Map and PageLayout)或访问自己的拷贝Reference直接Copy使用ObjectCopy 避免共享引用深度复制 IMapDocument mapdoc=new MapDocument();axMapControl1.Map=mapdoc.get_Map(0);IObjectCopy objectcopy=new ObjectCopyClass();IPageLayout pagelayout=objectcopy.Copy(mapdoc.PageLayout)as IPageLayout;框架控件ToolbarControl 和 TOCControl 被设计成和其它控件协同工作 通过一个buddy控件自动捆绑在一起根据彼此的状态通信和同步例子:active tool,layer visibilityBuddy ControlToolbarTOC命令和工具提供超过 100 个工具和命令TocControl显示所有的图层和符号Simple symbols,renderersGroup layers控制图层可视性必须调用SetBuddyControl库TOCControl.ocxToolbarControl自定义 commands,tools 和 menus的容器允许命令和以下控件对象进行交互Map,PageLayout,Scene,和 Globe必须调用 SetBuddyControl库ToolbarControl.ocx制图控件命令系统提供的控件命令,工具,工具条,和菜单命令和工具漫游,缩放,打开地图,图形绘制,工具条要素选择,绘图,地图导航,和 pagelayout 菜单要素选择和地图浏览库 esriCommandControls.olb参考对象模型图或技术文档 创建第一个ArcGIS Engeine应用程序创建一个控件应用程序使用控件成员使用工具条和TOC控件加载 MXD 文档保存mxd文档打开shp开发环境pCOM Visual Studio 6.0(VB、VC+)、DelphiArcGIS Engine 10 不再支持 VB 6.0p.NETVisual Studio.NET(VB.NET、C#、VC+.NET)ArcGIS Engine 10.1 不支持VS2008pC+Visual Studio 6.0、Borland C+Builder、C+pJavaJBuilder、Eclipse、JDK开发环境安装VS2012安装ArcGIS SDK Developer Kit&ArcGIS Engine许可授权创建第一个ArcGIS Engine应用程序模板新建MapControl工程创建第一个ArcGIS Engine应用程序模板创建第一个ArcGIS Engine应用程序模板增加一个菜单功能创建自定义应用程序创建自定义应用程序添加控件创建自定义应用程序为toolbar添加工具控件绑定将toolbar和mapcontrol绑定注意:许可绑定 if(!RuntimeManager.Bind(ProductCode.Engine)if(!RuntimeManager.Bind(ProductCode.Desktop)MessageBox.Show(Unable to bind to ArcGIS runtime.Application will be shut down.);return;打开mxdif(openFileDialog2.ShowDialog()=DialogResult.OK)string FilePath=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;else MessageBox.Show(FilePath+is not a vaild ArcMap document);return;打开shp打开shp/axMapControl1.Map.ClearLayers();IWorkspaceFactory pWorkspaceFactory;IFeatureWorkspace pFeatureWorkspace;IFeatureLayer pFeatureLayer;this.openFileDialog1.Filter=shp文件|*.shp;if(this.openFileDialog1.ShowDialog()=DialogResult.OK)this.textBox1.Text=this.openFileDialog1.FileName.ToString();string strFullPath=openFileDialog1.FileName;if(strFullPath=)return;int Index=strFullPath.LastIndexOf();string filePath=strFullPath.Substring(0,Index);string fileName=strFullPath.Substring(Index+1);/打开工作空间并添加shp文件 pWorkspaceFactory=new ShapefileWorkspaceFactoryClass();/创建工作空间 pFeatureWorkspace=(IFeatureWorkspace)pWorkspaceFactory.OpenFromFile(filePath,0);/打开矢量数据所在的空间 pFeatureLayer=new FeatureLayerClass();/创建一个要素图层 pFeatureLayer.FeatureClass=pFeatureWorkspace.OpenFeatureClass(fileName);/将要素类加如到要素图层 pFeatureLayer.Name=pFeatureLayer.FeatureClass.AliasName;/将要素类的名称赋值给要素图层 axMapControl1.Map.AddLayer(pFeatureLayer);/将图层加到地图控件 axMapControl1.ActiveView.Refresh();/刷新地图保存mxd IMapDocument mapDoc4=new MapDocumentClass();mapDoc4.New(F:/teuu5.mxd);IMxdContents mxdContents=axMapControl1.Map as IMxdContents;mapDoc4.ReplaceContents(mxdContents);mapDoc4.Save(false,true);mapDoc4.Close();练习DEMO打开数据源打开gdbIWorkspaceFactory workspaceFactory=new FileGDBWorkspaceFactoryClass();workspace=workspaceFactory.OpenFromFile(“D:/data.gdb”,0);IFeatureWorkspace pFeatWorkspace=workspace as IFeatureWorkspace;IFeatureClass pFeatureClass=pFeatWorkspace.OpenFeatureClass(Water)打开sdeIPropertySet propertySet=new PropertySetClass();propertySet.SetProperty(SERVER,server);propertySet.SetProperty(INSTANCE,instance);propertySet.SetProperty(DATABASE,database);propertySet.SetProperty(USER,user);propertySet.SetProperty(PASSWORD,password);propertySet.SetProperty(VERSION,version);IWorkspaceFactory workspaceFactory=new SdeWorkspaceFactoryClass();workspace=workspaceFactory.Open(propertySet,0);属性查询ILayer layer=axMapControl1.get_Layer(0);IFeatureLayer featureLayer=layer as IFeatureLayer;/获取featureLayer的featureClass IFeatureClass featureClass=featureLayer.FeatureClass;IQueryFilter queryFilter=new QueryFilterClass();IFeatureCursor featureCusor;string filter=DLMC=旱地;queryFilter.WhereClause=filter;featureCusor=featureClass.Search(queryFilter,true);if(featureCusor!=null)IFeature fea=featureCusor.NextFeature();while(fea!=null)if(featureCusor=null)return;IGeometry geom=fea.Shape;IPolygon polygon=geom as IPolygon;Common.renderPolygon(polygon,axMapControl1.ActiveView,axMapControl1.Map);fea=featureCusor.NextFeature();查询所有旱地绘制多边形IFillShapeElement pPolygonElement;ISimpleFillSymbol pSimpleFillSymbol=new SimpleFillSymbolClass();IPolygon pPolygon=new PolygonClass();IRubberBand pRubberBand=new RubberPolygonClass();ISimpleLineSymbol pSimpleLineSymbol=new SimpleLineSymbolClass();pPolygonElement=new PolygonElementClass();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;IElement pElement=(IElement)pPolygonElement;pElement.Geometry=pPolygon;pPolygonElement.Symbol=pSimpleFillSymbol;IGraphicsContainer pGraphicsContainer=(IGraphicsContainer)axMapControl1.Map;pGraphicsContainer.AddElement(IElement)pPolygonElement,0);axMapControl1.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics,null,null);地图点击绘制多边形,并渲染空间查询ISpatialFilter spatialFilter=new SpatialFilter();spatialFilter.Geometry=pPolygon;spatialFilter.GeometryField=SHAPE;spatialFilter.SpatialRel=esriSpatialRelEnum.esriSpatialRelIntersects;IFeatureLayer featureLayer=axMapControl1.get_Layer(0)as IFeatureLayer;IFeatureClass feaClass=featureLayer.FeatureClass;IFeatureCursor featureCursor=feaClass.Search(spatialFilter,false);IFeature feature=featureCursor.NextFeature();while(feature!=null)axMapControl1.Map.SelectFeature(featureLayer,feature);feature=featureCursor.NextFeature();根据上一步骤的多边形做相交查询,查询与多边形相交的地块,并高亮出图pActiveView.Output(g.GetHdc().ToInt32(),dpi,ref rect,pEnvelope,null);ArcGIS Resources Center:Esri中国社区:ArcGIS Online:ArcGIS在线体验中心:开发竞赛赛前辅导在线视频站点 搜索“Esri_ArcGIS”开发竞赛官网 技术支持网站 ArcGIS.com 产品技术博客:产品技术微博:http:/

    注意事项

    本文(ArcGISEngine基础实战.ppt)为本站会员(wuy****n92)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开